]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: quic: Correctly wait for the completion of handshakes with early data (aws-lc)
authorFrederic Lecaille <flecaille@haproxy.com>
Tue, 23 Jan 2024 10:50:38 +0000 (11:50 +0100)
committerFrederic Lecaille <flecaille@haproxy.com>
Tue, 23 Jan 2024 15:03:29 +0000 (16:03 +0100)
commit5c88b9fcfb4a32b695c66b34fd36ceb10e0182f9
tree7bac9b9699f27e853c7645e8317b4724d6cad1a7
parentfcc825501c03619305e2ab90df58f630b2a3eb95
MINOR: quic: Correctly wait for the completion of handshakes with early data (aws-lc)

This patch impacts only the haproxy builds against aws-lc TLS stack (USE_OPENSSL_AWSLC).

As mentionned by the boringssl documentation, SSL_do_handshake() completes as soon
as ClientHello is processed and server flight sent (from the TLS stack to the
server endpoint I guess). Into QUIC, the completion has as side effect to discard
the Handshake packet number space. If this handshake completion is not deffered,
the Handshake level CRYPTO data will not be sent to the peer (because of the
assotiated packet number space discarding). According to the documentation,
SSL_in_early_data() may be used to do that. If it returns 1, this means that
the handshake is still in progress but has enough progressed to send half-RTT
data.

This patch is required to make the haproxy builds against aws-lc TLS stack support 0-RTT.
src/quic_ssl.c