16#ifndef CRYPT_CBC_MAC_H
17#define CRYPT_CBC_MAC_H
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_CBC_MAC
22#include "crypt_types.h"
23#include "crypt_cmac.h"
29typedef struct CBC_MAC_Ctx CRYPT_CBC_MAC_Ctx;
31#define CRYPT_CBC_MAC_SetParam NULL
46CRYPT_CBC_MAC_Ctx *CRYPT_CBC_MAC_NewCtxEx(
void *libCtx,
CRYPT_MAC_AlgId id);
57int32_t CRYPT_CBC_MAC_Init(CRYPT_CBC_MAC_Ctx *ctx,
const uint8_t *key, uint32_t len);
69int32_t CRYPT_CBC_MAC_InitEx(CRYPT_CBC_MAC_Ctx *ctx,
const uint8_t *key, uint32_t len,
void *param);
80int32_t CRYPT_CBC_MAC_Update(CRYPT_CBC_MAC_Ctx *ctx,
const uint8_t *in, uint32_t len);
92int32_t CRYPT_CBC_MAC_Final(CRYPT_CBC_MAC_Ctx *ctx, uint8_t *out, uint32_t *len);
99int32_t CRYPT_CBC_MAC_Reinit(CRYPT_CBC_MAC_Ctx *ctx);
106int32_t CRYPT_CBC_MAC_Deinit(CRYPT_CBC_MAC_Ctx *ctx);
116int32_t CRYPT_CBC_MAC_Ctrl(CRYPT_CBC_MAC_Ctx *ctx, uint32_t opt,
void *val, uint32_t len);
122void CRYPT_CBC_MAC_FreeCtx(CRYPT_CBC_MAC_Ctx *ctx);
129CRYPT_CBC_MAC_Ctx *CRYPT_CBC_MAC_DupCtx(
const CRYPT_CBC_MAC_Ctx *ctx);
CRYPT_MAC_AlgId
定义 crypt_algid.h:91