Cryptography class abstract

A factory for cryptographic algorithms.

This is used by factories in the cryptographic algorithm classes. For example, Chacha20.poly1305Aead calls the Cryptography.instance method chacha20Poly1305Aead.

Implementations

Setting implementation

In shipped application, it's a good practice to freeze the value of static variable with freezeInstance:

import 'package:cryptography/cryptography.dart';

void main() {
  Cryptography.freezeInstance(yourInstance);

  // ...
}

Writing you own subclass

import 'package:cryptography/browser.dart';
import 'package:cryptography/cryptography.dart';

class MyCryptography extends BrowserCryptography {
  @override
  Sha256 get sha256 {
    return SomeOtherSha256Implementation();
  }
}

void main() {
  // Change the default cryptography
  Cryptography.freezeInstance(MyCryptography());

  final sha256 = Sha256(); // --> SomeOtherSha256Implementation
}
Implementers

Constructors

Cryptography()
const

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

aesCbc({required MacAlgorithm macAlgorithm, PaddingAlgorithm paddingAlgorithm = PaddingAlgorithm.pkcs7, int secretKeyLength = 32}) AesCbc
A factory used by AesCbc.
aesCtr({required MacAlgorithm macAlgorithm, int secretKeyLength = 32, int counterBits = 64}) AesCtr
A factory used by AesCtr.
aesGcm({int secretKeyLength = 32, int nonceLength = 12}) AesGcm
A factory used by AesGcm.
argon2id({required int memory, required int parallelism, required int iterations, required int hashLength}) Argon2id
A factory used by Argon2id.
blake2b({int hashLengthInBytes = 64}) Blake2b
A factory used by Blake2b.
blake2s({int hashLengthInBytes = 32}) Blake2s
A factory used by Blake2s.
chacha20({required MacAlgorithm macAlgorithm}) Chacha20
A factory used by Chacha20.
chacha20Poly1305Aead() Chacha20
A factory used by Chacha20.poly1305Aead.
ecdhP256({required int length}) Ecdh
A factory used by Ecdh.p256.
ecdhP384({required int length}) Ecdh
A factory used by Ecdh.p384.
ecdhP521({required int length}) Ecdh
A factory used by Ecdh.p521.
ecdsaP256(HashAlgorithm hashAlgorithm) Ecdsa
A factory used by Ecdsa.p256.
ecdsaP384(HashAlgorithm hashAlgorithm) Ecdsa
A factory used by Ecdsa.p384.
ecdsaP521(HashAlgorithm hashAlgorithm) Ecdsa
A factory used by Ecdsa.p521.
ed25519() Ed25519
A factory used by Ed25519.
hchacha20() Hchacha20
A factory used by Hchacha20.
hkdf({required Hmac hmac, required int outputLength}) Hkdf
A factory used by Hkdf.
hmac(HashAlgorithm hashAlgorithm) Hmac
A factory used by Hmac.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pbkdf2({required MacAlgorithm macAlgorithm, required int iterations, required int bits}) Pbkdf2
A factory used by Pbkdf2.
poly1305() Poly1305
A factory used by Poly1305.
rsaPss(HashAlgorithm hashAlgorithm, {required int nonceLengthInBytes}) RsaPss
A factory used by RsaPss.
rsaSsaPkcs1v15(HashAlgorithm hashAlgorithm) RsaSsaPkcs1v15
A factory used by RsaSsaPkcs1v15.
sha1() Sha1
A factory used by Sha1.
sha224() Sha224
A factory used by Sha224.
sha256() Sha256
A factory used by Sha256.
sha384() Sha384
A factory used by Sha384.
sha512() Sha512
A factory used by Sha512.
toString() String
A string representation of this object.
inherited
withRandom(Random random) Cryptography
x25519() X25519
A factory used by X25519.
xchacha20({required MacAlgorithm macAlgorithm}) Xchacha20
A factory used by Xchacha20.
xchacha20Poly1305Aead() Xchacha20
A factory used by Xchacha20.poly1305Aead.

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

defaultInstance Cryptography
Default value of instance.
final
instance Cryptography
Static variable that holds the Cryptography used by package:cryptography classes.
getter/setter pair

Static Methods

freezeInstance(Cryptography cryptography) → void
Sets Cryptography.instance and prevents further mutations.