classification
Title: Python SSL stack doesn't support Compression configuration
Type: enhancement Stage: committed/rejected
Components: Library (Lib) Versions: Python 3.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: jcea, naif, pitrou, python-dev
Priority: normal Keywords: patch

Created on 2011-12-19 10:39 by naif, last changed 2011-12-20 09:19 by pitrou. This issue is now closed.

Files
File name Uploaded Description Edit
compression.patch pitrou, 2011-12-19 14:47 review
Messages (6)
msg149830 - (view) Author: naif (naif) Date: 2011-12-19 10:39
TLSv1 support compression with gzip/deflate that can provide for a lot of protocols a great improvement (just think about SIP/TLS or IMAP) in terms of bandwidth.

Currenly Python SSL stack based on OpenSSL doesn't allow the configuration (enabling/disabling/forcing) of TLS compression.

This ticket is about suggesting to implement TLS compression configuration of OpenSSL as described on:
http://blog.dave.cridland.net/?p=73
msg149838 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-12-19 10:58
So, there are two things here:
- allow to disable compression (it's enabled by default AFAICT) using the SSL_OP_NO_COMPRESSION flag
- allow to query compression status on SSL sockets using the SSL_get_current_compression() API
msg149864 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-12-19 14:47
Here is a patch.
msg149865 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-12-19 14:48
(note that some OpenSSLs are built without compression, such as Mageia's)
msg149906 - (view) Author: Roundup Robot (python-dev) Date: 2011-12-20 09:14
New changeset 20b52be99b5d by Antoine Pitrou in branch 'default':
Issue #13634: Add support for querying and disabling SSL compression.
http://hg.python.org/cpython/rev/20b52be99b5d
msg149907 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-12-20 09:19
Now committed in 3.3.
History
Date User Action Args
2011-12-20 09:19:08pitrousetstatus: open -> closed
resolution: fixed
messages: + msg149907

stage: patch review -> committed/rejected
2011-12-20 09:14:21python-devsetnosy: + python-dev
messages: + msg149906
2011-12-20 01:31:41jceasetnosy: + jcea
2011-12-19 14:48:31pitrousetmessages: + msg149865
2011-12-19 14:47:17pitrousetfiles: + compression.patch
keywords: + patch
messages: + msg149864

stage: needs patch -> patch review
2011-12-19 10:58:04pitrousetversions: - Python 2.6, Python 3.1, Python 2.7, Python 3.2, Python 3.4
nosy: + pitrou

messages: + msg149838

type: enhancement
stage: needs patch
2011-12-19 10:39:58naifcreate