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

3 投票
1 回答
4419 浏览
提问于 2025-04-16 16:18

这个方法 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>

撰写回答