备注: 新建密钥的公私钥信息为空。
───────────────────────────────────────
还有一种是利用事先存入系统的内建曲线来新建密钥,这样建立的密钥里面就有记载了椭圆曲线点群的信息。而用EC_KEY_new新建的密钥没有记载椭圆曲线点群的信息。
───────────────────────────────────────
EC_KEY *EC_KEY_new_by_curve_name(int nid)
功能: 利用内建曲线名称新建密钥
输入: nid【内建曲线名称的编号】
输出: -
返回: 新建密钥
出处: ec\ec_key.c
备注: 新建密钥的公私钥信息为空。
调用:
▼
EC_KEY *EC_KEY_new(void)
───────────────────────────────────────
系统中预存了67条内建曲线,包括NIST、X9.62、SECG、WAP/WTLS、IPSec推荐使用的曲线,详情参见ec\ec_curve.c。
───────────────────────────────────────
EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
功能: 复制密钥
输入: src
输出: dest ← src
返回: dest
出处: ec\ec_key.c
───────────────────────────────────────
───────────────────────────────────────
void EC_KEY_free(EC_KEY *r)
功能: 释放密钥
输入: r
输出: -
返回: -
出处: ec\ec_key.c
───────────────────────────────────────
新建密钥EC_KEY_new。───────────────────────────────────────EC_KEY *EC_KEY_new(void)功能: 新建密钥输入: -输出: -返回: 新建密钥出处: ec\ec_key.c备注: 新建密钥的公私钥信息为空。────────────────────────────...
gmssl编程之签发证书前言命令行实现方式编程实现方式step1. 产生
密钥
对step2.
生成
证书请求step3. 签发X509源代码
最近由于项目需求,需要通过代码组装并签发标准X509格式数字证书。故而查询资料对gmssl/
openssl
中签发证书流程就行了一番研究,终于完成。先记录如下.
命令行实现方式
命令行方式下使用gmssl/
openssl
指令进行证书签发主要有三步:
生成
密钥
对(私钥)、
生成
证书请求、签发证书。
具体小伙伴们可参考小编这篇文
章
:Gmssl
生成
自签名证书
编程实现方式
EVP框架是对
openssl
提供的所有
算法
进行了封装,在使用工程中只需要修改少量的代码就可以选择不同的加密
算法
,在工作中通常采用这种方式。
在上述两个示例中,直接使用API提供的接口,没有使用padding,在EVP中同样需要声明不可以使用padding方式,否则即使要加密的数据长度是AES_BLOCK_SIZE的整数倍,EVP默认也会对原始数据进行追加,导致结果不同,所以在试验中通过EVP_CIPHER_CTX_set_padding(&ctx, 0)
函数
关闭的EVP的padding功能,同样在解密的时候也需要进行关闭。
-----------------------------------
利用
OpenSSL
提供的
库
函数
,用C/C++编写: 1.编写程序
生成
RSA
密钥
对,并保存公钥到文
openssl
详解api编程
https://blog.51cto.com/u_16099174/6324509
椭圆曲线
算法
可以看作是定义在特殊集合下数的运算,满足一定的规则。椭圆曲线在如下两个域中定义:Fp域和F2m域。
Fp域,素数域,p为素数;
F2m域:特征为2的有限域,称之为二元域或者二进制扩展域。该域中,元素的个数为2m个。
以下只介绍素数域。
一些术语说明:
1) 椭圆曲线的阶(order of a
curve
)
椭圆曲线所
OpenSSL
是一个广泛使用的加密
库
,它提供了许多加密
算法
和工具,其中包括椭圆曲线
密码
(
EC
C)。
EC
C是一种公钥
密码
系统,相对于传统的RSA
算法
,它具有更高的安全性和更小的
密钥
长度,因此在现代加密领域广受欢迎。
使用
OpenSSL
生成
EC
C
密钥
有几个步骤:
1.
生成
密钥
对:使用以下命令
生成
一个
EC
C
密钥
对(私钥和公钥):
openssl
ec
param -name prime256v1 -gen
key
-out
ec
c.pem
prime256v1是
EC
C曲线的名称,可以替换为其他可用曲线的名称。
ec
c.pem将包含私钥和公钥。
2. 查看
密钥
:可以使用以下命令查看
生成
的
密钥
:
openssl
ec
-in
ec
c.pem -text -noout
这将显示
生成
的
EC
C
密钥
的详细信息,包括私钥和公钥。
3. 导出私钥和公钥:私钥和公钥可以分别导出为PEM格式的文件。可以使用以下命令导出私钥:
openssl
ec
-in
ec
c.pem -outform PEM -out
ec
c_priv.pem
可以使用以下命令导出公钥:
openssl
ec
-in
ec
c.pem -outform PEM -pubout -out
ec
c_pub.pem
4. 使用
密钥
:
生成
的
EC
C
密钥
可以用于加密、解密、签名和验证等操作。可以使用
OpenSSL
的各种命令和工具来执行这些操作。
总之,使用
OpenSSL
生成
EC
C
密钥
需要几个简单的步骤,但要确保选择适当的曲线和保持私钥的机密性,以确保安全性。