C++ OpenSSL 之二:生成RSA文件
1.等同于生成private key: openssl genrsa -out "save_path" 2048
2.代码如下
bool MakeRsaKeySSL(const char *savePrivateKeyFilePath, const char *savePublicKeyFilePath) {
int ret = ;
RSA *r = NULL;
BIGNUM *bne = NULL;
BIO *bp_public = NULL, *bp_private = NULL;
int bits = ;
unsigned long e = RSA_F4;
// 1. generate rsa key
bne = BN_new();
ret = BN_set_word(bne, e);
if (ret != ) {
fprintf(stderr, "MakeLocalKeySSL BN_set_word err \n");
goto free_all;
}
r = RSA_new();
ret = RSA_generate_key_ex(r, bits, bne, NULL);
if (ret != ) {
fprintf(stderr, "MakeLocalKeySSL RSA_generate_key_ex err \n");
goto free_all;
}
// 2. save public key
if (savePublicKeyFilePath != NULL) {
bp_public = BIO_new_file(savePublicKeyFilePath, "w+");
ret = PEM_write_bio_RSAPublicKey(bp_public, r);
if (ret != ) {
fprintf(stderr, "MakeLocalKeySSL PEM_write_bio_RSAPublicKey err \n");
goto free_all;
}
}
// 3. save private key
if (savePrivateKeyFilePath != NULL) {
bp_private = BIO_new_file(savePrivateKeyFilePath, "w+");
ret = PEM_write_bio_RSAPrivateKey(bp_private, r, NULL, NULL, , NULL, NULL);
}
// 4. free
free_all:
BIO_free_all(bp_public);
BIO_free_all(bp_private);
RSA_free(r);
BN_free(bne);
return (ret == );
}
以上。
《C++ OpenSSL 之一:编译和使用》
《C++ OpenSSL 之二:生成RSA文件》
《C++ OpenSSL 之三:生成CSR文件》
《C++ OpenSSL 之四:CER转换为PEM》
《C++ OpenSSL 之五:生成P12文件》
C++ OpenSSL 之二:生成RSA文件的更多相关文章
- C++ OpenSSL 之三:生成CSR文件
1.等同于使用: openssl req -new -key "key_path" -out "save_path" -subj "/emailAdd ...
- C++ OpenSSL 之五:生成P12文件
1.等同于使用: openssl pkcs12 -export -inkey "key_path" -in "pem_path" -out "save ...
- 用OpenSSL命令行生成证书文件
用OpenSSL命令行生成证书文件 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加 ...
- 使用OpenSSL为支付宝生成RSA私钥
通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到,也可以点此下载无线接口包,里面包含此工具)打开openssl文件夹下的bin文件夹,执行openssl.exe文件: ...
- openssl asn.1 生成DER文件,把DER文件转换成内部数据结构
1 在实现之前,先来介绍如何生成der文件,有了源数据才能进行验证和测试.生成的方法是使用在openssl的命令中使用*asn1parse*根据配置文件来生成.详情如下: 1.1 创建配置文件test ...
- 在Linux下如何使用openssl生成RSA公钥和私钥对
在<Java实现RSA密钥对并在加解密.加签验签中应用的实例>中,我们有用Java代码生成RSA密钥对,其实在Linux操作系统中,用openssl也是很容易生成密钥对的. 一.如果在ub ...
- 利用keytool、openssl生成证书文件
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52225073 本文出自: [HansChen的博客] 用openssl指令逐步生成各 ...
- openssl mac中使用终端生成RSA私钥和公钥文件
RSA密钥生成命令生成RSA私钥openssl>genrsa -out rsa_private_key.pem 1024生成RSA公钥openssl>rsa -in rsa_private ...
- 使用OpenSSL生成RSA秘钥对并对文件加解密
生成RSA私钥 openssl genrsa -out rsa.key 1024 生成RSA公钥 openssl rsa -in rsa.key -pubout -out pub.key 创建明文文件 ...
随机推荐
- woocommerce调用分类描述另一种方法
woocommerce是在wordpress基础上开发的,有些函数是通用的,有些需要自己调用,比如文章分类用category_description()就可以调用,而woocommerce的产品分类描 ...
- 【转载】Innodb中的事务隔离级别和锁的关系
前言 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式.同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力.所 ...
- 一致性算法Raft
参阅:https://www.cnblogs.com/xybaby/p/10124083.html 可视化:http://thesecretlivesofdata.com/raft/
- 区间DP(超详细!!!)
一.问题 给定长为n的序列a[i],每次可以将连续一段回文序列消去,消去后左右两边会接到一起,求最少消几次能消完整个序列,n≤500. f[i][j]表示消去区间[i,j]需要的最少次数. 则; 若a ...
- Word中怎么快速选中并组合多个文本框图形
目的: 选中全部的文本框或者图形.图像,然后组合到一起 步骤: 点击开始(Home),点击右侧 选择--选择对象 (select -- select objects) -- 鼠标拖放框选图形 -- 右 ...
- Linux内核中的并发与竞态概述
1.前言 众所周知,Linux系统是一个多任务的操作系统,当多个任务同时访问同一片内存区域的时候,这些任务可能会相互覆盖内存中数据,从而造成内存中的数据混乱,问题严重的话,还可能会导致系统崩溃. 2. ...
- linux 内核参数tcp_max_syn_backlog对应的队列最小长度
环境:centos7.4 内核版本3.10 内核参数net.ipv4.tcp_max_syn_backlog定义了处于SYN_RECV的TCP最大连接数,当处于SYN_RECV状态的TCP连接数超过t ...
- Java中调用存储过程
dao层: import java.util.Map; public interface AppGthdDao { public String gthd(Map map); } mapper层 < ...
- Vue双向绑定原理(我尽量写的。简洁)
先问自己两个问题: 1.app.message修改数据的时候,Vue内部是如何监听message数据发生改变的 使用Object.defineProperty ->监听对象属性的改变 2.当数据 ...
- github 白嫖记(一)
位运算 按位操作符:0或者1之间的运算 a|b 或 任意一个为1结果为1 console.log(0 | 1) //1 console.log(1 | 0) //1 console.log(1 | 1 ...