извлечение открытого ключа из сертификата и шифрование данных

Это для домашнего задания! Я получаю сертификат сервера, используя get_peer_certificate() и вызывающий dump_certificate чтобы сбрасывать сертификат в переменной. Формат PEM и выглядит правильно для меня.

 -----BEGIN CERTIFICATE----- GIBBERISH................ ...................... ........................ -----END CERTIFICATE----- 

Как извлечь открытый ключ сервера из этого файла ('server.pubkey') и зашифровать plaintext с помощью RSA алгоритма и любой библиотеки python. Во время написания этого, я использую pyOpenSSL

  • как отправлять данные с помощью скрученного протокола через фабрику
  • Использование sys.stdin в select.select в Windows
  • Сетевой мост с использованием Scapy и Python
  • В Python, как написать строку в файл на удаленной машине?
  • Как запустить программу, а также выполнить код, когда данные получены из сети?
  • Как написать простое приложение Bittorrent?
  • Сетевой мост с использованием Scapy и Python
  • Как заблокировать SSL-протоколы в пользу TLS?
  • В Python, как написать строку в файл на удаленной машине?
  • Python Interpreter блокирует многопоточные DNS-запросы?
  • Обновления pyOpenSSL и pandas с использованием «pip» завершаются с «TypeError: resolve () получили неожиданный аргумент ключевого слова« replace_conflicting »»
  • Как написать простое приложение Bittorrent?
  • One Solution collect form web for “извлечение открытого ключа из сертификата и шифрование данных”

    Я бы рекомендовал использовать более широкую криптографическую библиотеку, такую ​​как M2Crypto, которая имеет функции сертификата X509, а также шифрование RSA:

     from M2Crypto import RSA, X509 data = ssl_sock.getpeercert(1) # load the certificate into M2Crypto to manipulate it cert = X509.load_cert_string(data, X509.FORMAT_DER) pub_key = cert.get_pubkey() rsa_key = pub_key.get_rsa() cipher = rsa_key.public_encrypt('plaintext', RSA.pkcs1_padding) 
    Python - лучший язык программирования в мире.