encrypt method

Future<Uint8List> encrypt(
  1. Uint8List paddedPlaintext
)

Implementation

Future<Uint8List> encrypt(Uint8List paddedPlaintext) async {
  try {
    final record = await _senderKeyStore.loadSenderKey(_senderKeyId);
    final senderKeyState = record.getSenderKeyState();
    final senderKey = senderKeyState.senderChainKey.senderMessageKey;
    final ciphertext =
        aesCbcEncrypt(senderKey.cipherKey, senderKey.iv, paddedPlaintext);
    final senderKeyMessage = SenderKeyMessage(senderKeyState.keyId,
        senderKey.iteration, ciphertext, senderKeyState.signingKeyPrivate);
    final nextSenderChainKey = senderKeyState.senderChainKey.next;
    senderKeyState.senderChainKey = nextSenderChainKey;
    await _senderKeyStore.storeSenderKey(_senderKeyId, record);
    return senderKeyMessage.serialize();
  } on InvalidKeyIdException catch (e) {
    throw NoSessionException(e.detailMessage);
  }
}