OpenQuizz
Une application de gestion des contenus pédagogiques
urllib3.contrib.pyopenssl Namespace Reference

Data Structures

class  PyOpenSSLContext
 
class  UnsupportedExtension
 
class  WrappedSocket
 

Functions

def inject_into_urllib3 ()
 
def extract_from_urllib3 ()
 
def get_subj_alt_name (peer_cert)
 
def makefile (self, mode, bufsize=-1)
 

Variables

 HAS_SNI
 
 SSL_WRITE_BLOCKSIZE
 
 orig_util_HAS_SNI
 
 orig_util_SSLContext
 
 log
 
 makefile
 

Detailed Description

TLS with SNI_-support for Python 2. Follow these instructions if you would
like to verify TLS certificates in Python 2. Note, the default libraries do
*not* do certificate checking; you need to do additional work to validate
certificates yourself.

This needs the following packages installed:

* `pyOpenSSL`_ (tested with 16.0.0)
* `cryptography`_ (minimum 1.3.4, from pyopenssl)
* `idna`_ (minimum 2.0, from cryptography)

However, pyopenssl depends on cryptography, which depends on idna, so while we
use all three directly here we end up having relatively few packages required.

You can install them with the following command:

.. code-block:: bash

    $ python -m pip install pyopenssl cryptography idna

To activate certificate checking, call
:func:`~urllib3.contrib.pyopenssl.inject_into_urllib3` from your Python code
before you begin making HTTP requests. This can be done in a ``sitecustomize``
module, or at any other time before your application begins using ``urllib3``,
like this:

.. code-block:: python

    try:
import urllib3.contrib.pyopenssl
urllib3.contrib.pyopenssl.inject_into_urllib3()
    except ImportError:
pass

Now you can use :mod:`urllib3` as you normally would, and it will support SNI
when the required modules are installed.

Activating this module also has the positive side effect of disabling SSL/TLS
compression in Python 2 (see `CRIME attack`_).

.. _sni: https://en.wikipedia.org/wiki/Server_Name_Indication
.. _crime attack: https://en.wikipedia.org/wiki/CRIME_(security_exploit)
.. _pyopenssl: https://www.pyopenssl.org
.. _cryptography: https://cryptography.io
.. _idna: https://github.com/kjd/idna

Function Documentation

◆ extract_from_urllib3()

def urllib3.contrib.pyopenssl.extract_from_urllib3 ( )

◆ get_subj_alt_name()

def urllib3.contrib.pyopenssl.get_subj_alt_name (   peer_cert)
Given an PyOpenSSL certificate, provides all the subject alternative names.

◆ inject_into_urllib3()

def urllib3.contrib.pyopenssl.inject_into_urllib3 ( )

◆ makefile()

def urllib3.contrib.pyopenssl.makefile (   self,
  mode,
  bufsize = -1 
)

Variable Documentation

◆ HAS_SNI

HAS_SNI

◆ log

log

◆ makefile

makefile

◆ orig_util_HAS_SNI

orig_util_HAS_SNI

◆ orig_util_SSLContext

orig_util_SSLContext

◆ SSL_WRITE_BLOCKSIZE

SSL_WRITE_BLOCKSIZE