Provide SSL_QUIC_METHOD.
authorjsing <jsing@openbsd.org>
Sun, 21 Aug 2022 19:32:38 +0000 (19:32 +0000)
committerjsing <jsing@openbsd.org>
Sun, 21 Aug 2022 19:32:38 +0000 (19:32 +0000)
commit7ef96453f18b482e76e5c1af640b10d1eac54c2e
treedf7f26605e1a792e84b3ec6661bfebc209167bea
parentcfa19c4e2fc29dab0cf73300790f19e4ccf0789c
Provide SSL_QUIC_METHOD.

This provides SSL_QUIC_METHOD (aka ssl_quic_method_st), which allows for
QUIC callback hooks to be passed to an SSL_CTX or SSL. This is largely
ported/adapted from BoringSSL.

It is worth noting that this struct is not opaque and the original
interface exposed by BoringSSL differs to the one they now use. The
original interface was copied by quictls and it appears that this API
will not be updated to match BoringSSL.

To make things even more challenging, at least one consumer does not use
named initialisers, making code completely dependent on the order in
which the function pointers are defined as struct members. In order to
try to support both variants, the set_read_secret/set_write_secret
functions are included, however they have to go at the end.

ok tb@
lib/libssl/ssl.h
lib/libssl/ssl_lib.c
lib/libssl/ssl_locl.h