19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_HMAC
23#include "crypt_local_types.h"
24#include "bsl_params.h"
30#define HMAC_MAXBLOCKSIZE 144
31#define HMAC_MAXOUTSIZE 64
33typedef struct HMAC_Ctx CRYPT_HMAC_Ctx;
37int32_t CRYPT_HMAC_Init(CRYPT_HMAC_Ctx *ctx,
const uint8_t *key, uint32_t len);
38int32_t CRYPT_HMAC_InitEx(CRYPT_HMAC_Ctx *ctx,
const uint8_t *key, uint32_t len, BSL_Param *param);
39int32_t CRYPT_HMAC_Update(CRYPT_HMAC_Ctx *ctx,
const uint8_t *in, uint32_t len);
40int32_t CRYPT_HMAC_Final(CRYPT_HMAC_Ctx *ctx, uint8_t *out, uint32_t *len);
41int32_t CRYPT_HMAC_Reinit(CRYPT_HMAC_Ctx *ctx);
42int32_t CRYPT_HMAC_Deinit(CRYPT_HMAC_Ctx *ctx);
43uint32_t CRYPT_HMAC_GetMacLen(CRYPT_HMAC_Ctx *ctx);
44int32_t CRYPT_HMAC_Ctrl(CRYPT_HMAC_Ctx *ctx, uint32_t opt,
void *val, uint32_t len);
45#ifdef HITLS_CRYPTO_PROVIDER
46int32_t CRYPT_HMAC_SetParam(CRYPT_HMAC_Ctx *ctx,
const BSL_Param *param);
48#define CRYPT_HMAC_SetParam NULL
50void CRYPT_HMAC_FreeCtx(CRYPT_HMAC_Ctx *ctx);
51CRYPT_HMAC_Ctx *CRYPT_HMAC_DupCtx(
const CRYPT_HMAC_Ctx *macCtx);
CRYPT_MAC_AlgId
定义 crypt_algid.h:91