finish method

Uint8List finish()

Flushes any buffered block (none for CTR) and releases the context.

Implementation

Uint8List finish() {
  _checkOpen();
  try {
    return using((arena) {
      final out = arena<UnsignedChar>(cipher.blockSize + 16);
      final outl = arena<Int>();
      final fn = _encrypt ? ssl.EVP_EncryptFinal_ex : ssl.EVP_DecryptFinal_ex;
      checkOne(
        fn(_ctx, out, outl),
        _encrypt ? 'EVP_EncryptFinal_ex' : 'EVP_DecryptFinal_ex',
      );
      return fromNative(out, outl.value);
    });
  } finally {
    dispose();
  }
}