HMAC function

  1. @RecordUse.new()
  2. @Native<Pointer<Uint8> Function(Pointer<EVP_MD>, Pointer<Void>, Size, Pointer<Uint8>, Size, Pointer<Uint8>, Pointer<UnsignedInt>)>(ffi.Pointer<EVP_MD>, ffi.Pointer<ffi.Void>, ffi.Size, ffi.Pointer<ffi.Uint8>, ffi.Size, ffi.Pointer<ffi.Uint8>, ffi.Pointer<ffi.UnsignedInt>)>(symbol: 'bssl_dart_HMAC')
Pointer<Uint8> HMAC(
  1. Pointer<EVP_MD> evp_md,
  2. Pointer<Void> key,
  3. int key_len,
  4. Pointer<Uint8> data,
  5. int data_len,
  6. Pointer<Uint8> out,
  7. Pointer<UnsignedInt> out_len,
)

HMAC calculates the HMAC of |data_len| bytes of |data|, using the given key and hash function, and writes the result to |out|. On entry, |out| must contain at least |EVP_MD_size| bytes of space. The actual length of the result is written to |*out_len|. An output size of |EVP_MAX_MD_SIZE| will always be large enough. It returns |out| or NULL on error.

Implementation

@meta.RecordUse()
@ffi.Native<
  ffi.Pointer<ffi.Uint8> Function(
    ffi.Pointer<EVP_MD>,
    ffi.Pointer<ffi.Void>,
    ffi.Size,
    ffi.Pointer<ffi.Uint8>,
    ffi.Size,
    ffi.Pointer<ffi.Uint8>,
    ffi.Pointer<ffi.UnsignedInt>,
  )
>(symbol: 'bssl_dart_HMAC')
external ffi.Pointer<ffi.Uint8> HMAC(
  ffi.Pointer<EVP_MD> evp_md,
  ffi.Pointer<ffi.Void> key,
  int key_len,
  ffi.Pointer<ffi.Uint8> data,
  int data_len,
  ffi.Pointer<ffi.Uint8> out,
  ffi.Pointer<ffi.UnsignedInt> out_len,
);