网站重购,全球速卖通中文版,互联网服务网站建设目的,天津市最穷的四个区1 引言 最近不小心用到了openssl3.0#xff0c;项目中需要使用rsa非对称加解密算法#xff0c;所以把openssl3.0使用公钥加密数据的函数调用摸了一遍。 之所以记录此篇文章#xff0c;是因为网络上大多数是openssl3.0以前的版本的函数接口#xff0c;而openssl3.0之后已经丢…1 引言 最近不小心用到了openssl3.0项目中需要使用rsa非对称加解密算法所以把openssl3.0使用公钥加密数据的函数调用摸了一遍。 之所以记录此篇文章是因为网络上大多数是openssl3.0以前的版本的函数接口而openssl3.0之后已经丢弃了很多旧接口了导致我网上搜索例程的时候不是很顺利看到的基本都是旧接口不能用因此特此记录。
2 实验 废话少说直接上代码
int rsa_publickey_enc(char *p_data_in, int data_in_len, char *p_data_out, int data_outbuff_len, int *p_data_out_len)
{int int_ret 0;size_t rsa_inlendata_in_len;size_t rsa_outlen0;uint8_t *rsa_inp_data_in;uint8_t *rsa_outp_data_out;uint8_t padRSA_PKCS1_PADDING;BIO *inNULL;EVP_PKEY *pkeyNULL;EVP_PKEY_CTX *ctxNULL;do{in BIO_new_file(publickey.pem, r);pkey PEM_read_bio_PUBKEY(in,NULL,0,NULL);ctx EVP_PKEY_CTX_new_from_pkey(NULL,pkey,NULL);EVP_PKEY_encrypt_init(ctx);EVP_PKEY_CTX_set_rsa_padding(ctx,pad);EVP_PKEY_encrypt(ctx, rsa_out, rsa_outlen ,rsa_in,rsa_inlen);*p_data_out_len rsa_outlen;}while(0);EVP_PKEY_CTX_free(ctx);EVP_PKEY_free(ctx);BIO_free(in);return int_ret;
}至于上述代码返回值得判断啥的我就没有判断了注意实际使用时请按编码规范编程。
以上over