Merge pull request #2236 from andresag01/iotssl-2156-deprecate-sslv3

Deprecate SSLv2 parsing and SSLv3
This commit is contained in:
Janos Follath 2020-02-03 15:11:33 +00:00 committed by GitHub
commit 2fdb1af18c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 13 deletions

View File

@ -2,6 +2,11 @@ mbed TLS ChangeLog (Sorted per branch, date)
= mbed TLS X.X.X branch released XXXX-XX-XX = mbed TLS X.X.X branch released XXXX-XX-XX
New deprecations
* Deprecate MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO that enables parsing
SSLv2 ClientHello messages.
* Deprecate MBEDTLS_SSL_PROTO_SSL3 that enables support for SSLv3.
Bugfix Bugfix
* Allow loading symlinked certificates. Fixes #3005. Reported and fixed * Allow loading symlinked certificates. Fixes #3005. Reported and fixed
by Jonathan Bennett <JBennett@incomsystems.biz> via #3008. by Jonathan Bennett <JBennett@incomsystems.biz> via #3008.

View File

@ -774,6 +774,22 @@
#error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously" #error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously"
#endif /* (MBEDTLS_HAVE_INT32 || MBEDTLS_HAVE_INT64) && MBEDTLS_HAVE_ASM */ #endif /* (MBEDTLS_HAVE_INT32 || MBEDTLS_HAVE_INT64) && MBEDTLS_HAVE_ASM */
#if defined(MBEDTLS_SSL_PROTO_SSL3)
#if defined(MBEDTLS_DEPRECATED_REMOVED)
#error "MBEDTLS_SSL_PROTO_SSL3 is deprecated and will be removed in a future version of Mbed TLS"
#elif defined(MBEDTLS_DEPRECATED_WARNING)
#warning "MBEDTLS_SSL_PROTO_SSL3 is deprecated and will be removed in a future version of Mbed TLS"
#endif
#endif /* MBEDTLS_SSL_PROTO_SSL3 */
#if defined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO)
#if defined(MBEDTLS_DEPRECATED_REMOVED)
#error "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO is deprecated and will be removed in a future version of Mbed TLS"
#elif defined(MBEDTLS_DEPRECATED_WARNING)
#warning "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO is deprecated and will be removed in a future version of Mbed TLS"
#endif
#endif /* MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO */
/* /*
* Avoid warning from -pedantic. This is a convenient place for this * Avoid warning from -pedantic. This is a convenient place for this
* workaround since this is included by every single file before the * workaround since this is included by every single file before the

View File

@ -233,27 +233,27 @@
/** /**
* \def MBEDTLS_DEPRECATED_WARNING * \def MBEDTLS_DEPRECATED_WARNING
* *
* Mark deprecated functions so that they generate a warning if used. * Mark deprecated functions and features so that they generate a warning if
* Functions deprecated in one version will usually be removed in the next * used. Functionality deprecated in one version will usually be removed in the
* version. You can enable this to help you prepare the transition to a new * next version. You can enable this to help you prepare the transition to a
* major version by making sure your code is not using these functions. * new major version by making sure your code is not using this functionality.
* *
* This only works with GCC and Clang. With other compilers, you may want to * This only works with GCC and Clang. With other compilers, you may want to
* use MBEDTLS_DEPRECATED_REMOVED * use MBEDTLS_DEPRECATED_REMOVED
* *
* Uncomment to get warnings on using deprecated functions. * Uncomment to get warnings on using deprecated functions and features.
*/ */
//#define MBEDTLS_DEPRECATED_WARNING //#define MBEDTLS_DEPRECATED_WARNING
/** /**
* \def MBEDTLS_DEPRECATED_REMOVED * \def MBEDTLS_DEPRECATED_REMOVED
* *
* Remove deprecated functions so that they generate an error if used. * Remove deprecated functions and features so that they generate an error if
* Functions deprecated in one version will usually be removed in the next * used. Functionality deprecated in one version will usually be removed in the
* version. You can enable this to help you prepare the transition to a new * next version. You can enable this to help you prepare the transition to a
* major version by making sure your code is not using these functions. * new major version by making sure your code is not using this functionality.
* *
* Uncomment to get errors on using deprecated functions. * Uncomment to get errors on using deprecated functions and features.
*/ */
//#define MBEDTLS_DEPRECATED_REMOVED //#define MBEDTLS_DEPRECATED_REMOVED
@ -1571,6 +1571,9 @@
* Enable support for receiving and parsing SSLv2 Client Hello messages for the * Enable support for receiving and parsing SSLv2 Client Hello messages for the
* SSL Server module (MBEDTLS_SSL_SRV_C). * SSL Server module (MBEDTLS_SSL_SRV_C).
* *
* \deprecated This option is deprecated and will be removed in a future
* version of Mbed TLS.
*
* Uncomment this macro to enable support for SSLv2 Client Hello messages. * Uncomment this macro to enable support for SSLv2 Client Hello messages.
*/ */
//#define MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO //#define MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
@ -1602,6 +1605,9 @@
* Requires: MBEDTLS_MD5_C * Requires: MBEDTLS_MD5_C
* MBEDTLS_SHA1_C * MBEDTLS_SHA1_C
* *
* \deprecated This option is deprecated and will be removed in a future
* version of Mbed TLS.
*
* Comment this macro to disable support for SSL 3.0 * Comment this macro to disable support for SSL 3.0
*/ */
//#define MBEDTLS_SSL_PROTO_SSL3 //#define MBEDTLS_SSL_PROTO_SSL3

View File

@ -183,6 +183,8 @@ def include_in_full(name):
'MBEDTLS_REMOVE_ARC4_CIPHERSUITES', 'MBEDTLS_REMOVE_ARC4_CIPHERSUITES',
'MBEDTLS_RSA_NO_CRT', 'MBEDTLS_RSA_NO_CRT',
'MBEDTLS_SSL_HW_RECORD_ACCEL', 'MBEDTLS_SSL_HW_RECORD_ACCEL',
'MBEDTLS_SSL_PROTO_SSL3',
'MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO',
'MBEDTLS_TEST_NULL_ENTROPY', 'MBEDTLS_TEST_NULL_ENTROPY',
'MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3', 'MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3',
'MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION', 'MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION',

View File

@ -951,9 +951,6 @@ component_test_no_use_psa_crypto_full_cmake_asan() {
msg "test: compat.sh default (full minus MBEDTLS_USE_PSA_CRYPTO)" msg "test: compat.sh default (full minus MBEDTLS_USE_PSA_CRYPTO)"
if_build_succeeded tests/compat.sh if_build_succeeded tests/compat.sh
msg "test: compat.sh ssl3 (full minus MBEDTLS_USE_PSA_CRYPTO)"
if_build_succeeded env OPENSSL_CMD="$OPENSSL_LEGACY" tests/compat.sh -m 'ssl3'
msg "test: compat.sh RC4, DES & NULL (full minus MBEDTLS_USE_PSA_CRYPTO)" msg "test: compat.sh RC4, DES & NULL (full minus MBEDTLS_USE_PSA_CRYPTO)"
if_build_succeeded env OPENSSL_CMD="$OPENSSL_LEGACY" GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -e '3DES\|DES-CBC3' -f 'NULL\|DES\|RC4\|ARCFOUR' if_build_succeeded env OPENSSL_CMD="$OPENSSL_LEGACY" GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -e '3DES\|DES-CBC3' -f 'NULL\|DES\|RC4\|ARCFOUR'