diff options
author | Beniamin Sandu <beniaminsandu@gmail.com> | 2023-06-19 21:25:59 +0300 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2023-06-19 18:41:19 -0700 |
commit | 9cb5f5c6e91612674eb02f79437abbd51ad7b38f (patch) | |
tree | b467278be7d289e753f7e5a222b218e51af96606 /meta-networking | |
parent | d552fa0478b90af8e872854cbcfa298de4250358 (diff) | |
download | meta-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.bb | 85 |
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 @@ | |||
1 | SUMMARY = "Lightweight crypto and SSL/TLS library" | ||
2 | DESCRIPTION = "mbedtls is a lean open source crypto library \ | ||
3 | for providing SSL and TLS support in your programs. It offers \ | ||
4 | an intuitive API and documented header files, so you can actually \ | ||
5 | understand 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 | |||
18 | HOMEPAGE = "https://tls.mbed.org/" | ||
19 | |||
20 | LICENSE = "Apache-2.0" | ||
21 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
22 | |||
23 | SECTION = "libs" | ||
24 | |||
25 | S = "${WORKDIR}/git" | ||
26 | SRCREV = "1873d3bfc2da771672bd8e7e8f41f57e0af77f33" | ||
27 | SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=master \ | ||
28 | file://run-ptest \ | ||
29 | " | ||
30 | |||
31 | inherit cmake update-alternatives ptest | ||
32 | |||
33 | PACKAGECONFIG ??= "shared-libs programs ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" | ||
34 | PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF" | ||
35 | PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF" | ||
36 | PACKAGECONFIG[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 | ||
39 | PACKAGECONFIG[psa] = "" | ||
40 | PACKAGECONFIG[tests] = "-DENABLE_TESTING=ON,-DENABLE_TESTING=OFF" | ||
41 | |||
42 | EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}" | ||
43 | |||
44 | # Needs crypto instructions on aarch64 | ||
45 | TUNE_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 | ||
48 | CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}" | ||
49 | |||
50 | PROVIDES += "polarssl" | ||
51 | RPROVIDES:${PN} = "polarssl" | ||
52 | |||
53 | PACKAGES =+ "${PN}-programs" | ||
54 | FILES:${PN}-programs = "${bindir}/" | ||
55 | |||
56 | ALTERNATIVE:${PN}-programs = "hello" | ||
57 | ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello" | ||
58 | |||
59 | BBCLASSEXTEND = "native nativesdk" | ||
60 | |||
61 | CVE_PRODUCT = "mbed_tls" | ||
62 | |||
63 | # Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310 | ||
64 | CVE_CHECK_IGNORE += "CVE-2021-43666" | ||
65 | # Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c | ||
66 | CVE_CHECK_IGNORE += "CVE-2021-45451" | ||
67 | |||
68 | # Strip host paths from autogenerated test files | ||
69 | do_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 | ||
75 | sysroot_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 | |||
80 | do_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 | } | ||