From 1447924c9581e11c296b1ca8798e1253ee22d2fd Mon Sep 17 00:00:00 2001 From: Stijn Segers Date: Sat, 22 Dec 2018 11:16:17 +0100 Subject: [PATCH] mbedtls: update to 2.14.1 for 18.06 Updates mbedtls to 2.14.1. This builds on the previous master commit 7849f74117ce83e4cfcd1448a22cc05dbf9b3486. Fixes in 2.13.0: * Fixed a security issue in the X.509 module which could lead to a buffer overread during certificate extensions parsing. * Several bugfixes. * Improvements for better support for DTLS on low-bandwidth, high latency networks with high packet loss. Fixes in 2.14.1: * CVE-2018-19608: Local timing attack on RSA decryption Includes master commit 9e7c4702a1f4e49113d10bc736f50e8a06bdb8ba 'mbedtls: fix compilation on ARM < 6'. Signed-off-by: Daniel Engberg [Update to 2.14.1] Signed-off-by: Hauke Mehrtens [Adapted and squashed for 18.06.1+] Signed-off-by: Stijn Segers Acked-by: Hauke Mehrtens --- package/libs/mbedtls/Makefile | 4 +- package/libs/mbedtls/patches/200-config.patch | 48 +++++++++---------- ...optimized-MULADDC-code-only-on-ARM-6.patch | 27 +++++++++++ .../patches/300-soversion-compatibility.patch | 6 +-- 4 files changed, 56 insertions(+), 29 deletions(-) create mode 100644 package/libs/mbedtls/patches/300-bn_mul.h-Use-optimized-MULADDC-code-only-on-ARM-6.patch diff --git a/package/libs/mbedtls/Makefile b/package/libs/mbedtls/Makefile index 659bf59d88..e265cac575 100644 --- a/package/libs/mbedtls/Makefile +++ b/package/libs/mbedtls/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mbedtls -PKG_VERSION:=2.12.0 +PKG_VERSION:=2.14.1 PKG_RELEASE:=1 PKG_USE_MIPS16:=0 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-gpl.tgz PKG_SOURCE_URL:=https://tls.mbed.org/download/ -PKG_HASH:=8661d19a896a5a7a232ed01ac7f05cf0ec3514798f18076c2c9ef965fbeb5a28 +PKG_HASH:=baa1121952786f5b2c66c52226a8ca0e05126de920d1756266551df677915b7e PKG_BUILD_PARALLEL:=1 PKG_LICENSE:=GPL-2.0+ diff --git a/package/libs/mbedtls/patches/200-config.patch b/package/libs/mbedtls/patches/200-config.patch index ab16d4726c..a9cd62fc39 100644 --- a/package/libs/mbedtls/patches/200-config.patch +++ b/package/libs/mbedtls/patches/200-config.patch @@ -1,6 +1,6 @@ --- a/include/mbedtls/config.h +++ b/include/mbedtls/config.h -@@ -548,14 +548,14 @@ +@@ -557,14 +557,14 @@ * * Enable Output Feedback mode (OFB) for symmetric ciphers. */ @@ -17,7 +17,7 @@ /** * \def MBEDTLS_CIPHER_NULL_CIPHER -@@ -645,19 +645,19 @@ +@@ -654,19 +654,19 @@ * * Comment macros to disable the curve and functions for it */ @@ -55,7 +55,7 @@ /** * \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED -@@ -735,7 +735,7 @@ +@@ -768,7 +768,7 @@ * See dhm.h for more details. * */ @@ -64,7 +64,7 @@ /** * \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -@@ -755,7 +755,7 @@ +@@ -788,7 +788,7 @@ * MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA * MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA */ @@ -73,7 +73,7 @@ /** * \def MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED -@@ -780,7 +780,7 @@ +@@ -813,7 +813,7 @@ * MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA * MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA */ @@ -82,7 +82,7 @@ /** * \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED -@@ -914,7 +914,7 @@ +@@ -947,7 +947,7 @@ * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 */ @@ -91,7 +91,7 @@ /** * \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED -@@ -938,7 +938,7 @@ +@@ -971,7 +971,7 @@ * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 */ @@ -100,7 +100,7 @@ /** * \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED -@@ -1042,7 +1042,7 @@ +@@ -1075,7 +1075,7 @@ * This option is only useful if both MBEDTLS_SHA256_C and * MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used. */ @@ -109,7 +109,7 @@ /** * \def MBEDTLS_ENTROPY_NV_SEED -@@ -1137,14 +1137,14 @@ +@@ -1170,14 +1170,14 @@ * Uncomment this macro to disable the use of CRT in RSA. * */ @@ -135,7 +135,7 @@ /** * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES -@@ -1298,7 +1298,7 @@ +@@ -1331,7 +1331,7 @@ * configuration of this extension). * */ @@ -144,7 +144,7 @@ /** * \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO -@@ -1473,7 +1473,7 @@ +@@ -1506,7 +1506,7 @@ * * Comment this macro to disable support for SSL session tickets */ @@ -153,7 +153,7 @@ /** * \def MBEDTLS_SSL_EXPORT_KEYS -@@ -1503,7 +1503,7 @@ +@@ -1536,7 +1536,7 @@ * * Comment this macro to disable support for truncated HMAC in SSL */ @@ -162,7 +162,7 @@ /** * \def MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT -@@ -1562,7 +1562,7 @@ +@@ -1595,7 +1595,7 @@ * * Comment this to disable run-time checking and save ROM space */ @@ -171,7 +171,7 @@ /** * \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3 -@@ -1892,7 +1892,7 @@ +@@ -1925,7 +1925,7 @@ * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 */ @@ -180,7 +180,7 @@ /** * \def MBEDTLS_ARIA_C -@@ -1958,7 +1958,7 @@ +@@ -1991,7 +1991,7 @@ * This module enables the AES-CCM ciphersuites, if other requisites are * enabled as well. */ @@ -189,7 +189,7 @@ /** * \def MBEDTLS_CERTS_C -@@ -1970,7 +1970,7 @@ +@@ -2003,7 +2003,7 @@ * * This module is used for testing (ssl_client/server). */ @@ -216,7 +216,7 @@ /** * \def MBEDTLS_CIPHER_C -@@ -2043,7 +2043,7 @@ +@@ -2078,7 +2078,7 @@ * * This module provides debugging functions. */ @@ -225,7 +225,7 @@ /** * \def MBEDTLS_DES_C -@@ -2072,7 +2072,7 @@ +@@ -2107,7 +2107,7 @@ * \warning DES is considered a weak cipher and its use constitutes a * security risk. We recommend considering stronger ciphers instead. */ @@ -234,7 +234,7 @@ /** * \def MBEDTLS_DHM_C -@@ -2235,7 +2235,7 @@ +@@ -2270,7 +2270,7 @@ * This module adds support for the Hashed Message Authentication Code * (HMAC)-based key derivation function (HKDF). */ @@ -252,7 +252,7 @@ /** * \def MBEDTLS_NIST_KW_C -@@ -2545,7 +2545,7 @@ +@@ -2580,7 +2580,7 @@ * * This module enables abstraction of common (libc) functions. */ @@ -270,7 +270,7 @@ /** * \def MBEDTLS_RIPEMD160_C -@@ -2566,7 +2566,7 @@ +@@ -2601,7 +2601,7 @@ * Caller: library/md.c * */ @@ -279,7 +279,7 @@ /** * \def MBEDTLS_RSA_C -@@ -2673,7 +2673,7 @@ +@@ -2708,7 +2708,7 @@ * * Requires: MBEDTLS_CIPHER_C */ @@ -288,7 +288,7 @@ /** * \def MBEDTLS_SSL_CLI_C -@@ -2773,7 +2773,7 @@ +@@ -2808,7 +2808,7 @@ * * This module provides run-time version information. */ @@ -297,7 +297,7 @@ /** * \def MBEDTLS_X509_USE_C -@@ -2883,7 +2883,7 @@ +@@ -2918,7 +2918,7 @@ * Module: library/xtea.c * Caller: */ diff --git a/package/libs/mbedtls/patches/300-bn_mul.h-Use-optimized-MULADDC-code-only-on-ARM-6.patch b/package/libs/mbedtls/patches/300-bn_mul.h-Use-optimized-MULADDC-code-only-on-ARM-6.patch new file mode 100644 index 0000000000..b6c60f0019 --- /dev/null +++ b/package/libs/mbedtls/patches/300-bn_mul.h-Use-optimized-MULADDC-code-only-on-ARM-6.patch @@ -0,0 +1,27 @@ +From 7aff5a70f3580426865b6c86437a3e47546d13f7 Mon Sep 17 00:00:00 2001 +From: Hauke Mehrtens +Date: Sun, 16 Dec 2018 13:02:49 +0100 +Subject: [PATCH] bn_mul.h: Use optimized MULADDC code only on ARM >= 6 + +The optimized code uses umaal which was only introduced with ARMv6 and +is not available on older versions. +This broke compilation with arm926ej-s CPU for me. + +Fixes: 16b1bd89326 ("bn_mul.h: add ARM DSP optimized MULADDC code") +Signed-off-by: Hauke Mehrtens +--- + include/mbedtls/bn_mul.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/include/mbedtls/bn_mul.h ++++ b/include/mbedtls/bn_mul.h +@@ -638,7 +638,8 @@ + "r6", "r7", "r8", "r9", "cc" \ + ); + +-#elif defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1) ++#elif defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1) && \ ++ __TARGET_ARCH_ARM >= 6 + + #define MULADDC_INIT \ + asm( diff --git a/package/libs/mbedtls/patches/300-soversion-compatibility.patch b/package/libs/mbedtls/patches/300-soversion-compatibility.patch index a352b449f1..6445f5e5e0 100644 --- a/package/libs/mbedtls/patches/300-soversion-compatibility.patch +++ b/package/libs/mbedtls/patches/300-soversion-compatibility.patch @@ -4,7 +4,7 @@ if(USE_SHARED_MBEDTLS_LIBRARY) add_library(mbedcrypto SHARED ${src_crypto}) -- set_target_properties(mbedcrypto PROPERTIES VERSION 2.12.0 SOVERSION 3) +- set_target_properties(mbedcrypto PROPERTIES VERSION 2.14.1 SOVERSION 3) + set_target_properties(mbedcrypto PROPERTIES VERSION 2.12.0 SOVERSION 1) target_link_libraries(mbedcrypto ${libs}) @@ -13,7 +13,7 @@ target_link_libraries(mbedx509 ${libs} mbedcrypto) add_library(mbedtls SHARED ${src_tls}) -- set_target_properties(mbedtls PROPERTIES VERSION 2.12.0 SOVERSION 11) +- set_target_properties(mbedtls PROPERTIES VERSION 2.14.1 SOVERSION 12) + set_target_properties(mbedtls PROPERTIES VERSION 2.12.0 SOVERSION 10) target_link_libraries(mbedtls ${libs} mbedx509) @@ -24,7 +24,7 @@ endif endif --SOEXT_TLS=so.11 +-SOEXT_TLS=so.12 +SOEXT_TLS=so.10 SOEXT_X509=so.0 -SOEXT_CRYPTO=so.3 -- 2.25.1