Openssl-HMAC

HMAC是计算MAC的一种方法,有密钥参与计算,不采用HASH算法,对数据做hash计算,并用密钥加密,计算出MAC数值;


void HMAC_CTX_init(HMAC_CTX *ctx);

初始化ctx,在计算MAC之前必须调用此函数;


void HMAC_CTX_cleanup(HMAC_CTX *ctx);

将ctx中密钥数据及其他相关数据清楚,如果不再计算ctx,需要调用此函数,将ctx中数据清除;


int HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
           const EVP_MD *md); /* deprecated */

初始化ctx数据,在ctx中复制EVP_MD方法,密钥数据,密钥数据长度为len;此函数在0.96版本之后不再被支持。


int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,

          const EVP_MD *md, ENGINE *impl);

初始ctx数据,在ctx中复制EVP_MD方法,密钥数据,密钥数据长度为len, impl可以为NULL;


int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);

此函数可以被重复调用,将数据块加入到计算结果中,数据缓冲区data,数据长度为len;


int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);

计算出的MAC数据放置在md中,用户需要保证md数据有足够长的空间,长度为len;


unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
            const unsigned char *d, size_t n, unsigned char *md,

            unsigned int *md_len);

直接计算MAC数据,通过evp_md,密钥,密钥数据长度len,计算的数据保存在d,长度为n,计算结果保存在md中,长度md_len;


int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx);

复制ctx;

dctx: 目标ctx;

sctx:源ctx;


void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags);

??



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值