Loading a DER-encoded RSA key using M2Crypto
The method M2Crypto.RSA.RSA().save_key_der()
can be used to save a key in the DER format. However, I do not see a corresponding method M2Crypto.RSA.load_key开发者_开发问答_der()
as I would expect.
Is there a way to load a DER-encoded RSA key using M2Crypto?
The PEM format is base64-encoded DER data with some additional header and footer lines. You can just read DER as binary, transform it to PEM and pass that to 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
Output:
<M2Crypto.RSA.RSA instance at 0x10eb710>
精彩评论