c语言实现rsa签名验证,C语言openssl库RSA签名

本文展示了如何使用C语言结合OpenSSL库实现RSA签名和验证过程。通过源码解释了如何读取公钥和私钥文件,进行MD5哈希后的RSA签名及验证操作。
摘要由CSDN通过智能技术生成

1.源码实现

#include

#include

#include

#include

#include

//公钥验证签名

int my_verify(const char *input, int input_len, unsigned char *signret, int signlen, const char *pub_key_fn)

{

RSA *p_rsa = NULL;

BIGNUM *signnum;

unsigned char data[2][512+1];

FILE *file = NULL;

int nid;

int ret = 0;

signnum = BN_new();

if((file = fopen(pub_key_fn, "rb")) == NULL)

{

ret = -1;

return ret;

}

if((p_rsa = PEM_read_RSA_PUBKEY(file, NULL,NULL,NULL )) == NULL)

{

ret = -2;

fclose(file);

return ret;

}

fclose(file);

BN_hex2bn(&signnum, signret);

BN_bn2bin(signnum, data[0]);

nid = NID_md5;

ret = RSA_verify(nid,

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值