chacha20Poly1305Encrypt static method
String
chacha20Poly1305Encrypt({
- required String plainText,
- required String key,
- String? aad,
- UByteEncoding keyEncoding = UByteEncoding.base64,
Tamper-proof encryption with ChaCha20-Poly1305 (fast on phones without AES hardware); base64 out. chacha20Poly1305Encrypt(plainText: "x", key: UEncryption.randomKey())
Implementation
static String chacha20Poly1305Encrypt({required String plainText, required String key, String? aad, UByteEncoding keyEncoding = UByteEncoding.base64}) {
final Uint8List nonce = _randomBytes(12);
final Uint8List ct = _chachaPolyEncrypt(_bytes(key, keyEncoding), nonce, _u8(plainText), aad == null ? Uint8List(0) : _u8(aad));
return base64.encode(_concat(<Uint8List>[nonce, ct]));
}