openssl genpkey -paramfile dhp.pem -out dhkey.pem
用途:
用于産生各種密鑰(RSA、DSA、DH、EC等)的私鑰值。
用法:
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:指定輸出格式,一般為PEM和DER。
-pass arg:輸出檔案密碼保護存放方式。
-cipher:私鑰加密的加密算法。
-engine id:硬體引擎。
-paramfile file:産生私鑰的參數值。一些公鑰算法可以根據這些參數産生一個私鑰。如果想這樣産生密鑰,則必須設定此選項。參數值來決定是否使用公鑰算法。如果用了此選項,該選項必須在-pkeyopt之前。
-algorithm alg:公鑰算法,可以用RSA、DSA以及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