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,