encrypt method

EncryptResult encrypt(
  1. String plaintext
)

Implementation

EncryptResult encrypt(String plaintext) {
  final units = utf8.encode(plaintext);
  final randomLen = olm_encrypt_random_length(_inst);
  final outLen = olm_encrypt_message_length(_inst, units.length);
  final mem = malloc.call<Uint8>(units.length + randomLen + outLen);
  final rndMem = mem.elementAt(units.length);
  final outMem = rndMem.elementAt(randomLen);
  try {
    mem.asTypedList(units.length).setAll(0, units);
    _fillRandom(rndMem.asTypedList(randomLen));
    final result1 = encrypt_message_type();
    olm_encrypt(_inst, mem, units.length, rndMem, randomLen, outMem, outLen);
    final result2 = utf8.decode(outMem.asTypedList(outLen));
    return EncryptResult._(result1, result2);
  } finally {
    malloc.free(mem);
  }
}