mbedtls: update to 2.14.1 for 18.06
authorStijn Segers <foss@volatilesystems.org>
Sat, 22 Dec 2018 10:16:17 +0000 (11:16 +0100)
committerJo-Philipp Wich <jo@mein.io>
Wed, 30 Jan 2019 09:16:19 +0000 (10:16 +0100)
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 <daniel.engberg.lists@pyret.net>
[Update to 2.14.1]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
[Adapted and squashed for 18.06.1+]
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
package/libs/mbedtls/Makefile
package/libs/mbedtls/patches/200-config.patch
package/libs/mbedtls/patches/300-bn_mul.h-Use-optimized-MULADDC-code-only-on-ARM-6.patch [new file with mode: 0644]
package/libs/mbedtls/patches/300-soversion-compatibility.patch

index 659bf59d8898d8f2ad7fe75f39464692c515ccbc..e265cac575a9cb0bb16b24be04b68b46fa08d50f 100644 (file)
@@ -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+
index ab16d4726c801d6d1a4ae1bb5278c8d6e0cd1f71..a9cd62fc399c2124fb5daca7070571f55ba5e618 100644 (file)
@@ -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
   */
  
  /**
   * \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.
   */
  
  /**
   * \def MBEDTLS_ENTROPY_NV_SEED
-@@ -1137,14 +1137,14 @@
+@@ -1170,14 +1170,14 @@
   * Uncomment this macro to disable the use of CRT in RSA.
   *
   */
  
  /**
   * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES
-@@ -1298,7 +1298,7 @@
+@@ -1331,7 +1331,7 @@
   *          configuration of this extension).
   *
   */
  
  /**
   * \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
   */
  
  /**
   * \def MBEDTLS_SSL_EXPORT_KEYS
-@@ -1503,7 +1503,7 @@
+@@ -1536,7 +1536,7 @@
   *
   * Comment this macro to disable support for truncated HMAC in SSL
   */
  
  /**
   * \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
   */
  
  /**
   * \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
   */
  
  /**
   * \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.
   */
  
  /**
   * \def MBEDTLS_CERTS_C
-@@ -1970,7 +1970,7 @@
+@@ -2003,7 +2003,7 @@
   *
   * This module is used for testing (ssl_client/server).
   */
  
  /**
   * \def MBEDTLS_CIPHER_C
-@@ -2043,7 +2043,7 @@
+@@ -2078,7 +2078,7 @@
   *
   * This module provides debugging functions.
   */
  
  /**
   * \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.
   */
  
  /**
   * \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).
   */
  
  /**
   * \def MBEDTLS_NIST_KW_C
-@@ -2545,7 +2545,7 @@
+@@ -2580,7 +2580,7 @@
   *
   * This module enables abstraction of common (libc) functions.
   */
  
  /**
   * \def MBEDTLS_RIPEMD160_C
-@@ -2566,7 +2566,7 @@
+@@ -2601,7 +2601,7 @@
   * Caller:  library/md.c
   *
   */
  
  /**
   * \def MBEDTLS_RSA_C
-@@ -2673,7 +2673,7 @@
+@@ -2708,7 +2708,7 @@
   *
   * Requires: MBEDTLS_CIPHER_C
   */
  
  /**
   * \def MBEDTLS_SSL_CLI_C
-@@ -2773,7 +2773,7 @@
+@@ -2808,7 +2808,7 @@
   *
   * This module provides run-time version information.
   */
  
  /**
   * \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 (file)
index 0000000..b6c60f0
--- /dev/null
@@ -0,0 +1,27 @@
+From 7aff5a70f3580426865b6c86437a3e47546d13f7 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+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 <hauke@hauke-m.de>
+---
+ 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(
index a352b449f1e1f8041d45aac852061f8d1bfba10c..6445f5e5e03748b9d0bb275cf64a617166b7715b 100644 (file)
@@ -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