1.源码实现
#include
#include
#include
#include
#include
//公钥加密
int my_encrypt(const char *input, int input_len, char *output, int *output_len, const char *pri_key_fn)
{
RSA *p_rsa = NULL;
FILE *file = NULL;
int ret = 0;
if((file = fopen(pri_key_fn, "rb")) == NULL)
{
ret = -1;
goto End;
}
if((p_rsa = PEM_read_RSA_PUBKEY(file, NULL,NULL,NULL )) == NULL)
{
ret = -2;
goto End;
}
if((*output_len=RSA_public_encrypt(input_len, (unsigned char*)input, (unsigned char*)output, p_rsa, RSA_PKCS1_PADDING)) < 0)
{
ret = -4;
goto End;
}
End:
if(p_rsa != NULL)
RSA_free(p_rsa);
if(file != NULL)
<