Формат PEM представляет собой данные DER в кодировке base64 с некоторыми дополнительными строками верхнего и нижнего колонтитула.Вы можете просто прочитать 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>