使用M2Crypto加载DER编码的RSA密钥

3 python m2crypto

该方法M2Crypto.RSA.RSA().save_key_der()可用于以DER格式保存密钥.但是,我没有M2Crypto.RSA.load_key_der()像我期望的那样看到相应的方法.

有没有办法使用M2Crypto加载DER编码的RSA密钥?

sam*_*ias 10

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
Run Code Online (Sandbox Code Playgroud)

输出:

<M2Crypto.RSA.RSA instance at 0x10eb710>
Run Code Online (Sandbox Code Playgroud)

  • 对于后代,Python也有"ssl.DER_cert_to_PEM_cert()"和"ssl.PEM_cert_to_DER_cert()"来完成这个. (3认同)