update method
Processes input, returning the bytes produced so far (for CTR, as many
as were given).
Implementation
Uint8List update(List<int> input) {
_checkOpen();
if (input.isEmpty) return Uint8List(0);
return using((arena) {
// One side of every update is plaintext; wipe both.
final inp = secretToNative(arena, input);
final out = secretBuffer(arena, input.length + cipher.blockSize);
final outl = arena<Int>();
final fn = _encrypt ? ssl.EVP_EncryptUpdate : ssl.EVP_DecryptUpdate;
checkOne(
fn(_ctx, out, outl, inp, input.length),
_encrypt ? 'EVP_EncryptUpdate' : 'EVP_DecryptUpdate',
);
return fromNative(out, outl.value);
});
}