HMAC_Init_ex function

  1. @RecordUse.new()
  2. @Native<Int Function(Pointer<HMAC_CTX>, Pointer<Void>, Size, Pointer<EVP_MD>, Pointer<ENGINE>)>(ffi.Pointer<HMAC_CTX>, ffi.Pointer<ffi.Void>, ffi.Size, ffi.Pointer<EVP_MD>, ffi.Pointer<ENGINE>)>(symbol: 'bssl_dart_HMAC_Init_ex')
int HMAC_Init_ex(
  1. Pointer<HMAC_CTX> ctx,
  2. Pointer<Void> key,
  3. int key_len,
  4. Pointer<EVP_MD> md,
  5. Pointer<ENGINE> impl,
)

HMAC_Init_ex sets up an initialised |HMAC_CTX| to use |md| as the hash function and |key| as the key. For a non-initial call, |md| may be NULL, in which case the previous hash function will be used. If the hash function has not changed and |key| is NULL, |ctx| reuses the previous key. It returns one on success or zero on allocation failure.

WARNING: NULL and empty keys are ambiguous on non-initial calls. Passing NULL |key| but repeating the previous |md| reuses the previous key rather than the empty key.

Implementation

@meta.RecordUse()
@ffi.Native<
  ffi.Int Function(
    ffi.Pointer<HMAC_CTX>,
    ffi.Pointer<ffi.Void>,
    ffi.Size,
    ffi.Pointer<EVP_MD>,
    ffi.Pointer<ENGINE>,
  )
>(symbol: 'bssl_dart_HMAC_Init_ex')
external int HMAC_Init_ex(
  ffi.Pointer<HMAC_CTX> ctx,
  ffi.Pointer<ffi.Void> key,
  int key_len,
  ffi.Pointer<EVP_MD> md,
  ffi.Pointer<ENGINE> impl,
);