mirror of https://github.com/wolfSSL/wolfssl.git
The option set ENABLED_TLSV12 to no, which the summary printed and a couple of derived settings read, but nothing defined WOLFSSL_NO_TLS12, so every line of the TLS 1.2 implementation was still compiled and still reachable. The one place configure.ac adds that define sits in the FIPS lean-aesgcm bundle and is guarded by "TLS 1.2 is still on and the user did not ask for it", which is false exactly when --disable-tlsv12 was passed. Only the CMake build honoured the switch. Define it once the bundles have had their say, so --enable-tinytls13 and the other bundles that turn the version off get it as well. The case guard keeps the FIPS bundles from adding it twice. Add three os-check entries for the configurations this makes reachable: --disable-tlsv12 on its own, the same with DTLS 1.3, and the same with the sniffer. The one existing entry that passes the option, dtls13-client-minimal, already defined WOLFSSL_NO_TLS12 through CPPFLAGS and strips most of the crypto along with it, so it never covered the option's own effect. Compiling the version out reaches code that assumed it was always there. ProcessCSR_ex parses one certificate_status message and TLS 1.3 reads the chain's per-certificate entries through it, so it moves out of the version guard; only its TLS 1.2 wrapper stays behind. BuildMessage's connection-ID size is read by the TLS 1.2 record path alone, so it is declared with it. The tests and examples that hard-code a TLS 1.2 method, or a helper that only those call, are skipped without the version. CMake rejected three of the four combinations configure does but let WOLFSSL_OLD_TLS=yes through, defined NO_OLD_TLS behind the user's back and reported the option as still on. Reject it there too, and drop the NO_OLD_TLS the block used to add, which the old-TLS option itself now always supplies. |
||
|---|---|---|
| .. | ||
| echoclient.c | ||
| echoclient.h | ||
| echoclient.sln | ||
| echoclient.vcproj | ||
| echoclient.vcxproj | ||
| include.am | ||
| quit | ||