Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 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 | |
Patrick Williams | 73bd93f | 2024-02-20 08:07:48 -0600 | [diff] [blame] | 20 | LICENSE = "Apache-2.0 | GPL-2.0-or-later" |
| 21 | LIC_FILES_CHKSUM = "file://LICENSE;md5=379d5819937a6c2f1ef1630d341e026d" |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 22 | |
| 23 | SECTION = "libs" |
| 24 | |
| 25 | S = "${WORKDIR}/git" |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 26 | SRCREV = "5a764e5555c64337ed17444410269ff21cb617b1" |
| 27 | SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=mbedtls-2.28 \ |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 28 | file://run-ptest \ |
| 29 | " |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 30 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 31 | inherit cmake update-alternatives ptest |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 32 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 33 | PACKAGECONFIG ??= "shared-libs programs ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 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" |
Andrew Geissler | c5535c9 | 2023-01-27 16:10:19 -0600 | [diff] [blame] | 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] = "" |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 40 | PACKAGECONFIG[tests] = "-DENABLE_TESTING=ON,-DENABLE_TESTING=OFF" |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 41 | |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 42 | EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}" |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 43 | |
Andrew Geissler | c5535c9 | 2023-01-27 16:10:19 -0600 | [diff] [blame] | 44 | # For now the only way to enable PSA is to explicitly pass a -D via CFLAGS |
| 45 | CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}" |
| 46 | |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 47 | PROVIDES += "polarssl" |
| 48 | RPROVIDES:${PN} = "polarssl" |
| 49 | |
| 50 | PACKAGES =+ "${PN}-programs" |
| 51 | FILES:${PN}-programs = "${bindir}/" |
| 52 | |
Andrew Geissler | 6aa7eec | 2023-03-03 12:41:14 -0600 | [diff] [blame] | 53 | ALTERNATIVE:${PN}-programs = "hello" |
| 54 | ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello" |
| 55 | |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 56 | BBCLASSEXTEND = "native nativesdk" |
Patrick Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 57 | |
| 58 | CVE_PRODUCT = "mbed_tls" |
| 59 | |
Patrick Williams | 2a25492 | 2023-08-11 09:48:11 -0500 | [diff] [blame] | 60 | CVE_STATUS[CVE-2021-43666] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310" |
| 61 | CVE_STATUS[CVE-2021-45451] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c" |
Patrick Williams | b9af875 | 2023-01-30 13:28:01 -0600 | [diff] [blame] | 62 | |
Andrew Geissler | 8f84068 | 2023-07-21 09:09:43 -0500 | [diff] [blame] | 63 | # Strip host paths from autogenerated test files |
| 64 | do_compile:append() { |
| 65 | sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || : |
| 66 | sed -i 's+${B}/++g' ${B}/tests/*.c 2>/dev/null || : |
| 67 | } |
| 68 | |
Patrick Williams | b9af875 | 2023-01-30 13:28:01 -0600 | [diff] [blame] | 69 | # Export source files/headers needed by Arm Trusted Firmware |
| 70 | sysroot_stage_all:append() { |
| 71 | sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library" |
| 72 | sysroot_stage_dir "${S}/include" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/include" |
| 73 | } |
Andrew Geissler | fc113ea | 2023-03-31 09:59:46 -0500 | [diff] [blame] | 74 | |
| 75 | do_install_ptest () { |
| 76 | install -d ${D}${PTEST_PATH}/tests |
| 77 | cp -f ${B}/tests/test_suite_* ${D}${PTEST_PATH}/tests/ |
| 78 | find ${D}${PTEST_PATH}/tests/ -type f -name "*.c" -delete |
| 79 | cp -fR ${S}/tests/data_files ${D}${PTEST_PATH}/tests/ |
| 80 | } |