У меня есть следующий фрагмент кода, который извлечь сертификат хоста лист и сертификат RSA открытый ключ:Как извлечь RSA публичного экспоненту с помощью питона M2Crypto
c = ssock.getpeercert(True)
x509 = M2Crypto.X509.load_cert_der_string(c)
publickey=x509.get_pubkey()
m=publickey.get_modulus()
Я пытался найти функции для извлечения общественного экспоненту ключ RSA, но я не смог найти. Можете ли вы помочь мне выяснить, как я могу извлечь публичный показатель открытого ключа RSA?
EDIT: если это невозможно по M2Crypt. Пожалуйста, укажите любой другой способ.
EDIT 2: когда я пытался загрузить сертификат в DER как:
key = RSA.importKey(publickey.as_der())
Я получил эту ошибку:
('file() argument 1 must be encoded string without NULL bytes, not str',)
Я хочу, чтобы избежать сохранения в сертификаты локальной системе. Я просто хочу извлечь информацию, такую как модуль и показатель степени. Из-за ошибки я понимаю, что функция importKey
принимает аргумент как файл DER, а не строку. Можете ли вы помочь мне найти обходной путь?
Я не хочу модуль, потому что я уже получил его от 'мод = pk.get_modulus()' Я хочу общественный показатель, который обычно с именем 'e'. – user2192774
Это также не помогло мне извлечь 'n'. Вы уверены, что я отправляю 'c' на' importKey' ?? – user2192774
Сначала я неправильно понял вопрос и принял некоторые вещи. См. Отредактированную версию кода. –