tls: CURLINFO_TLS_SSL_PTR testing

Add tests of CURLINFO_TLS_SSL_PTR and its returned value in test client
'hx-download'. Use obtained pointer to look up the negotiated TLS
version.

Update manpage of CURLINFO_TLS_SSL_PTR to also describe the behaviour of
wolfSSL similar to OpenSSL. Fix the wolfSSl implementation for TCP to
behave like that. Update the QUIC queries.

Fix rustls `get_internals()` to return the rustls_connection* and not
the address of the pointer.

Assisted-by: Viktor Szakats
Closes #18066
This commit is contained in:
Stefan Eissing 2025-07-23 11:21:36 +02:00 committed by Daniel Stenberg
parent af69c9d636
commit ba9ddb9357
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
7 changed files with 121 additions and 9 deletions

View file

@ -36,8 +36,11 @@ was added in 7.48.0. The only reason you would use this option instead is if
you could be using a version of libcurl earlier than 7.48.0.
This option is exactly the same as CURLINFO_TLS_SSL_PTR(3) except in the
case of OpenSSL. If the session *backend* is CURLSSLBACKEND_OPENSSL the
session *internals* pointer varies depending on the option:
case of OpenSSL and wolfSSL. If the session *backend* is
CURLSSLBACKEND_OPENSSL the session *internals* pointer varies depending
on the option:
## OpenSSL:
CURLINFO_TLS_SESSION(3) OpenSSL session *internals* is **SSL_CTX ***.
@ -48,6 +51,17 @@ function *SSL_get_SSL_CTX(3)*. Therefore unless you need compatibility
with older versions of libcurl use CURLINFO_TLS_SSL_PTR(3). Refer to
that document for more information.
## wolfSSL
CURLINFO_TLS_SESSION(3) wolfSSL session *internals* is **WOLFSSL_CTX ***.
CURLINFO_TLS_SSL_PTR(3) wolfSSL session *internals* is **WOLFSSL ***.
You can obtain an **WOLFSSL_CTX** pointer from an SSL pointer using wolfSSL
function *wolfSSL_get_SSL_CTX(3)*. Therefore unless you need compatibility
with older versions of libcurl use CURLINFO_TLS_SSL_PTR(3). Refer to
that document for more information.
# %PROTOCOLS%
# EXAMPLE