Python может быть скомпилирован с поддержкой OpenSSL, которая требуется для внутренних библиотек, таких как TLS/SSL (https://docs.python.org/3.4/library/ssl.html) или urllib. Внутренняя библиотека ssl Python реализует протокол SSL через сокеты. Например, urllib использует его для протокола https.
pyOpenSSL - это еще одна библиотека Python, которую вы можете найти на Pypi. Он был создан для обеспечения полной поддержки OpenSSL lib, поскольку внутренний модуль SSL Python по-прежнему не охватывает все функциональные возможности.
Таким образом, он не является частью внутренних библиотек Python. Он реализует интерфейс высокого уровня через библиотеку openssl. Вы должны скомпилировать/установить его за пределами области Python. Поэтому он может быть скомпилирован с использованием другой версии, чем opensl lib, используемой Python.
Подробнее, в Windows вы будете устанавливать его с помощью двоичного пакета, поэтому предоставляется DLL OpenSSL, с которой она была скомпилирована; поэтому они могут отличаться от установленных в системе или Python.
Да pyOpenSLL напрямую связан с OpenSSL lib. Сценарии тестов также выполняют инструмент командной строки openssl, но не файлы Python библиотеки lib, когда вы быстро смотрите исходные файлы версии 0.14.
Надеюсь, это поможет.
Хорошо, если у меня есть веб-сервер в моем приложении Python с чем-то вроде CherryPy, и он использует HTTPS, какую библиотеку OpenSSL он использует? Тот, с которым связан Python, или тот, который использует pyOpenSSL? – Dave
Он использует ту, которая используется библиотекой Python TLS, которую она использует. Согласно http://cherrypy.readthedocs.org/en/latest/deploy.html#ssl-support, CherryPy может использовать * либо * встроенную библиотеку TLS, либо использовать pyOpenSSL - в зависимости от вашей конфигурации. –