Загрузка ключа RSA в кодировке DER с использованием M2Crypto - PullRequest
3 голосов
/ 23 апреля 2011

Метод M2Crypto.RSA.RSA().save_key_der() можно использовать для сохранения ключа в формате DER.Однако я не вижу соответствующего метода M2Crypto.RSA.load_key_der(), как ожидалось бы.

Есть ли способ загрузить кодированный ключом DER ключ RSA с помощью M2Crypto?

1 Ответ

10 голосов
/ 23 апреля 2011

Формат 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>
...