|
@@ -0,0 +1,79 @@
|
|
|
|
+From 91666a38b7bd4bd353394986d8343a33ba61d8e2 Mon Sep 17 00:00:00 2001
|
|
|
|
+From: Hauke Mehrtens <hauke@hauke-m.de>
|
|
|
|
+Date: Sat, 11 Nov 2023 22:13:24 +0100
|
|
|
|
+Subject: [PATCH] ustream-mbedtls: Add compatibility with Mbed TLS 3.0.0
|
|
|
|
+
|
|
|
|
+This adds support for compiling the code against Mbed TLS 3.0.0.
|
|
|
|
+It still compiles against Mbed TLS 2.28.
|
|
|
|
+
|
|
|
|
+The following changes were needed:
|
|
|
|
+ * DES and 3DES was removed
|
|
|
|
+ * mbedtls_pk_context->pk_info is private, use mbedtls_pk_get_type()
|
|
|
|
+ to check if it was initialized
|
|
|
|
+ * mbedtls_pk_parse_keyfile() now gets a random callback
|
|
|
|
+ * mbedtls/certs.h contains test data and is not installed any more and
|
|
|
|
+ not needed.
|
|
|
|
+
|
|
|
|
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
|
|
|
+Upstream: https://git.openwrt.org/?p=project/ustream-ssl.git;a=commit;h=91666a38b7bd4bd353394986d8343a33ba61d8e2
|
|
|
|
+Signed-off-by: Thomas Perale <thomas.perale@mind.be>
|
|
|
|
+---
|
|
|
|
+ ustream-mbedtls.c | 12 +++++++++++-
|
|
|
|
+ ustream-mbedtls.h | 1 -
|
|
|
|
+ 2 files changed, 11 insertions(+), 2 deletions(-)
|
|
|
|
+
|
|
|
|
+diff --git a/ustream-mbedtls.c b/ustream-mbedtls.c
|
|
|
|
+index 7fc7874..1c70cac 100644
|
|
|
|
+--- a/ustream-mbedtls.c
|
|
|
|
++++ b/ustream-mbedtls.c
|
|
|
|
+@@ -110,9 +110,15 @@ static const int default_ciphersuites_client[] =
|
|
|
|
+ AES_CBC_CIPHERS(ECDHE_ECDSA),
|
|
|
|
+ AES_CBC_CIPHERS(ECDHE_RSA),
|
|
|
|
+ AES_CBC_CIPHERS(DHE_RSA),
|
|
|
|
++/* Removed in Mbed TLS 3.0.0 */
|
|
|
|
++#ifdef MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
|
|
|
|
+ MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
|
|
++#endif
|
|
|
|
+ AES_CIPHERS(RSA),
|
|
|
|
++/* Removed in Mbed TLS 3.0.0 */
|
|
|
|
++#ifdef MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA
|
|
|
|
+ MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
|
|
|
|
++#endif
|
|
|
|
+ 0
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+@@ -171,7 +177,7 @@ static void ustream_ssl_update_own_cert(struct ustream_ssl_ctx *ctx)
|
|
|
|
+ if (!ctx->cert.version)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+- if (!ctx->key.pk_info)
|
|
|
|
++ if (mbedtls_pk_get_type(&ctx->key) == MBEDTLS_PK_NONE)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ mbedtls_ssl_conf_own_cert(&ctx->conf, &ctx->cert, &ctx->key);
|
|
|
|
+@@ -206,7 +212,11 @@ __hidden int __ustream_ssl_set_key_file(struct ustream_ssl_ctx *ctx, const char
|
|
|
|
+ {
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
|
|
++#if (MBEDTLS_VERSION_NUMBER >= 0x03000000)
|
|
|
|
++ ret = mbedtls_pk_parse_keyfile(&ctx->key, file, NULL, _random, NULL);
|
|
|
|
++#else
|
|
|
|
+ ret = mbedtls_pk_parse_keyfile(&ctx->key, file, NULL);
|
|
|
|
++#endif
|
|
|
|
+ if (ret)
|
|
|
|
+ return -1;
|
|
|
|
+
|
|
|
|
+diff --git a/ustream-mbedtls.h b/ustream-mbedtls.h
|
|
|
|
+index e622e5e..7e7c699 100644
|
|
|
|
+--- a/ustream-mbedtls.h
|
|
|
|
++++ b/ustream-mbedtls.h
|
|
|
|
+@@ -21,7 +21,6 @@
|
|
|
|
+
|
|
|
|
+ #include <mbedtls/net_sockets.h>
|
|
|
|
+ #include <mbedtls/ssl.h>
|
|
|
|
+-#include <mbedtls/certs.h>
|
|
|
|
+ #include <mbedtls/x509.h>
|
|
|
|
+ #include <mbedtls/rsa.h>
|
|
|
|
+ #include <mbedtls/error.h>
|
|
|
|
+--
|
|
|
|
+2.30.2
|