encrypt method
Implementation
PkEncryptResult encrypt(String plaintext) {
final units = utf8.encode(plaintext);
final rndLen = olm_pk_encrypt_random_length(_inst);
final outLen = olm_pk_ciphertext_length(_inst, units.length);
final macLen = olm_pk_mac_length(_inst);
final ephLen = olm_pk_key_length();
final mem =
malloc.call<Uint8>(units.length + rndLen + outLen + macLen + ephLen);
final rndMem = mem.elementAt(units.length);
final outMem = rndMem.elementAt(rndLen);
final macMem = outMem.elementAt(outLen);
final ephMem = macMem.elementAt(macLen);
try {
mem.asTypedList(units.length).setAll(0, units);
_fillRandom(rndMem.asTypedList(rndLen));
olm_pk_encrypt(_inst, mem, units.length, outMem, outLen, macMem, macLen,
ephMem, ephLen, rndMem, rndLen);
return PkEncryptResult._(
utf8.decode(outMem.asTypedList(outLen)),
utf8.decode(macMem.asTypedList(macLen)),
utf8.decode(ephMem.asTypedList(ephLen)));
} finally {
malloc.free(mem);
}
}