openssl - 获得public key

本文介绍了使用OpenSSL进行公钥操作的方法,包括获取公钥长度、公钥的DER编码方式,以及使用RSA进行加密和解密的具体函数。通过这些函数可以实现公钥的编码转换及数据的加解密。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载:http://www.360doc.com/content/10/1102/10/2734308_65900605.shtml

openssl - 获得public key

 

1)

int publen;
unsigned char *buf;
EVP_PKEY *key;
publen=i2d_PublicKey(key,NULL);//得到key的长度
buf=(unsigned char *)malloc(publen);
i2d_PublicKey(key,&buf);//PublicKey DER code

2)
#include <openssl/rsa.h>

int RSA_private_encrypt(int flen, unsigned char *from,
            unsigned char *to, RSA *rsa, int padding);
int RSA_public_decrypt(int flen, unsigned char *from,
            unsigned char *to, RSA *rsa, int padding);

3)
#include <openssl/rsa.h>

int RSA_public_encrypt(int flen, unsigned char *from,
            unsigned char *to, RSA *rsa, int padding);
int RSA_private_decrypt(int flen, unsigned char *from,
            unsigned char *to, RSA *rsa, int padding);
4) typedef struct rsa_st RSA;
5)struct evp_pkey_st
 {
 int type;
 int save_type;
 int references;
 union {
   char *ptr;
#ifndef OPENSSL_NO_RSA
   struct rsa_st *rsa; /* RSA */
#endif
#ifndef OPENSSL_NO_DSA
   struct dsa_st *dsa; /* DSA */
#endif
#ifndef OPENSSL_NO_DH
   struct dh_st *dh; /* DH */
#endif
#ifndef OPENSSL_NO_EC
   struct ec_key_st *ec; /* ECC */
#endif
   } pkey;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值