O comando genpkey
pode criar outros tipos de chaves privadas - DSA, DH, EC e talvez GOST - enquanto o genrsa
, como o próprio nome indica, só gera chaves RSA. Existem comandos equivalentes de gendh
e gendsa
.
No entanto, a documentação do OpenSSL afirma que esses comandos gen*
foram substituídos pelo comando genérico genpkey
.
No caso de seus exemplos, ambos geram chaves privadas RSA.
openssl genrsa -out genrsa.key 2048
e
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out genpkey.key
irá gerar uma chave RSA de 2048 bits com o expoente configurado para 65537.
Simplesmente cat
dos arquivos resultantes para ver se ambos são chaves privadas no formato PEM; Embora openssl rsa
os inclua em BEGIN RSA PRIVATE KEY
e END RSA PRIVATE KEY
, enquanto openssl genpkey
omite o RSA
. O primeiro é o formato PKCS # 1 , enquanto o segundo é PKCS # 8 .
A execução de openssl rsa text -in <filename>
contra ambos mostra que são chaves privadas RSA com o mesmo publicExponent
. O mais recente comando genpkey
tem a opção de alterar isso usando -pkeyopt rsa_keygen_pubexp:value
, enquanto o comando genrsa
não tem essa opção.