Tidy-up the ssl section.

This commit is contained in:
Raymond Hettinger 2011-01-17 21:29:58 +00:00
parent 6e7f5823d0
commit 4854d14f55
1 changed files with 30 additions and 35 deletions

View File

@ -1040,8 +1040,7 @@ by Georg Brandl in :issue:`8046` and :issue:`1286`.)
The :class:`~ftplib.FTP_TLS` class now accepts a *context* parameter, which is a
:class:`ssl.SSLContext` object allowing bundling SSL configuration options,
certificates and private keys into a single (potentially long-lived)
structure.
certificates and private keys into a single (potentially long-lived) structure.
(Contributed by Giampaolo Rodolà; :issue:`8806`.)
@ -1134,48 +1133,44 @@ The :mod:`socket` module has two new improvements.
ssl
---
The :mod:`ssl` module gains an array of new functionalities which make it much easier
to satisfy common requirements for secure (encrypted, authenticated) connections
over the Internet:
The :mod:`ssl` module added a number of features to satisfy common requirements
for secure (encrypted, authenticated) internet connections:
* A new class, :class:`~ssl.SSLContext`, serves as a container for various
persistent SSL data, such as protocol settings, certificates, private keys,
and various other options. The :meth:`~ssl.SSLContext.wrap_socket` method
allows to create an SSL socket from such an SSL context. (Added by Antoine
Pitrou; :issue:`8550`.)
* A new class, :class:`~ssl.SSLContext`, serves as a container for persistent
SSL data, such as protocol settings, certificates, private keys, and various
other options. It includes a :meth:`~ssl.SSLContext.wrap_socket` for creating
an SSL socket from an SSL context.
* A new function, :func:`ssl.match_hostname`, helps implement server identity
verification for higher-level protocols by implementing the rules of
HTTPS (from :rfc:`2818`), which are also suitable for other protocols.
(Added by Antoine Pitrou, :issue:`1589`).
* A new function, :func:`ssl.match_hostname`, supports server identity
verification for higher-level protocols by implementing the rules of HTTPS
(from :rfc:`2818`) which are also suitable for other protocols.
* The :func:`ssl.wrap_socket` constructor function now takes a *ciphers*
argument that's a string listing the encryption algorithms to be allowed; the
format of the string is described `in the OpenSSL documentation
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`__. (Added
by Antoine Pitrou; :issue:`8322`.)
argument. The *ciphers* string lists the allowed encryption algorithms using
the format described in the `OpenSSL documentation
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`__.
* When linked against a recent enough version of OpenSSL, the :mod:`ssl`
module now supports the Server Name Indication extension to the TLS
protocol, allowing for several "virtual hosts" using different certificates
on a single IP/port. This extension is only supported in client mode,
and is activated by passing the *server_hostname* argument to
:meth:`ssl.SSLContext.wrap_socket`.
(Added by Antoine Pitrou, :issue:`5639`.)
* When linked against recent versions of OpenSSL, the :mod:`ssl` module now
supports the Server Name Indication extension to the TLS protocol, allowing
multiple "virtual hosts" using different certificates on a single IP port.
This extension is only supported in client mode, and is activated by passing
the *server_hostname* argument to :meth:`ssl.SSLContext.wrap_socket`.
* Various options have been added to the :mod:`ssl` module, such as
:data:`~ssl.OP_NO_SSLv2` which allows to force disabling of the insecure and
obsolete SSLv2 protocol. (Added by Antoine Pitrou; :issue:`4870`.)
:data:`~ssl.OP_NO_SSLv2` which disables the insecure and obsolete SSLv2
protocol.
* Another change makes the extension load all of OpenSSL's ciphers and digest
algorithms so that they're all available. Some SSL certificates couldn't be
verified, reporting an "unknown algorithm" error. (Reported by Beda Kosata,
and fixed by Antoine Pitrou; :issue:`8484`.)
* The extension now loads all the OpenSSL ciphers and digest algorithms. If
some SSL certificates cannot be verified, they are reported as an "unknown
algorithm" error.
* The version of OpenSSL being used is now available as the module attributes
:data:`ssl.OPENSSL_VERSION` (a string), :data:`ssl.OPENSSL_VERSION_INFO` (a
5-tuple), and :data:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by
Antoine Pitrou; :issue:`8321`.)
* The version of OpenSSL being used is now accessible using the module
attributes :data:`ssl.OPENSSL_VERSION` (a string),
:data:`ssl.OPENSSL_VERSION_INFO` (a 5-tuple), and
:data:`ssl.OPENSSL_VERSION_NUMBER` (an integer).
(Contributed by Antoine Pitrou in :issue:`8850`, :issue:`1589`, :issue:`8322`,
:issue:`5639`, :issue:`4870`, :issue:`8484`, and :issue:`8321`.)
nntp
----