Почему 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
? И как мы можем добавить к нему пароль и указать длину ключа?
genrsa
иgenpkey
фактически отличается. Структура ASN.1 ключей, сгенерированных с использованиемgenrsa
pkcs # 1, в то время как ключи, сгенерированные с использованиемgenpkey
pkcs # 8. Если это не так уж плохо, если вы используете,genpkey -outform der
то вернемся к pkcs # 1. С ЕС, это еще хуже, как - тоgenec
отсутствует, вместо этого естьecparam -genkey
, и каким - то образомecparam -genkey
,genpkey -outform pem
,genpkey -outform der
все они имеют различную структуру ASN.1.Ответы:
В нем четко говорится, что
genrsa
был замененgenpkey
, так что да,genpkey
это замена.Вы можете изменить шифр
3des
, используя-cipher
аргументКроме того, он должен сказать вам, что для добавления пароля, вы используете
-pass
аргументВы можете найти больше информации здесь
источник
-pass
теперь я вижу аргумент (при условии, что он такой же, как -3des), но я даже не вижу опции для указания длины ключаgenpkey
? Я также вставил все то, что Man-страницы Ubuntu 14.04 должны были сказать об этом.-pkeyopt rsa_keygen_bits:numbits
.genpkey
что на самом деле задокументировано на своих страницах руководства. Это интересно. Весь проект должен двигаться в направлении git-core, все страницы руководства которого начинаются с openssl-, а пользовательский интерфейс позволяетopenssl help genpkey
отображать страницы руководства. tldr; лучше документы помогут.