[New-bugs-announce] [issue37048] ssl module: QUIC support for HTTP/3

Christian Heimes report at bugs.python.org
Sat May 25 15:44:14 EDT 2019


New submission from Christian Heimes <lists at cheimes.de>:

This ticket collects information for QUIC [1][2] support and tracks, which APIs have to be added to Python in order to implement a QUIC protocol stack on top of Python's ssl and socket module. QUIC is a "UDP-Based Multiplexed and Secure Transport" protocol. It will replace TCP and TLS record layer as transport channels in the upcoming HTTP/3 [3][4] standard. Although it's UDP, QUIC does *not* use DTLS (Datagram TLS, vulgo TLS over UDP).

As far as I understand QUIC at the moment, the ssl module has to gain two additional features:

1. A way to send/receive TLS messages that are not wrapped in the TLS record layer.
2. A key callback that gets called whenever key material is exchanged during handshake or updated later on.

OpenSSL does not implement the necessary APIs, yet [5]. Tatsuhiro Tsujikawa's experimental OpenSSL fork [6] implements (1) as a SSL option SSL_MODE_QUIC_HACK and (2) as a callback that acts on five different key types.

(Disclaimer: My current understanding of QUIC is very limited.)

[1] https://tools.ietf.org/html/draft-ietf-quic-transport-20
[2] https://en.wikipedia.org/wiki/QUIC
[2] https://http3-explained.haxx.se/en/
[4] https://en.wikipedia.org/wiki/HTTP/3
[5] https://daniel.haxx.se/blog/2019/01/21/quic-and-missing-apis/
[6] https://github.com/tatsuhiro-t/openssl/commits/quic-draft-17

----------
assignee: christian.heimes
components: SSL
messages: 343505
nosy: alex, christian.heimes, dstufft, janssen, njs
priority: normal
severity: normal
status: open
title: ssl module: QUIC support for HTTP/3
type: enhancement
versions: Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37048>
_______________________________________


More information about the New-bugs-announce mailing list