decryptP256Message function

Future<String> decryptP256Message({
  1. required P256Identity identity,
  2. required P256PublicKey theirPublicKey,
  3. required String cipherText,
})

Implementation

Future<String> decryptP256Message({
  required P256Identity identity,
  required P256PublicKey theirPublicKey,
  required String cipherText,
}) async {
  final arr = cipherText.split('?iv=');
  final emsg = arr[0];
  final iv = arr[1];

  final sharedPoint = await getP256ShareSecret(
    identity.getKeyPair().secretKey,
    theirPublicKey.toRaw(),
  );

  final sharedX = sharedPoint.sublist(0, 32);

  final decryptedMessage256 = await _decryptPhraseAsync256(
    key: sharedX,
    iv: base64Decode(iv),
    cipherText: base64Decode(emsg),
  );

  return decryptedMessage256.u8aToString();
}