wolfssl: tls early data support

Enable TLS Early Data for wolfSSL:

- merge WOLFSSL_CTX and WOLFSSL setup from ngtcp2 with the general
  implemenation in wolfssl.c
- enable for QUIC via ngtcp2
- give Curl_vquic_tls_init() a `struct alpn_spec` like used for the TCP
  case. Adapt gnutls and other users.
- enable pytest test cases for early data with wolfSSL

and while this messes up wolfssl.c anyway, do

- rename all struct/functions with prefix 'wolfssl_' to 'wssl_' to not
  pollute that name prefix
- rename `ctx/handle` to `ssl_ctx/ssl`, as used in openssl case

Closes #16167
This commit is contained in:
Stefan Eissing 2025-02-04 15:24:00 +01:00 committed by Daniel Stenberg
parent efec626ebb
commit edd573d980
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
18 changed files with 1117 additions and 804 deletions

View file

@ -89,11 +89,11 @@ could be a privacy violation and unexpected.
## CURLSSLOPT_EARLYDATA
Tell libcurl to try sending application data as TLS1.3 early data. This option
is only supported for GnuTLS. This option works on a best effort basis,
is supported for GnuTLS and wolfSSL. This option works on a best effort basis,
in cases when it wasn't possible to send early data the request is resent
normally post-handshake.
This option does not work when using QUIC.
(Added in 8.11.0)
(Added in 8.11.0 for GnuTLS and 8.13.0 for wolfSSL)
# DEFAULT