char *data_encrypy(char *data, char *PUB_KEY)
{
//对数据进行加密函数
char *encry_data;
RSA *p_rsa;
FILE *file;
int data_len, rsa_len;
if ((file = fopen(PUB_KEY, "r")) == NULL)
return NULL;
if ((p_rsa = PEM_read_RSA_PUBKEY(file,NULL,NULL,NULL)) == NULL)
return NULL;
data_len = strlen(data);
rsa_len = RSA_size(p_rsa);
encry_data = (char *)malloc(rsa_len+1);
memset(encry_data, 0, rsa_len+1);
if (RSA_public_encrypt(rsa_len, (unsigned char *)data,
(unsigned char *)encry_data, p_rsa, RSA_NO_PADDING)<</span>0)
return NULL;
RSA_free(p_rsa);
fclose(file);
return encry_data;
}
char *data_decrypy(char *data, char *SSL_KEY)
{
//对数据进行解密函数
char *decry_data;
RSA *p_rsa;
FILE *file;
int rsa_len;
if ((file = fopen(SSL_KEY, "r")) == NULL)
return NULL;
if ((p_rsa = PEM_read_RSAPrivateKey(file,NULL,NULL,NULL)) == NULL)
return NULL;
rsa_len = RSA_size(p_rsa);
decry_data = (char *)malloc(rsa_len+1);
memset(decry_data, 0, rsa_len+1);
if (RSA_private_decrypt(rsa_len, (unsigned char *)data, (unsigned char *)decry_data,
p_rsa, RSA_NO_PADDING) <</span> 0)
return NULL;
RSA_free(p_rsa);
fclose(file);
return decry_data;
}