The Python 3.4 standard `ssl` module API implemented on top of pyOpenSSL
Project description
-------------
backports.ssl
-------------
What is it?
-----------
It's the Python 3.4 standard ``ssl`` module API implemented on top of
pyOpenSSL::
import backports.ssl as ssl
import socket
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.verify_mode = ssl.CERT_REQUIRED
conn = context.wrap_socket(socket.socket(socket.AF_INET))
conn.connect(('google.com', 443))
print conn.getpeercert()
conn.close()
Why?
----
Because the latest web technologies should be available to those running older
versions of Python.
Isn't this obsoleted by `PEP 466`_?
-----------------------------------
If you're on Python 2.7, then probably. But PEP 466 doesn't cover Python 2.6,
3.2, or 3.3, and the ``ssl.RAND_*()`` functions are explicitly out of scope.
This package supports it all.
How do I use it with third-party libraries?
-------------------------------------------
Monkey-patching support is included a la `gevent`_::
import backports.ssl.monkey as monkey
import requests
monkey.patch()
requests.get('https://google.com')
Why am I getting ``AttributeError``\ s for newer features?
------------------------------------------------------
Like the standard ``ssl`` module, certain attributes will not be available if
your OpenSSL does not support them. See `Installing OpenSSL`_ for instructions.
Installing OpenSSL
------------------
TODO
----
- Verify that we play nicely with gevent's monkey-patching.
- Backport and pass the standard Python ``ssl`` test suite.
- If not that, automate testing against hyper, urllib3, requests, and Tornado
test suites.
- Use the bundled 3.x OpenSSL, if available and newer than the default.
.. _`PEP 466`: http://legacy.python.org/dev/peps/pep-0466
.. _`gevent`: http://gevent.org
backports.ssl
-------------
What is it?
-----------
It's the Python 3.4 standard ``ssl`` module API implemented on top of
pyOpenSSL::
import backports.ssl as ssl
import socket
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.verify_mode = ssl.CERT_REQUIRED
conn = context.wrap_socket(socket.socket(socket.AF_INET))
conn.connect(('google.com', 443))
print conn.getpeercert()
conn.close()
Why?
----
Because the latest web technologies should be available to those running older
versions of Python.
Isn't this obsoleted by `PEP 466`_?
-----------------------------------
If you're on Python 2.7, then probably. But PEP 466 doesn't cover Python 2.6,
3.2, or 3.3, and the ``ssl.RAND_*()`` functions are explicitly out of scope.
This package supports it all.
How do I use it with third-party libraries?
-------------------------------------------
Monkey-patching support is included a la `gevent`_::
import backports.ssl.monkey as monkey
import requests
monkey.patch()
requests.get('https://google.com')
Why am I getting ``AttributeError``\ s for newer features?
------------------------------------------------------
Like the standard ``ssl`` module, certain attributes will not be available if
your OpenSSL does not support them. See `Installing OpenSSL`_ for instructions.
Installing OpenSSL
------------------
TODO
----
- Verify that we play nicely with gevent's monkey-patching.
- Backport and pass the standard Python ``ssl`` test suite.
- If not that, automate testing against hyper, urllib3, requests, and Tornado
test suites.
- Use the bundled 3.x OpenSSL, if available and newer than the default.
.. _`PEP 466`: http://legacy.python.org/dev/peps/pep-0466
.. _`gevent`: http://gevent.org
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
backports.ssl-0.0.6.tar.gz
(11.3 kB
view details)
File details
Details for the file backports.ssl-0.0.6.tar.gz
.
File metadata
- Download URL: backports.ssl-0.0.6.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
ff0c12f7dc0977c156866273ebbcc286262e04b8cf7c4fa2efcc47453226ea43
|
|
MD5 |
8822046f5569d4712127f253a3831a38
|
|
BLAKE2b-256 |
cbf45f053311edd20b7a168883a0b4282cce261bb5585cd1542e7fcd8d4e787a
|