使用M2Crypto加载DER编码的RSA密钥
这个方法 M2Crypto.RSA.RSA().save_key_der()
可以用来把一个密钥保存为DER格式。不过,我没有找到一个对应的方法 M2Crypto.RSA.load_key_der()
,我本来以为会有这个方法。
请问有没有办法用M2Crypto加载一个DER编码的RSA密钥呢?
1 个回答
10
PEM格式其实就是一种用base64编码的DER数据,里面还加了一些额外的头部和尾部信息。你可以把DER看作是二进制数据,然后把它转换成PEM格式,再把这个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>