我生成与OpenSSL的一个关键,从标准输入提供的密码:如何在PyCrypto中使用加密的RSA私钥?
openssl genpkey -algorithm RSA -out private-key.pem -outform PEM -pass stdin -des3 -pkeyopt rsa_keygen_bits:4096
那么关键是这样的:
-----BEGIN ENCRYPTED PRIVATE KEY-----
XXX...
-----END ENCRYPTED PRIVATE KEY-----
我的Python代码如下所示:
from Crypto.PublicKey import RSA
# ...
f = open('private-key.pem', 'r')
r = RSA.importKey(f.read(), passphrase='some-pass')
f.close()
但我收到一个例外:
File "/usr/lib/python2.7/dist-packages/Crypto/PublicKey/RSA.py", line 665, in importKey
return self._importKeyDER(der)
File "/usr/lib/python2.7/dist-packages/Crypto/PublicKey/RSA.py", line 588, in _importKeyDER
raise ValueError("RSA key format is not supported")
ValueError: RSA key format is not supported
有什么不对?
是否有可能生成一个加密的RSA密钥,将其存储在一个文件中,并随后与PyCrypto一起使用?用OpenSSL可以做到吗?支持哪些格式?
导入公钥工作正常,但它没有加密。
有趣的是,从栈跟踪判断它试图以二进制DER格式导入它,而不是在PEM中。您确定提供了正确的文件吗? –