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 | GPL-2.0-or-later" 21LIC_FILES_CHKSUM = "file://LICENSE;md5=379d5819937a6c2f1ef1630d341e026d" 22 23SECTION = "libs" 24 25S = "${WORKDIR}/git" 26SRCREV = "5e146adef63b326b04282252639bebc2730939c6" 27SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=mbedtls-2.28 \ 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# For now the only way to enable PSA is to explicitly pass a -D via CFLAGS 45CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}" 46 47PROVIDES += "polarssl" 48RPROVIDES:${PN} = "polarssl" 49 50PACKAGES =+ "${PN}-programs" 51FILES:${PN}-programs = "${bindir}/" 52 53ALTERNATIVE:${PN}-programs = "${@bb.utils.contains('PACKAGECONFIG', 'programs', 'hello', '', d)}" 54ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello" 55 56BBCLASSEXTEND = "native nativesdk" 57 58CVE_PRODUCT = "mbed_tls" 59 60CVE_STATUS[CVE-2021-43666] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310" 61CVE_STATUS[CVE-2021-45451] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c" 62 63# Strip host paths from autogenerated test files 64do_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 69# Export source files/headers needed by Arm Trusted Firmware 70sysroot_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} 74 75do_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} 81