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.7.tar.gz
(11.4 kB
view hashes)