我生成與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中。您確定提供了正確的文件嗎? –