curl/lib/vtls
Jay Satiro b6a5f67259 schannel: improve handshake procedure
- During handshake, do not require reading more data if unprocessed
  encrypted data that may be a complete TLS record is already available.

- During handshake, check that the socket is writeable before processing
  encrypted data that may require an immediate reply to the server.

These two fixes are for issues that were found during renegotiation
testing but could affect any handshake.

Prior to this change it was possible in some abnormal network conditions
for the Schannel TLS handshake procedure to erroneously wait or error.

Ref: https://github.com/curl/curl/pull/18125

Closes https://github.com/curl/curl/pull/18323
2025-08-22 01:50:28 -04:00
..
.checksrc checksrc: reduce exceptions, apply again to curlx 2025-06-27 17:33:35 +02:00
cipher_suite.c tidy-up: prefer ifdef/ifndef for single checks 2025-07-27 22:35:17 +02:00
cipher_suite.h TLS: remove support for Secure Transport and BearSSL 2025-06-11 07:54:19 +02:00
gtls.c gnutls: fix building with older supported GnuTLS versions 2025-08-21 18:04:25 +02:00
gtls.h http/3: report handshake with version and cipher as for TCP connections 2025-07-14 14:08:32 +02:00
hostcheck.c tidy-up: more whitespace/indent, comments 2025-07-25 11:47:51 +02:00
hostcheck.h openssl: some small cleanups 2025-07-18 00:40:26 +02:00
keylog.c urlapi: use uppercase hex encoding 2025-06-25 11:44:13 +02:00
keylog.h spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
mbedtls.c mbedtls: check for feature macros instead of version 2025-08-14 12:25:14 +02:00
mbedtls.h lib: include files using known path 2025-04-08 17:00:00 +02:00
mbedtls_threadlock.c lib: include files using known path 2025-04-08 17:00:00 +02:00
mbedtls_threadlock.h lib: include files using known path 2025-04-08 17:00:00 +02:00
openssl.c openssl: auto-pause on verify callback retry 2025-08-15 13:50:28 +02:00
openssl.h openssl: drop redundant version check 2025-08-21 13:11:32 +02:00
rustls.c tls: CURLINFO_TLS_SSL_PTR testing 2025-08-01 09:37:36 +02:00
rustls.h lib: include files using known path 2025-04-08 17:00:00 +02:00
schannel.c schannel: improve handshake procedure 2025-08-22 01:50:28 -04:00
schannel.h tidy-up: prefer ifdef/ifndef for single checks 2025-07-27 22:35:17 +02:00
schannel_int.h schannel: not supported with UWP, drop redundant code 2025-07-31 20:05:32 +02:00
schannel_verify.c windows: document toolchain support for CERT_NAME_SEARCH_ALL_NAMES_FLAG 2025-07-31 20:43:21 +02:00
vtls.c vtls: set seen http version on successful ALPN 2025-08-05 16:01:39 +02:00
vtls.h tidy-up: whitespace 2025-07-11 13:32:54 +02:00
vtls_int.h lib: replace getsock() logic with pollsets 2025-08-04 23:43:13 +02:00
vtls_scache.c tidy-up: whitespace 2025-07-11 13:32:54 +02:00
vtls_scache.h lib: replace scache no-op macros with #ifdef 2025-06-27 17:33:34 +02:00
vtls_spack.c build: fix build errors/warnings in rare configurations 2025-07-23 22:17:03 +02:00
vtls_spack.h build: fix build errors/warnings in rare configurations 2025-07-23 22:17:03 +02:00
wolfssl.c wolfssl: rename ML-KEM hybrids to match IETF draft 2025-08-05 08:58:19 +02:00
wolfssl.h GHA/checksrc: expand spellcheck, fix issues found 2025-07-21 16:09:01 +02:00
x509asn1.c misc: fix typos 2025-07-12 08:59:44 +02:00
x509asn1.h TLS: remove support for Secure Transport and BearSSL 2025-06-11 07:54:19 +02:00