[OpenWrt-Devel] mbedtls: update to 2.14.1 for 18.06

Message ID 20181222101617.1848-1-foss@volatilesystems.org
State New
Headers show
Series
  • [OpenWrt-Devel] mbedtls: update to 2.14.1 for 18.06
Related show

Commit Message

Stijn Segers Dec. 22, 2018, 10:16 a.m.
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>
---
 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

Comments

Hauke Mehrtens Dec. 23, 2018, 6:51 p.m. | #1
On 12/22/18 11:16 AM, Stijn Segers wrote:
> 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                 |  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
>

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 <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(
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