Questão usando um hash diferente de sha1 para OAEP com OpenSSL / CLI


o Utilitário OpenSSL rsautl não parece ter uma configuração em que o hash para OAEP pode ser alterado. Meus testes sugerem que o padrão é sha1 e é isso.

Minha pergunta é ... existe uma maneira de mudar o hash?

O comando que usei para testá-lo:

openssl rsautl -inkey publickey.txt -encrypt -oaep -in plaintext.txt -out ciphertext.txt

4


origem




Respostas:


rsautl que é antigo, não. pkeyutl que deveria substituir rsautl em 2010, sim. -pkeyopt rsa_oaep_md:name ou rsa_mgf1_md:name Onde name é um hash como no seu Q no PSS.

Nota para pkeyutl a ordem de questões de opções; você deveria fazer -encrypt então -inkey rsaprivate  então  -pkeyopt (atualmente não documentado AFAICS, embora os casos análogos em genpkey são) e você precisa fazer rsa_padding_mode:oaep antes rsa_{oaep,mgf1}_md:hash .

Mesmo problema possível com o modo FIPS.


10



Eu estava tentando isso agora (talvez eu tenha tentado mais cedo também idk) e eu tive que fazer -pkeyopt antes de cada opção. por exemplo. openssl pkeyutl -in ciphertext.txt -decrypt -inkey test.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha1. Então, nesse caso, eu precisava fazer isso uma vez para cada opção - não uma vez globalmente. - neubert
@neubert: sim você precisa -pkeyopt para cada opção de chave; Eu pensei que essa parte estava clara na manpage e não a repeti. Mas os requisitos sob encomenda não eram (e são) todos documentados como AFAICS, e tais requisitos são incomuns para opensslEntão eu liguei para eles. - dave_thompson_085
A ordenação não parece importar com o OpenSSL 1.1.0f, mas não consegui encontrar essas opções documentadas. Apesar -pkeyopt rsa_oaep_md:sha256 funciona, não é mencionado em man pkeyutl. - starfry