 329f6a96b7
			
		
	
	329f6a96b7
	
	
	
		
			
			Fixes some security issues (no remote exploits), and introduces some changes. See release notes for details: https://tls.mbed.org/tech-updates/releases/mbedtls-2.5.1-2.1.8-and-1.3.20-released * Fixes an unlimited overread of heap-based buffers in mbedtls_ssl_read() * Adds exponent blinding to RSA private operations * Wipes stack buffers in RSA private key operations (rsa_rsaes_pkcs1_v15_decrypt(), rsa_rsaes_oaep_decrypt()) * Removes SHA-1 and RIPEMD-160 from the default hash algorithms for certificate verification. * Fixes offset in FALLBACK_SCSV parsing that caused TLS server to fail to detect it sometimes. * Tighten parsing of RSA PKCS#1 v1.5 signatures, to avoid a potential Bleichenbacher/BERserk-style attack. Signed-off-by: Magnus Kroken <mkroken@gmail.com>
		
			
				
	
	
		
			272 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			272 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/include/mbedtls/config.h
 | |
| +++ b/include/mbedtls/config.h
 | |
| @@ -191,7 +191,7 @@
 | |
|   *
 | |
|   * Uncomment to get errors on using deprecated functions.
 | |
|   */
 | |
| -//#define MBEDTLS_DEPRECATED_REMOVED
 | |
| +#define MBEDTLS_DEPRECATED_REMOVED
 | |
|  
 | |
|  /* \} name SECTION: System support */
 | |
|  
 | |
| @@ -504,17 +504,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
 | |
|  
 | |
|  /**
 | |
| @@ -539,8 +539,8 @@
 | |
|   * Requires: MBEDTLS_HMAC_DRBG_C
 | |
|   *
 | |
|   * Comment this macro to disable deterministic ECDSA.
 | |
| - */
 | |
|  #define MBEDTLS_ECDSA_DETERMINISTIC
 | |
| + */
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
 | |
| @@ -586,7 +586,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
 | |
| @@ -605,8 +605,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
 | |
| @@ -631,7 +631,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
 | |
| @@ -758,7 +758,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
 | |
| @@ -782,7 +782,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
 | |
| @@ -886,7 +886,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
 | |
| @@ -980,14 +980,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
 | |
| @@ -1003,7 +1003,7 @@
 | |
|   *
 | |
|   * Uncomment to enable the smaller implementation of SHA256.
 | |
|   */
 | |
| -//#define MBEDTLS_SHA256_SMALLER
 | |
| +#define MBEDTLS_SHA256_SMALLER
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES
 | |
| @@ -1122,8 +1122,8 @@
 | |
|   * misuse/misunderstand.
 | |
|   *
 | |
|   * Comment this to disable support for renegotiation.
 | |
| - */
 | |
|  #define MBEDTLS_SSL_RENEGOTIATION
 | |
| + */
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
 | |
| @@ -1297,8 +1297,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
 | |
| @@ -1328,7 +1328,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
 | |
| @@ -1362,8 +1362,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
 | |
| @@ -1684,7 +1684,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
 | |
| @@ -1698,7 +1698,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
 | |
| @@ -1710,7 +1710,7 @@
 | |
|   *
 | |
|   * This module is used for testing (ssl_client/server).
 | |
|   */
 | |
| -#define MBEDTLS_CERTS_C
 | |
| +//#define MBEDTLS_CERTS_C
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_CIPHER_C
 | |
| @@ -1763,7 +1763,7 @@
 | |
|   *
 | |
|   * This module provides debugging functions.
 | |
|   */
 | |
| -#define MBEDTLS_DEBUG_C
 | |
| +//#define MBEDTLS_DEBUG_C
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_DES_C
 | |
| @@ -1788,8 +1788,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
 | |
| @@ -1943,8 +1943,8 @@
 | |
|   * Requires: MBEDTLS_MD_C
 | |
|   *
 | |
|   * Uncomment to enable the HMAC_DRBG random number geerator.
 | |
| - */
 | |
|  #define MBEDTLS_HMAC_DRBG_C
 | |
| + */
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_MD_C
 | |
| @@ -2221,7 +2221,7 @@
 | |
|   * Caller:  library/md.c
 | |
|   *
 | |
|   */
 | |
| -#define MBEDTLS_RIPEMD160_C
 | |
| +//#define MBEDTLS_RIPEMD160_C
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_RSA_C
 | |
| @@ -2299,8 +2299,8 @@
 | |
|   * Caller:
 | |
|   *
 | |
|   * Requires: MBEDTLS_SSL_CACHE_C
 | |
| - */
 | |
|  #define MBEDTLS_SSL_CACHE_C
 | |
| + */
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_SSL_COOKIE_C
 | |
| @@ -2321,8 +2321,8 @@
 | |
|   * Caller:
 | |
|   *
 | |
|   * Requires: MBEDTLS_CIPHER_C
 | |
| - */
 | |
|  #define MBEDTLS_SSL_TICKET_C
 | |
| + */
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_SSL_CLI_C
 | |
| @@ -2421,8 +2421,8 @@
 | |
|   * Module:  library/version.c
 | |
|   *
 | |
|   * This module provides run-time version information.
 | |
| - */
 | |
|  #define MBEDTLS_VERSION_C
 | |
| + */
 | |
|  
 | |
|  /**
 | |
|   * \def MBEDTLS_X509_USE_C
 | |
| @@ -2532,7 +2532,7 @@
 | |
|   * Module:  library/xtea.c
 | |
|   * Caller:
 | |
|   */
 | |
| -#define MBEDTLS_XTEA_C
 | |
| +//#define MBEDTLS_XTEA_C
 | |
|  
 | |
|  /* \} name SECTION: mbed TLS modules */
 | |
|  
 |