OpenSSL命令---genpkey

openssl genpkey -paramfile dhp.pem -out dhkey.pem 


用途:

用于产生各种密钥(RSADSADHEC等)的私钥值。

用法:

openssl  genpkey [-out filename] [-outform PEM | DER] [-pass arg] [-cipher] [-engine id] 
[-paramfile file] [-algorithm alg] [-pkeyopt opt:value] [-genparam] [-text] 

选项说明:

-out filename:指定输出文件。如果没有设置,则为标准输出。

-outform PEM | DER:指定输出格式,一般为PEMDER

-pass arg:输出文件口令保护存放方式。

 -cipher:私钥加密的加密算法。

-engine id:硬件引擎。

-paramfile file:产生私钥的参数值。一些公钥算法可以根据这些参数产生一个私钥。如果想这样产生密钥,则必须设置此选项。参数值来决定是否使用公钥算法。如果用了此选项,该选项必须在-pkeyopt之前。

-algorithm alg:公钥算法,可以用RSADSA以及DH。如果用了此选项,该选项必须在-pkeyopt之前。

-pkeyopt opt:value:设置公钥算法的选项值。

-genparam:产生一系列参数来代替私钥值。如果用了此选项,该选项必须在-algorithm alg -pkeyopt 以及-paramfile file之前。

-text:打印消息值。

密钥产生选项值:

这些选项支持每个算法,对个算法可以改变。OpenSSL中的实现如下:

RSA密钥产生选项:

B<rsa_keygen_bits:numbits>:产生密钥位数。如果没有指定,则默认为1024

B<rsa_keygen_pubexp:value>RSA公钥指数值。它可以是一个大地小数或者是以B<0x>开头的十六进制数。默认为65537

DSA参数产生选项:

B<dsa_paramgen_bits:numbits>:产生DSA密钥参数的位数,如果没有指定,则默认为1024

DH参数产生选项:

B<dh_paramgen_prime_len:numbits>:素数参数B<p>的字节数。

B<dh_paramgen_generator:value>:产生B<g>的值。

EC参数产生选项:

B<ec_paramgen_curve:curve>:用的EC椭圆曲线。

GOST2001 密钥和参数产生选项:

默认的是不支持Gost 2001.为了支持这个算法,必须在OpenSSL配置文件中加载ccgost硬件引擎。可以看看在engines/ccgost 目录下的README.gost文件介绍。

GOST R 34.10算法的参数文件是可选的。参数可以在密钥产生中被指定。

B<paramset:name>:可以根据RFC4357来指定GOST R 34.10-2001的参数值。参数值可以用简短的名字、项目短名字或数字型的OID来指定。下面是所支持的参数值:

paramset   OID               Usage
  A          1.2.643.2.2.35.1  Signature
  B          1.2.643.2.2.35.2  Signature
  C          1.2.643.2.2.35.3  Signature
  XA         1.2.643.2.2.36.0  Key exchange
  XB         1.2.643.2.2.36.1  Key exchange
  test       1.2.643.2.2.35.0  Test purposes

注意:

使用genpkey项目是受到鼓舞的,是因为可以使用附加的算法选项和提供的硬件引擎算法可以被使用。

实例:

用常规参数值产生一个RSA私钥值。

openssl genpkey -algorithm RSA -out key.pem 


AES算法对输出的私钥文件进行加密,密钥为“hello”。

openssl genpkey -algorithm RSA -out key.pem -aes-128-cbc -pass pass:hello


用公共的指数3来产生一个2048位的RSA密钥值。

openssl genpkey -algorithm RSA -out key.pem -pkeyopt rsa_keygen_bits:2048 \
                                                        -pkeyopt rsa_keygen_pubexp:3

产生一个1024位的DSA密钥参数值。

openssl genpkey -genparam -algorithm DSA -out dsap.pem \
                                                -pkeyopt dsa_paramgen_bits:1024


根据参数值来产生DSA密钥值。

openssl genpkey -paramfile dsap.pem -out dsakey.pem 


产生1024位的DH参数值。

openssl genpkey -genparam -algorithm DH -out dhp.pem \
                                       -pkeyopt dh_paramgen_prime_len:1024

根据参数值产生DH密钥值。

openssl genpkey -paramfile dhp.pem -out dhkey.pem 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值