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

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

posted @ 2023-04-05 09:00  艾米的爸爸  阅读(2)  评论(0)    收藏  举报  来源