2.6 MAC操作
HMAC_Init
函 数 名: int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md);
功能描述: 初始化HMAC_CTX,设置密钥和使用的算法
说 明: 清除数据并置零。
参数说明:
ctx (in/out) 封装数据
key (in) 密钥
len (in) 密钥长度
md (in) 杂凑算法
返 回 值: 1[成功],<=0[失败]
HMAC_Init_ex
函 数 名: int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md, ENGINE *impl);
功能描述: 初始化HMAC_CTX,设置密钥和使用的算法
说 明: 清除数据并置零。
参数说明:
ctx (in/out) 封装数据
key (in) 密钥
len (in) 密钥长度
md (in) 杂凑算法
impl (in) 引擎
返 回 值: 1[成功],<=0[失败]
HMAC_Update
函 数 名: int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
功能描述: 处理数据
说 明: -
参数说明:
ctx (in/out) 封装数据
data (in) 数据
len (in) 数据长度
返 回 值: 1[成功],<=0[失败]
HMAC_Final
函 数 名: int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
功能描述: 获取MAC值
说 明: -
参数说明:
ctx (in/out) 封装数据
md (out) MAC值
len (out) MAC长度
返 回 值: 1[成功],<=0[失败]
HMAC
函 数 名: unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int klen, const unsigned char *data, size_t dlen, unsigned char *md, unsigned int *mdlen);
功能描述: 计算MAC值
说 明: 不涉及HMAC_CTX
参数说明:
evp_md (in) 杂凑算法
key (in) 密钥
klen (in) 密钥长度
data (in) 数据
dlen (in) 数据长度
md (in) MAC值
mdlen (in) MAC长度
返 回 值: 非NULL[MAC值],NULL[失败]