curl/lib/vtls
Viktor Szakats 4a6fbd5e1d
NTLM: disable if DES support missing from OpenSSL or mbedTLS
Make autotools and cmake detect DES support in OpenSSL and mbedTLS.
Forward feature macros to C and omit NTLM from the feature preview list.
Use the feature macros in source. This ensure that `-V` output matches
the preview.

OpenSSL doesn't support DES when built with `no-des` or `no-deprecated`.
mbedTLS 4.x no longer supports it, and it's possible to disable it in
<4 with `scripts/config.py unset MBEDTLS_DES_C`.

Before this patch this worked for
mbedTLS 4 only, and with a regression for pending PR #16973.

Also:

- drop NTLM feature check from `curl_setup.h` in favour of autotools/
  cmake feature macros. This makes `curl_setup.h` no longer need
  to include an mbedTLS header, which in turn makes tests/server build
  without depending on mbedTLS.
  Fixing, in #16973:
  ```
  In file included from tests/server/first.h:40,
                   from bld/tests/server/servers.c:3:
  lib/curl_setup.h:741:10: fatal error: mbedtls/version.h: No such file or directory
    741 | #include <mbedtls/version.h>
        |          ^~~~~~~~~~~~~~~~~~~
  ```
  Ref: https://github.com/curl/curl/actions/runs/18689537893/job/53291322012?pr=16973
  Ref: #19181 (initial fix idea)
  Follow-up to 3a305831d1 #19077

- move back mbedTLS header include and version check from
  `curl_setup.h` to each source which consumes mbedTLS.

- GHA/http3-linux: drop workaround that disabled NTLM for
  `no-deprecated` OpenSSL builds.
  Follow-up to 006977859d #12384

- curl_ntlm_core: drop pointless macro `CURL_NTLM_NOT_SUPPORTED`.
  Follow-up to 006977859d #12384

Closes #19206
2025-10-24 12:12:20 +02:00
..
apple.c apple sectrust: add to features 2025-10-16 10:58:45 +02:00
apple.h apple sectrust: add to features 2025-10-16 10:58:45 +02:00
cipher_suite.c lib: stop overriding system printf symbols 2025-10-06 20:57:59 +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 re-handshake comments 2025-10-22 11:40:00 +02:00
gtls.h ssl: support Apple SecTrust configurations 2025-10-03 12:02:23 +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 build: avoid overriding system symbols for fopen functions 2025-09-30 01:10:36 +02:00
keylog.h spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
mbedtls.c NTLM: disable if DES support missing from OpenSSL or mbedTLS 2025-10-24 12:12:20 +02:00
mbedtls.h lib: include files using known path 2025-04-08 17:00:00 +02:00
mbedtls_threadlock.c lib: stop overriding system printf symbols 2025-10-06 20:57:59 +02:00
mbedtls_threadlock.h lib: include files using known path 2025-04-08 17:00:00 +02:00
openssl.c vtls: remove call to PKCS12_PBE_add() 2025-10-23 14:13:26 +02:00
openssl.h ssl: support Apple SecTrust configurations 2025-10-03 12:02:23 +02:00
rustls.c rustls: exit on error 2025-10-19 23:47:47 +02:00
rustls.h lib: include files using known path 2025-04-08 17:00:00 +02:00
schannel.c schannel: replace a run-time condition with an assert 2025-10-23 22:52:02 +02:00
schannel.h openssl: BoringSSL / AWS-LC tidy-ups 2025-08-24 00:30:06 +02:00
schannel_int.h windows: stop passing unused, optional argument for Win9x compatibility 2025-09-20 02:27:07 +02:00
schannel_verify.c schannel_verify: do not call infof with an appended \n 2025-10-18 22:15:26 +02:00
vtls.c vtls: unify the error handling in ssl_cf_connect(). 2025-10-23 08:23:44 +02:00
vtls.h tidy-up: whitespace 2025-07-11 13:32:54 +02:00
vtls_int.h vtls_int.h: clarify data_pending 2025-09-21 09:43:28 +02:00
vtls_scache.c lib: stop overriding system printf symbols 2025-10-06 20:57:59 +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: clear variable to avoid uninitialized use 2025-10-19 11:08:14 +02:00
wolfssl.h GHA/checksrc: expand spellcheck, fix issues found 2025-07-21 16:09:01 +02:00
x509asn1.c lib: stop overriding system printf symbols 2025-10-06 20:57:59 +02:00
x509asn1.h build: address some -Weverything warnings, update picky warnings 2025-09-20 10:16:15 +02:00