seal method

Future<SealedInvitationContent> seal(
  1. String plaintext, {
  2. required String inviter,
  3. required String invitationId,
})

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),
  );
}