mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
mbedtls: upgrade 3.5.2 -> 3.6.0
This is an LTS release. Includes security fixes: * CVE-2024-28960 - Insecure handling of shared memory in PSA Crypto APIs Full release notes: https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.6.0 Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
-87
@@ -1,87 +0,0 @@
|
|||||||
From 80d3e73ad0648f558a067a9dbfe3bc80e6b614f8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Beniamin Sandu <beniaminsandu@gmail.com>
|
|
||||||
Date: Mon, 30 Oct 2023 19:15:56 +0000
|
|
||||||
Subject: [PATCH] AES-NI: use target attributes for x86 32-bit intrinsics
|
|
||||||
|
|
||||||
This way we build with 32-bit gcc/clang out of the box.
|
|
||||||
We also fallback to assembly for 64-bit clang-cl if needed cpu
|
|
||||||
flags are not provided, instead of throwing an error.
|
|
||||||
|
|
||||||
Upstream-Status: Backport [https://github.com/Mbed-TLS/mbedtls/commit/800f2b7c020678a84abfa9688962b91c36e6693d]
|
|
||||||
|
|
||||||
Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
|
|
||||||
---
|
|
||||||
library/aesni.c | 20 ++++++++++++++++++++
|
|
||||||
library/aesni.h | 8 +++++---
|
|
||||||
2 files changed, 25 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/library/aesni.c b/library/aesni.c
|
|
||||||
index 5f25a8249..481fa3822 100644
|
|
||||||
--- a/library/aesni.c
|
|
||||||
+++ b/library/aesni.c
|
|
||||||
@@ -41,6 +41,17 @@
|
|
||||||
#include <immintrin.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if defined(MBEDTLS_ARCH_IS_X86)
|
|
||||||
+#if defined(MBEDTLS_COMPILER_IS_GCC)
|
|
||||||
+#pragma GCC push_options
|
|
||||||
+#pragma GCC target ("pclmul,sse2,aes")
|
|
||||||
+#define MBEDTLS_POP_TARGET_PRAGMA
|
|
||||||
+#elif defined(__clang__)
|
|
||||||
+#pragma clang attribute push (__attribute__((target("pclmul,sse2,aes"))), apply_to=function)
|
|
||||||
+#define MBEDTLS_POP_TARGET_PRAGMA
|
|
||||||
+#endif
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#if !defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
|
|
||||||
/*
|
|
||||||
* AES-NI support detection routine
|
|
||||||
@@ -396,6 +407,15 @@ static void aesni_setkey_enc_256(unsigned char *rk_bytes,
|
|
||||||
}
|
|
||||||
#endif /* !MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
|
|
||||||
|
|
||||||
+#if defined(MBEDTLS_POP_TARGET_PRAGMA)
|
|
||||||
+#if defined(__clang__)
|
|
||||||
+#pragma clang attribute pop
|
|
||||||
+#elif defined(__GNUC__)
|
|
||||||
+#pragma GCC pop_options
|
|
||||||
+#endif
|
|
||||||
+#undef MBEDTLS_POP_TARGET_PRAGMA
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#else /* MBEDTLS_AESNI_HAVE_CODE == 1 */
|
|
||||||
|
|
||||||
#if defined(__has_feature)
|
|
||||||
diff --git a/library/aesni.h b/library/aesni.h
|
|
||||||
index ba1429029..37ae02c82 100644
|
|
||||||
--- a/library/aesni.h
|
|
||||||
+++ b/library/aesni.h
|
|
||||||
@@ -50,6 +50,10 @@
|
|
||||||
#if defined(__GNUC__) && defined(__AES__) && defined(__PCLMUL__)
|
|
||||||
#define MBEDTLS_AESNI_HAVE_INTRINSICS
|
|
||||||
#endif
|
|
||||||
+/* For 32-bit, we only support intrinsics */
|
|
||||||
+#if defined(MBEDTLS_ARCH_IS_X86) && (defined(__GNUC__) || defined(__clang__))
|
|
||||||
+#define MBEDTLS_AESNI_HAVE_INTRINSICS
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* Choose the implementation of AESNI, if one is available.
|
|
||||||
*
|
|
||||||
@@ -60,13 +64,11 @@
|
|
||||||
#if defined(MBEDTLS_AESNI_HAVE_INTRINSICS)
|
|
||||||
#define MBEDTLS_AESNI_HAVE_CODE 2 // via intrinsics
|
|
||||||
#elif defined(MBEDTLS_HAVE_ASM) && \
|
|
||||||
- defined(__GNUC__) && defined(MBEDTLS_ARCH_IS_X64)
|
|
||||||
+ (defined(__GNUC__) || defined(__clang__)) && defined(MBEDTLS_ARCH_IS_X64)
|
|
||||||
/* Can we do AESNI with inline assembly?
|
|
||||||
* (Only implemented with gas syntax, only for 64-bit.)
|
|
||||||
*/
|
|
||||||
#define MBEDTLS_AESNI_HAVE_CODE 1 // via assembly
|
|
||||||
-#elif defined(__GNUC__)
|
|
||||||
-# error "Must use `-mpclmul -msse2 -maes` for MBEDTLS_AESNI_C"
|
|
||||||
#else
|
|
||||||
#error "MBEDTLS_AESNI_C defined, but neither intrinsics nor assembly available"
|
|
||||||
#endif
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
+6
-2
@@ -23,10 +23,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=379d5819937a6c2f1ef1630d341e026d"
|
|||||||
SECTION = "libs"
|
SECTION = "libs"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
SRCREV = "daca7a3979c22da155ec9dce49ab1abf3b65d3a9"
|
|
||||||
SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=master \
|
SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=master \
|
||||||
file://0001-AES-NI-use-target-attributes-for-x86-32-bit-intrinsi.patch \
|
git://github.com/Mbed-TLS/mbedtls-framework.git;protocol=https;branch=main;destsuffix=git/framework;name=framework \
|
||||||
file://run-ptest"
|
file://run-ptest"
|
||||||
|
|
||||||
|
SRCREV = "2ca6c285a0dd3f33982dd57299012dacab1ff206"
|
||||||
|
SRCREV_framework = "750634d3a51eb9d61b59fd5d801546927c946588"
|
||||||
|
SRCREV_FORMAT .= "_framework"
|
||||||
|
|
||||||
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
|
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
|
||||||
|
|
||||||
inherit cmake update-alternatives ptest
|
inherit cmake update-alternatives ptest
|
||||||
Reference in New Issue
Block a user