Получение PrivateKey из модуля и D в XML данных RSAKey

У меня есть файл kwm (WebMoney key). Я использую связанный Key Extractor для извлечения ключа RSA.

Извлеченные данные имеют следующую структуру XML:

<RSAKeyValue>
    <Modulus>modulus data</Modulus>
    <D>more data</D>
</RSAKeyValue> 

Мне нужно экспортировать PrivateKey из этого XML, чтобы я мог использовать OpenSSL для подписи данных с помощью этого PrivateKey

Я нашел решение .Net, в котором показано, как извлечь закрытый ключ. Но добиться этого за python OpenSSL мне не удалось.

Как я могу получить данные PrivateKey с помощью python OpenSSL?

Примечание. Я уже использую OpenSSL для загрузки PrivateKey из pfx файла с помощью OpenSSL.crypto.load_pkcs12(<pfx_file>).get_privatekey(), но мне не удается извлечь PrivateKey из приведенных выше данных XML.


person FallenAngel    schedule 19.02.2014    source источник
comment
Пожалуйста, покажите нам, что вы пробовали в Python. Это сводится к созданию закрытого ключа из модуля и закрытого показателя (D) для библиотек python openssl.   -  person Maarten Bodewes    schedule 20.02.2014
comment
@owlstead Я не особо разбираюсь в шифровании. Я просмотрел методы и функции OpenSSL, но не нашел ничего полезного.   -  person FallenAngel    schedule 21.02.2014
comment
Попробуйте использовать эту функцию в pycrypto: pythonhosted.org//pycrypto /   -  person David K. Hess    schedule 24.02.2014


Ответы (1)


Я не думаю, что вы можете напрямую построить OpenSSL.crypto.PKey экземпляр из доступной вам информации. Формат дает вам модуль и d закрытого ключа RSA. Эти два числа составляют закрытый ключ RSA. Информация полная, но ее формат не поддерживается pyOpenSSL.

pyOpenSSL может загружать закрытый ключ RSA из файла PEM. Он не может инициализировать его напрямую из значений модуля и d. (Кстати, это связано с тем, что сам OpenSSL не позволяет приложениям работать с компонентами ключевых объектов.)

Относительно новый проект криптографии, являющийся зависимостью от pyOpenSSL начиная с pyOpenSSL 0.14, может когда-нибудь помочь вам, хотя я не Я еще не думаю, что он поддерживает RSA.

person Jean-Paul Calderone    schedule 26.02.2014