OpenSSL: genrsa vs genpkey?

12

Pourquoi OpenSSL fournit-il deux utilitaires avec autant de chevauchement

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.

Et 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

Les documents dans Debian sont également très étranges à ce sujet,

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

Est genpkeyun remplaçant? Si oui, comment se fait-il que ce ne soit pas le cas -des3? Et comment y ajouter un mot de passe et spécifier la longueur de la clé?

Evan Carroll
la source
2
Si vous pensez qu'avoir deux commandes différentes pour faire les mêmes choses n'est pas fou, alors considérez que la structure ASN.1 est générée genrsaet genpkeyest en fait différente. La structure ASN.1 des clés générées à l'aide genrsaest pkcs # 1, tandis que les clés générées à l'aide genpkeysont pkcs # 8. Si cela ne suffit pas, si vous l'utilisez, vous genpkey -outform derrevenez à pkcs # 1. Avec CE, il est encore pire, en quelque sorte genecest manquant, il y a lieu ecparam -genkey, et en quelque sorte ecparam -genkey, genpkey -outform pem, genpkey -outform deront tous différentes structures ASN.1.
Lie Ryan

Réponses:

8

Il indique clairement qu'il genrsaa été remplacé par genpkey, donc oui, genpkeyest un remplacement.

Vous pouvez changer le chiffre 3desen utilisant l' -cipherargument

De plus, il devrait vous dire que pour ajouter un mot de passe, vous utilisez l' -passargument

Vous pouvez trouver plus d'informations ici

MichelZ
la source
1
Eh bien, je vois l' -passargument maintenant (en supposant que c'est le même que -3des), mais je ne vois même pas d'option pour spécifier la longueur de clé genpkey? J'ai également collé l'intégralité de ce que les pages de manuel d'Ubuntu 14.04 avaient à dire à ce sujet.
Evan Carroll
1
Puis-je vous indiquer alors cette documentation: genpkey
MichelZ
3
Lol, c'est fou ... -pkeyopt rsa_keygen_bits:numbits.
Evan Carroll
Pourquoi est-ce fou? :)
MichelZ
9
Parce que le but de -h est de fournir un synopsis de la commande. Cela dit, je viens de découvrir qu'il genpkeyest en fait documenté dans ses propres pages de manuel. C'est intéressant. L'ensemble du projet devrait déplacer la direction de git-core, avec les pages de manuel toutes préfixées avec openssl-, et l'interface utilisateur permettant openssl help genpkeyde rendre les pages de manuel. tldr; de meilleurs documents aideraient.
Evan Carroll