【发布时间】:2011-04-23 15:08:42
【问题描述】:
M2Crypto.RSA.RSA().save_key_der() 方法可用于以 DER 格式保存密钥。但是,我没有看到对应的方法M2Crypto.RSA.load_key_der(),正如我所期望的那样。
有没有办法使用 M2Crypto 加载 DER 编码的 RSA 密钥?
【问题讨论】:
M2Crypto.RSA.RSA().save_key_der() 方法可用于以 DER 格式保存密钥。但是,我没有看到对应的方法M2Crypto.RSA.load_key_der(),正如我所期望的那样。
有没有办法使用 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>
【讨论】: