对 OAEP 使用 sha1 以外的散列与 OpenSSL/CLI

neu*_*ert 6 rsa openssl

所述rsautl OpenSSL的效用没有出现有一个设置,其中用于OAEP散列可以被改变。我的测试表明它只是默认为 sha1,仅此而已。

我的问题是......有没有办法改变哈希?

我用来测试它的命令:

openssl rsautl -inkey publickey.txt -encrypt -oaep -in plaintext.txt -out ciphertext.txt
Run Code Online (Sandbox Code Playgroud)

dav*_*085 11

rsautl这是古老的,没有。pkeyutl应该rsautl在 2010 年取代,是的。-pkeyopt rsa_oaep_md:name或者在 PSS 上的 Q 中的散列rsa_mgf1_md:name哪里。name

注意pkeyutl在 1.1.0 之前(编辑)选项顺序很重要;你必须做-encrypt,然后-inkey rsaprivate -pkeyopt(当前没有记录AFAICS,虽然类似的情况genpkey是),你需要做rsa_padding_mode:oaep之前rsa_{oaep,mgf1}_md:hash

FIPS 模式可能存在同样的问题。

  • 我刚才正在尝试这个(也许我之前也尝试过 idk)并且我必须在每个选项之前执行 `-pkeyopt`。例如。`openssl pkeyutl -in ciphertext.txt -decrypt -inkey test.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha1`。所以在那种情况下,我需要为每个选项做一次 - 而不是全局一次。 (2认同)