OpenSSL: genrsa กับ genpkey?


12

เหตุใด OpenSSL จึงมีสองยูทิลิตี้ที่มีการทับซ้อนกันมาก

genpkey:

OpenSSL> genpkey -
Usage: genpkey [options]
where options may be
-out file          output file
-outform X         output format (DER or PEM)
-pass arg          output file pass phrase source
-<cipher>          use cipher <cipher> to encrypt the key
-engine e          use engine e, possibly a hardware device.
-paramfile file    parameters file
-algorithm alg     the public key algorithm
-pkeyopt opt:value set the public key algorithm option <opt>
                   to value <value>
-genparam          generate parameters, not key
-text              print the in text
NB: options order may be important!  See the manual page.

และgenrsa:

OpenSSL> genrsa -
usage: genrsa [args] [numbits]
 -des            encrypt the generated key with DES in cbc mode
 -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)
 -seed
                 encrypt PEM output with cbc seed
 -aes128, -aes192, -aes256
                 encrypt PEM output with cbc aes
 -camellia128, -camellia192, -camellia256
                 encrypt PEM output with cbc camellia
 -out file       output the key to 'file
 -passout arg    output file pass phrase source
 -f4             use F4 (0x10001) for the E value
 -3              use 3 for the E value
 -engine e       use engine e, possibly a hardware device.
 -rand file:file:...
                 load the file (or the files in the directory) into
                 the random number generator

เอกสารใน Debian ก็แปลกจริง ๆ เกี่ยวกับเรื่องนี้

   genpkey   Generation of Private Key or Parameters.
   genrsa    Generation of RSA Private Key. Superceded by genpkey.

คือgenpkeyการเปลี่ยน? ถ้าเป็นเช่นนั้นทำไมมันถึงไม่มี-des3? และเราจะเพิ่มรหัสผ่านอย่างไรและระบุความยาวคีย์ได้อย่างไร


2
หากคุณคิดว่ามีสองคำสั่งต่างกันในการทำสิ่งเดียวกันไม่ใช่ถั่วให้พิจารณาว่าโครงสร้าง ASN.1 สร้างขึ้นgenrsaและgenpkeyแตกต่างกันจริง โครงสร้าง ASN.1 ของคีย์ที่สร้างโดยใช้genrsaคือ pkcs # 1 ในขณะที่คีย์ที่สร้างโดยใช้genpkeyคือ pkcs # 8 หากยังไม่ดีพอหากคุณใช้งานgenpkey -outform derก็จะกลับไปใช้ pkcs # 1 ด้วย EC ก็จะยิ่งเลวร้ายอย่างใดgenecหายไปแทนที่จะมีecparam -genkeyและอย่างใดecparam -genkey, genpkey -outform pem, genpkey -outform derทุกคนต้องมีโครงสร้างที่แตกต่างกัน ASN.1
Lie Ryan

คำตอบ:


8

มันระบุอย่างชัดเจนว่าgenrsaถูกแทนที่ด้วยgenpkeyดังนั้นใช่genpkeyคือการแทนที่

คุณสามารถเปลี่ยนรหัสได้3desโดยใช้-cipherอาร์กิวเมนต์

นอกจากนี้ควรบอกคุณว่าการเพิ่มรหัสผ่านคุณใช้-passอาร์กิวเมนต์

คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ที่นี่


1
ดีฉันเห็น-passโต้แย้งในขณะนี้ (สมมติว่าเป็นเช่นเดียวกับ -3des) แต่ฉันไม่ได้เห็นตัวเลือกในการระบุความยาวที่สำคัญเกี่ยวกับgenpkey? ฉันยังวางทั้งหมดของสิ่งที่อูบุนตู 14.04 หน้าคนพูดเกี่ยวกับมัน
Evan Carroll

1
ฉันขอให้คุณชี้ไปที่เอกสารนี้แล้ว: genpkey
MichelZ

3
ฮ่า ๆ นี้เป็นถั่ว -pkeyopt rsa_keygen_bits:numbits...
Evan Carroll

ทำไมมันถั่ว :)
MichelZ

9
เพราะจุดประสงค์ทั้งหมดของ -h คือการจัดทำบทสรุปของคำสั่ง ที่กล่าวว่าฉันเพิ่งพบว่าgenpkeyเอกสารจริงในหน้าคนของตัวเอง นั่นดูน่าสนใจ. โครงการทั้งหมดควรย้ายทิศทางของ git-core โดยที่ man pages ทั้งหมดนำหน้าด้วย openssl- และ UI อนุญาตopenssl help genpkeyให้แสดงผล man pages TLDR; เอกสารที่ดีกว่าจะช่วยได้
Evan Carroll
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.