DartChacha20 class

Chacha20 implemented in pure Dart.

In almost every case, you should use DartChacha20Poly1305Aead, which returns AEAD_CHACHA20_POLY1305 cipher ((RFC 7539).

For examples and more information about the algorithm, see documentation for the class Chacha20.

Inheritance
Mixed in types

Constructors

DartChacha20({required MacAlgorithm macAlgorithm, Random? random})
Constructs DartChacha20 with any MAC.
const
DartChacha20.poly1305Aead({Random? random})
Constructs AEAD_CHACHA20_POLY1305 cipher (RFC 7539).
const

Properties

hashCode int
The hash code for this object.
no setterinherited
macAlgorithm MacAlgorithm
Message authentication code (MacAlgorithm) used by the cipher.
final
nonceLength int
Number of bytes in the nonce ("Initialization Vector", "IV", "salt").
no setterinherited
optimalChunkSize int
Length of chunks that are processed in one go.
no setterinherited
random Random?
Random number generator used by newSecretKey for generating secret keys.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
secretKeyLength int
Number of bytes in the SecretKey.
no setterinherited

Methods

checkParameters({int? length, required SecretKey secretKey, required int nonceLength, int aadLength = 0, int keyStreamIndex = 0}) → void
Checks parameters for encrypt / decrypt and throws ArgumentError if any is invalid.
inherited
cipherTextLength(int clearTextLength) int
Calculates the length of the ciphertext given a clear text length.
inherited
decrypt(SecretBox secretBox, {required SecretKey secretKey, List<int> aad = const <int>[], int keyStreamIndex = 0, int? chunkSize, Uint8List? possibleBuffer}) Future<List<int>>
Decrypts a ciphertext.
inherited
decryptStream(Stream<List<int>> stream, {required SecretKey secretKey, required List<int> nonce, required FutureOr<Mac> mac, List<int> aad = const [], bool allowUseSameBytes = false}) Stream<List<int>>
Decrypts a Stream of bytes.
inherited
decryptString(SecretBox secretBox, {required SecretKey secretKey}) Future<String>
Calls decrypt and then converts the bytes to a string by using utf8 codec.
inherited
decryptSync(SecretBox secretBox, {required SecretKeyData secretKey, List<int> aad = const <int>[], int keyStreamIndex = 0, Uint8List? possibleBuffer}) List<int>
inherited
encrypt(List<int> clearText, {required SecretKey secretKey, List<int>? nonce, List<int> aad = const <int>[], int keyStreamIndex = 0, int? chunkSize, Uint8List? possibleBuffer}) Future<SecretBox>
Encrypts a cleartext.
inherited
encryptStream(Stream<List<int>> stream, {required SecretKey secretKey, required List<int> nonce, required void onMac(Mac mac), List<int> aad = const [], bool allowUseSameBytes = false}) Stream<List<int>>
Encrypts a Stream of bytes.
inherited
encryptString(String clearText, {required SecretKey secretKey}) Future<SecretBox>
Converts a string to bytes using utf8 codec and then calls encrypt.
inherited
encryptSync(List<int> clearText, {required SecretKeyData secretKey, List<int>? nonce, List<int> aad = const <int>[], int keyStreamIndex = 0, Uint8List? possibleBuffer}) SecretBox
inherited
newCipherWand() Future<CipherWand>
Constructs a CipherWand that uses this implementation and a new random secret key (that can't be extracted).
inherited
newCipherWandFromSecretKey(SecretKey secretKey, {bool allowEncrypt = true, bool allowDecrypt = true}) Future<CipherWand>
Constructs a CipherWand that uses this implementation and the given SecretKey.
inherited
newNonce() List<int>
Generates a new nonce.
inherited
newSecretKey() Future<SecretKey>
Generates a new SecretKey.
inherited
newSecretKeyFromBytes(List<int> bytes) Future<SecretKey>
Constructs a new SecretKey from the bytes.
inherited
newSecretKeySync() SecretKey
Synchronous version of newSecretKey.
inherited
newState() DartCipherState
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited
toSync() DartChacha20
Returns a synchronous, pure Dart implementation of this cipher.
override

Operators

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

Static Methods

chachaRounds(Uint32List state, int si, Uint32List initialState, {required int rounds, bool addAndXor = true}) → void
Computes Chacha20 rounds.
initializeChacha(Uint32List state, {required List<int> key, required List<int> nonce, int keyStreamIndex = 0}) → void