69ac637fbb
Fixed an authentication bypass issue in SSL/TLS. When the TLS authentication mode was set to 'optional', mbedtls_ssl_get_verify_result() would incorrectly return 0 when the peer's X.509 certificate chain had more than MBEDTLS_X509_MAX_INTERMEDIATE_CA intermediates (default: 8), even when it was not trusted. This could be triggered remotely on both the client and server side. (Note, with the authentication mode set by mbedtls_ssl_conf_authmode()to be 'required' (the default), the handshake was correctly aborted). Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> Tested-by: Magnus Kroken <mkroken@gmail.com>
271 lines
6.3 KiB
Diff
271 lines
6.3 KiB
Diff
--- a/include/mbedtls/config.h
|
|
+++ b/include/mbedtls/config.h
|
|
@@ -220,7 +220,7 @@
|
|
*
|
|
* Uncomment to get errors on using deprecated functions.
|
|
*/
|
|
-//#define MBEDTLS_DEPRECATED_REMOVED
|
|
+#define MBEDTLS_DEPRECATED_REMOVED
|
|
|
|
/* \} name SECTION: System support */
|
|
|
|
@@ -539,17 +539,17 @@
|
|
*
|
|
* Comment macros to disable the curve and functions for it
|
|
*/
|
|
-#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
|
-#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
|
|
-#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
|
-#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
|
|
-#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
|
-#define MBEDTLS_ECP_DP_BP256R1_ENABLED
|
|
-#define MBEDTLS_ECP_DP_BP384R1_ENABLED
|
|
-#define MBEDTLS_ECP_DP_BP512R1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_BP256R1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_BP384R1_ENABLED
|
|
+//#define MBEDTLS_ECP_DP_BP512R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
|
|
|
|
/**
|
|
@@ -574,8 +574,8 @@
|
|
* Requires: MBEDTLS_HMAC_DRBG_C
|
|
*
|
|
* Comment this macro to disable deterministic ECDSA.
|
|
- */
|
|
#define MBEDTLS_ECDSA_DETERMINISTIC
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
|
|
@@ -621,7 +621,7 @@
|
|
* MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
|
|
* MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA
|
|
*/
|
|
-#define MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
|
|
+//#define MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
|
|
|
|
/**
|
|
* \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
|
@@ -640,8 +640,8 @@
|
|
* MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
|
|
* MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
|
|
* MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
|
|
- */
|
|
#define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
|
|
@@ -666,7 +666,7 @@
|
|
* MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
|
|
* MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
|
|
*/
|
|
-#define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
|
|
+//#define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
|
|
|
|
/**
|
|
* \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
|
|
@@ -793,7 +793,7 @@
|
|
* MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
|
|
* MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
|
|
*/
|
|
-#define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
|
|
+//#define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
|
|
|
|
/**
|
|
* \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
|
|
@@ -817,7 +817,7 @@
|
|
* MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
|
|
* MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
|
|
*/
|
|
-#define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
|
|
+//#define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
|
|
|
|
/**
|
|
* \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
|
|
@@ -921,7 +921,7 @@
|
|
* This option is only useful if both MBEDTLS_SHA256_C and
|
|
* MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used.
|
|
*/
|
|
-//#define MBEDTLS_ENTROPY_FORCE_SHA256
|
|
+#define MBEDTLS_ENTROPY_FORCE_SHA256
|
|
|
|
/**
|
|
* \def MBEDTLS_ENTROPY_NV_SEED
|
|
@@ -1015,14 +1015,14 @@
|
|
* Uncomment this macro to disable the use of CRT in RSA.
|
|
*
|
|
*/
|
|
-//#define MBEDTLS_RSA_NO_CRT
|
|
+#define MBEDTLS_RSA_NO_CRT
|
|
|
|
/**
|
|
* \def MBEDTLS_SELF_TEST
|
|
*
|
|
* Enable the checkup functions (*_self_test).
|
|
*/
|
|
-#define MBEDTLS_SELF_TEST
|
|
+//#define MBEDTLS_SELF_TEST
|
|
|
|
/**
|
|
* \def MBEDTLS_SHA256_SMALLER
|
|
@@ -1038,7 +1038,7 @@
|
|
*
|
|
* Uncomment to enable the smaller implementation of SHA256.
|
|
*/
|
|
-//#define MBEDTLS_SHA256_SMALLER
|
|
+#define MBEDTLS_SHA256_SMALLER
|
|
|
|
/**
|
|
* \def MBEDTLS_SSL_ALL_ALERT_MESSAGES
|
|
@@ -1157,8 +1157,8 @@
|
|
* misuse/misunderstand.
|
|
*
|
|
* Comment this to disable support for renegotiation.
|
|
- */
|
|
#define MBEDTLS_SSL_RENEGOTIATION
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
|
|
@@ -1332,8 +1332,8 @@
|
|
* callbacks are provided by MBEDTLS_SSL_TICKET_C.
|
|
*
|
|
* Comment this macro to disable support for SSL session tickets
|
|
- */
|
|
#define MBEDTLS_SSL_SESSION_TICKETS
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_SSL_EXPORT_KEYS
|
|
@@ -1363,7 +1363,7 @@
|
|
*
|
|
* Comment this macro to disable support for truncated HMAC in SSL
|
|
*/
|
|
-#define MBEDTLS_SSL_TRUNCATED_HMAC
|
|
+//#define MBEDTLS_SSL_TRUNCATED_HMAC
|
|
|
|
/**
|
|
* \def MBEDTLS_THREADING_ALT
|
|
@@ -1397,8 +1397,8 @@
|
|
* Requires: MBEDTLS_VERSION_C
|
|
*
|
|
* Comment this to disable run-time checking and save ROM space
|
|
- */
|
|
#define MBEDTLS_VERSION_FEATURES
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
|
|
@@ -1719,7 +1719,7 @@
|
|
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
|
|
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
|
|
*/
|
|
-#define MBEDTLS_CAMELLIA_C
|
|
+//#define MBEDTLS_CAMELLIA_C
|
|
|
|
/**
|
|
* \def MBEDTLS_CCM_C
|
|
@@ -1733,7 +1733,7 @@
|
|
* This module enables the AES-CCM ciphersuites, if other requisites are
|
|
* enabled as well.
|
|
*/
|
|
-#define MBEDTLS_CCM_C
|
|
+//#define MBEDTLS_CCM_C
|
|
|
|
/**
|
|
* \def MBEDTLS_CERTS_C
|
|
@@ -1745,7 +1745,7 @@
|
|
*
|
|
* This module is used for testing (ssl_client/server).
|
|
*/
|
|
-#define MBEDTLS_CERTS_C
|
|
+//#define MBEDTLS_CERTS_C
|
|
|
|
/**
|
|
* \def MBEDTLS_CIPHER_C
|
|
@@ -1798,7 +1798,7 @@
|
|
*
|
|
* This module provides debugging functions.
|
|
*/
|
|
-#define MBEDTLS_DEBUG_C
|
|
+//#define MBEDTLS_DEBUG_C
|
|
|
|
/**
|
|
* \def MBEDTLS_DES_C
|
|
@@ -1823,8 +1823,8 @@
|
|
* MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA
|
|
*
|
|
* PEM_PARSE uses DES/3DES for decrypting encrypted keys.
|
|
- */
|
|
#define MBEDTLS_DES_C
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_DHM_C
|
|
@@ -1978,8 +1978,8 @@
|
|
* Requires: MBEDTLS_MD_C
|
|
*
|
|
* Uncomment to enable the HMAC_DRBG random number geerator.
|
|
- */
|
|
#define MBEDTLS_HMAC_DRBG_C
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_MD_C
|
|
@@ -2256,7 +2256,7 @@
|
|
* Caller: library/md.c
|
|
*
|
|
*/
|
|
-#define MBEDTLS_RIPEMD160_C
|
|
+//#define MBEDTLS_RIPEMD160_C
|
|
|
|
/**
|
|
* \def MBEDTLS_RSA_C
|
|
@@ -2334,8 +2334,8 @@
|
|
* Caller:
|
|
*
|
|
* Requires: MBEDTLS_SSL_CACHE_C
|
|
- */
|
|
#define MBEDTLS_SSL_CACHE_C
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_SSL_COOKIE_C
|
|
@@ -2356,8 +2356,8 @@
|
|
* Caller:
|
|
*
|
|
* Requires: MBEDTLS_CIPHER_C
|
|
- */
|
|
#define MBEDTLS_SSL_TICKET_C
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_SSL_CLI_C
|
|
@@ -2456,8 +2456,8 @@
|
|
* Module: library/version.c
|
|
*
|
|
* This module provides run-time version information.
|
|
- */
|
|
#define MBEDTLS_VERSION_C
|
|
+ */
|
|
|
|
/**
|
|
* \def MBEDTLS_X509_USE_C
|
|
@@ -2567,7 +2567,7 @@
|
|
* Module: library/xtea.c
|
|
* Caller:
|
|
*/
|
|
-#define MBEDTLS_XTEA_C
|
|
+//#define MBEDTLS_XTEA_C
|
|
|
|
/* \} name SECTION: mbed TLS modules */
|
|
|