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 创建明文文件 ...
随机推荐
- Java8——jdk——java.time包
public class TestLocalDateTime { //6.ZonedDate.ZonedTime.ZonedDateTime : 带时区的时间或日期 @Test public void ...
- Git分支管理(四)
一.什么是分支 分支的好处: 同时并行推进多个功能开发,提高开发效率 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任 何影响.失败的分支删除重新开始即可. 二.分支的操作 1. 创建 ...
- pcp 基本使用
pcp 是一款强大的metrics 分析工具,包含了比较完整的指标分析工具链,同时也已经包含了好多pmdas 核心组件 参考架构 安装 centos yum install -y pcp 启动 sys ...
- [LeetCode] 854. K-Similar Strings 相似度为K的字符串
Strings A and B are K-similar (for some non-negative integer K) if we can swap the positions of two ...
- [LeetCode] 221. Maximal Square 最大正方形
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...
- boolean 属性的定义规范
[强制]POJO类中的任何布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误.说明:在本文MySQL规约中的建表约定第一条,表达是与否的值采用is_xxx的命名方式,所以,需要在< ...
- Data Science: An overview
Week 1 Data Science: An overview Objective: 1.Is data science the same as statistics or analysis? st ...
- myeclipse配置springmvc教程
之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希望能帮助到那些有需要的朋友.我是用的是MyE ...
- ReentrantReadWriteLock 源码分析
ReentrantReadWriteLock 源码分析: 1:数据结构: 成员变量: private final ReentrantReadWriteLock.ReadLock readerLock ...
- [IOT] - 在树莓派的 Raspbian 系统中安装 .Net Core 3.0 运行环境
之前在 Docker 中配置过 .Net Core 运行环境,地址:[IOT] - Raspberry Pi 4 Model B 系统初始化,Docker CE + .Net Core 开发环境配置 ...