cryptoGenerichashInit static method

Pointer<Uint8> cryptoGenerichashInit(
  1. Uint8List? key,
  2. int outlen
)

Implementation

static Pointer<Uint8> cryptoGenerichashInit(Uint8List? key, int outlen) {
  if (key != null) {
    RangeError.checkValueInInterval(key.length, cryptoGenerichashKeybytesMin,
        cryptoGenerichashKeybytesMax, 'key', 'Invalid length');
  }
  RangeError.checkValueInInterval(
      outlen, cryptoGenerichashBytesMin, cryptoGenerichashBytesMax);

  final _state = calloc<Uint8>(cryptoGenerichashStatebytes);
  final _key = key?.toPointer() ?? nullptr;

  try {
    _cryptoGenerichash
        .crypto_generichash_init(_state, _key, key?.length ?? 0, outlen)
        .mustSucceed('crypto_generichash_init');
    return _state;
  } finally {
    if (_key != nullptr) {
      calloc.free(_key);
    }
  }
}