OpenSSL: genrsa vs 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, тоді як ключі, згенеровані за допомогою genpkeypkcs # 8. Якщо це недостатньо погано, якщо ви використовуєте, genpkey -outform derто це повертається до ПК №1. З ЄС, це ще гірше, як - то genecвідсутня, натомість є ecparam -genkey, і яким - то чином ecparam -genkey, genpkey -outform pem, genpkey -outform derвсі вони мають різну структуру ASN.1.
Лежати Райан

Відповіді:


9

У ній чітко зазначається, що genrsaвитіснено genpkey, так що так, genpkeyце заміна.

Ви можете змінити шифр на 3des, використовуючи -cipherаргумент

Також слід сказати, що для додавання пароля ви використовуєте -passаргумент

Ви можете знайти більше інформації тут


1
Ну, я бачу -passаргумент зараз (якщо припустити, що це те саме, що -3des), але я навіть не бачу опції вказувати довжину ключа genpkey? Я також вставив всю інформацію про те, що про це мали сказати сторінки Ubuntu 14.04 man.
Еван Керролл

1
Чи можу я тобі вказати на цю документацію: genpkey
MichelZ

3
Лол, це горіхи ... -pkeyopt rsa_keygen_bits:numbits.
Еван Керролл

Чому саме горіхи? :)
MichelZ

9
Тому що вся мета -h - забезпечити конспект команди. Однак, я щойно з’ясував, що genpkeyце фактично задокументовано на власних сторінках. Це цікаво. Весь проект повинен рухати напрямок git-core, при цьому всі сторінки мають префікс opensl-, а призначений для користувача інтерфейс дозволяє виправляти довідкові openssl help genpkeyсторінки. tldr; кращі документи допоможуть.
Еван Керролл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.