update method

Uint8List update(
  1. List<int> input
)

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);
  });
}