encryptP256Message function
Future<E2EResponse>
encryptP256Message({
- required P256Identity identity,
- required P256PublicKey theirPublicKey,
- required String text,
Implementation
Future<E2EResponse> encryptP256Message({
required P256Identity identity,
required P256PublicKey theirPublicKey,
required String text,
Uint8List? sharedSecret,
}) async {
sharedSecret ??= await getP256ShareSecret(
identity.getKeyPair().secretKey,
theirPublicKey.toRaw(),
);
final sharedX = sharedSecret.sublist(0, 32);
final List<int> iv = randomAsU8a(12);
// randomAsU8a(16);
final encryptedMessage256 = await _encryptPhraseAsync256(
key: sharedX,
iv: Uint8List.fromList(iv),
message: text,
);
final encryptedMessage = base64Encode(encryptedMessage256);
final ivBase64 = base64Encode(iv);
return E2EResponse(
content: '$encryptedMessage?iv=$ivBase64',
createdAt: (DateTime.now().millisecondsSinceEpoch / 1000).floor(),
pubKey: identity.getPublicKey().toRaw().toHex(),
);
}