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
-
- Object
- Cipher
- StreamingCipher
- Chacha20
- DartChacha20
- 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< stream, {required SecretKey secretKey, required List<int> >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< stream, {required SecretKey secretKey, required List<int> >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