3
方法M2Crypto.RSA.RSA().save_key_der()
可用於保存DER格式的密鑰。但是,我沒有看到我期望的相應方法M2Crypto.RSA.load_key_der()
。使用M2Crypto加載DER編碼的RSA密鑰
有沒有辦法使用M2Crypto加載DER編碼的RSA密鑰?
方法M2Crypto.RSA.RSA().save_key_der()
可用於保存DER格式的密鑰。但是,我沒有看到我期望的相應方法M2Crypto.RSA.load_key_der()
。使用M2Crypto加載DER編碼的RSA密鑰
有沒有辦法使用M2Crypto加載DER編碼的RSA密鑰?
PEM格式是帶有一些額外的頁眉和頁腳行的base64編碼DER數據。你可以只是讀DER二進制,將其轉換爲PEM並傳遞到RSA.load_key_string
:
import base64
from M2Crypto import RSA
TEMPLATE = """
-----BEGIN RSA PRIVATE KEY-----
%s
-----END RSA PRIVATE KEY-----
"""
raw = open('key.der', 'rb').read()
data = TEMPLATE % base64.encodestring(raw).rstrip()
key = RSA.load_key_string(data)
print key
輸出:
<M2Crypto.RSA.RSA instance at 0x10eb710>
對於後人,Python中也有 「ssl.DER_cert_to_PEM_cert()」 和「SSL。 PEM_cert_to_DER_cert()「來做到這一點。 – 2014-02-18 02:47:47
@Dustin:但DER_cert_to_PEM_cert將打印「CERTIFICATE」而不是「RSA PRIVATE KEY」,這會混淆M2Crypto。 – 2014-06-26 08:45:29
@DominiqueEav感謝您的分享。我不使用它,所以我不知道這一點。 – 2014-06-26 20:02:25