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