OpenSSL/GMSSL EVP接口说明——2.6 MAC操作

本文介绍了HMAC系列函数,包括HMAC_Init和HMAC_Init_ex用于设置密钥和初始化上下文,HMAC_Update处理数据,HMAC_Final获取MAC值,以及直接计算MAC的HMAC函数。这些函数在加密和数据验证中起到关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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[失败]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值