summaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
authorBeniamin Sandu <beniaminsandu@gmail.com>2023-06-19 21:25:59 +0300
committerKhem Raj <raj.khem@gmail.com>2023-06-19 18:41:19 -0700
commit9cb5f5c6e91612674eb02f79437abbd51ad7b38f (patch)
treeb467278be7d289e753f7e5a222b218e51af96606 /meta-networking
parentd552fa0478b90af8e872854cbcfa298de4250358 (diff)
downloadmeta-openembedded-9cb5f5c6e91612674eb02f79437abbd51ad7b38f.tar.gz
mbedtls: add support for v3.x
Version 3.4.0 adds a lot of improvements and fixes (a notable one being initial support for PKCS7 CMS), but since this is a pretty big jump, let's keep both versions for a while, so the v2.x users can upgrade to 3.x in a timely manner if needed. Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-networking')
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb85
1 files changed, 85 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
new file mode 100644
index 000000000..ebc6ba573
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
@@ -0,0 +1,85 @@
1SUMMARY = "Lightweight crypto and SSL/TLS library"
2DESCRIPTION = "mbedtls is a lean open source crypto library \
3for providing SSL and TLS support in your programs. It offers \
4an intuitive API and documented header files, so you can actually \
5understand what the code does. It features: \
6 \
7 - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \
8 Camellia and XTEA \
9 - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \
10 - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \
11 - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \
12 ECDSA and ECDH \
13 - SSL v3 and TLS 1.0, 1.1 and 1.2 \
14 - Abstraction layers for ciphers, hashes, public key operations, \
15 platform abstraction and threading \
16"
17
18HOMEPAGE = "https://tls.mbed.org/"
19
20LICENSE = "Apache-2.0"
21LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
22
23SECTION = "libs"
24
25S = "${WORKDIR}/git"
26SRCREV = "1873d3bfc2da771672bd8e7e8f41f57e0af77f33"
27SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=master \
28 file://run-ptest \
29 "
30
31inherit cmake update-alternatives ptest
32
33PACKAGECONFIG ??= "shared-libs programs ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
34PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF"
35PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
36PACKAGECONFIG[werror] = "-DMBEDTLS_FATAL_WARNINGS=ON,-DMBEDTLS_FATAL_WARNINGS=OFF"
37# Make X.509 and TLS calls use PSA
38# https://github.com/Mbed-TLS/mbedtls/blob/development/docs/use-psa-crypto.md
39PACKAGECONFIG[psa] = ""
40PACKAGECONFIG[tests] = "-DENABLE_TESTING=ON,-DENABLE_TESTING=OFF"
41
42EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}"
43
44# Needs crypto instructions on aarch64
45TUNE_CCARGS_MARCH_OPTS:append:aarch64 = "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '', '+crypto', d)}"
46
47# For now the only way to enable PSA is to explicitly pass a -D via CFLAGS
48CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}"
49
50PROVIDES += "polarssl"
51RPROVIDES:${PN} = "polarssl"
52
53PACKAGES =+ "${PN}-programs"
54FILES:${PN}-programs = "${bindir}/"
55
56ALTERNATIVE:${PN}-programs = "hello"
57ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello"
58
59BBCLASSEXTEND = "native nativesdk"
60
61CVE_PRODUCT = "mbed_tls"
62
63# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310
64CVE_CHECK_IGNORE += "CVE-2021-43666"
65# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c
66CVE_CHECK_IGNORE += "CVE-2021-45451"
67
68# Strip host paths from autogenerated test files
69do_compile:append() {
70 sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || :
71 sed -i 's+${B}/++g' ${B}/tests/*.c 2>/dev/null || :
72}
73
74# Export source files/headers needed by Arm Trusted Firmware
75sysroot_stage_all:append() {
76 sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library"
77 sysroot_stage_dir "${S}/include" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/include"
78}
79
80do_install_ptest () {
81 install -d ${D}${PTEST_PATH}/tests
82 cp -f ${B}/tests/test_suite_* ${D}${PTEST_PATH}/tests/
83 find ${D}${PTEST_PATH}/tests/ -type f -name "*.c" -delete
84 cp -fR ${S}/tests/data_files ${D}${PTEST_PATH}/tests/
85}