seal method
Encrypts plaintext, bound to the invitation it belongs to.
Implementation
Future<SealedInvitationContent> seal(
String plaintext, {
required String inviter,
required String invitationId,
}) async {
final iv = InitialisationVector.random(12);
final ciphertext = await AesGcm256EncryptionAlgo(_key).encrypt(
Uint8List.fromList(utf8.encode(plaintext)),
iv: iv,
aad: _aad(inviter, invitationId),
);
return SealedInvitationContent(
nonce: base64Encode(iv.ivBytes),
ciphertext: base64Encode(ciphertext),
);
}