New submission from Rémi Cardona <remi2...@free.fr>:

cpython has had TLS session support since 3.6, using the SSLContext.wrap_* 
methods. Unfortunately, this support is not available when using asyncio's 
create_connection.

While I've managed to monkeypatch asyncio.sslproto._SSLPipe from my own code 
(it's a filthy hack but it's short and it gets the job done) running on 3.6.6, 
I feel this should be properly supported out of the box.

A patch is ready (tests work), a github PR will be created shortly.

Notes in no particular order:
- argument and attribute naming is all over the place, but I could not decide 
between "sslsession" (matching "sslcontext") and "ssl_session" (matching 
"ssl_handshake_timeout") so I just picked one
- tested on jessie (with openssl 1.0.2 from jessie-backports) and on gentoo
- the new asyncio tests added in the patch are adapted from test_ssl.py's 
test_session, with the server-side stats left out. I felt they were not useful 
if one assumes that the hard work is done by SSLContext.wrap_*.
- I did not reuse test_asyncio.utils.run_test_server which AIUI creates a new 
server-side context for each incoming connection, thus breaking sessions 
completely

TIA for considering this bug and patch

----------
components: asyncio
messages: 327638
nosy: RemiCardona, asvetlov, yselivanov
priority: normal
severity: normal
status: open
title: add support for tls/ssl sessions in asyncio
type: enhancement

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34971>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to