Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [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 | 169d7bc | 2024-01-05 11:33:25 -0600 | [diff] [blame] | 20 | LICENSE = "Apache-2.0 | GPL-2.0-or-later" |
| 21 | LIC_FILES_CHKSUM = "file://LICENSE;md5=379d5819937a6c2f1ef1630d341e026d" |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 22 | |
| 23 | SECTION = "libs" |
| 24 | |
| 25 | S = "${WORKDIR}/git" |
Patrick Williams | 169d7bc | 2024-01-05 11:33:25 -0600 | [diff] [blame] | 26 | SRCREV = "edb8fec9882084344a314368ac7fd957a187519c" |
| 27 | SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=master \ |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 28 | file://0001-AES-NI-use-target-attributes-for-x86-32-bit-intrinsi.patch \ |
| 29 | file://run-ptest" |
Patrick Williams | 169d7bc | 2024-01-05 11:33:25 -0600 | [diff] [blame] | 30 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" |
Patrick Williams | ac13d5f | 2023-11-24 18:59:46 -0600 | [diff] [blame] | 31 | |
| 32 | inherit cmake update-alternatives ptest |
| 33 | |
| 34 | PACKAGECONFIG ??= "shared-libs programs ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" |
| 35 | PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF" |
| 36 | PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF" |
| 37 | PACKAGECONFIG[werror] = "-DMBEDTLS_FATAL_WARNINGS=ON,-DMBEDTLS_FATAL_WARNINGS=OFF" |
| 38 | # Make X.509 and TLS calls use PSA |
| 39 | # https://github.com/Mbed-TLS/mbedtls/blob/development/docs/use-psa-crypto.md |
| 40 | PACKAGECONFIG[psa] = "" |
| 41 | PACKAGECONFIG[tests] = "-DENABLE_TESTING=ON,-DENABLE_TESTING=OFF" |
| 42 | |
| 43 | EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}" |
| 44 | |
| 45 | # For now the only way to enable PSA is to explicitly pass a -D via CFLAGS |
| 46 | CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}" |
| 47 | |
| 48 | PROVIDES += "polarssl" |
| 49 | RPROVIDES:${PN} = "polarssl" |
| 50 | |
| 51 | PACKAGES =+ "${PN}-programs" |
| 52 | FILES:${PN}-programs = "${bindir}/" |
| 53 | |
| 54 | ALTERNATIVE:${PN}-programs = "hello" |
| 55 | ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello" |
| 56 | |
| 57 | BBCLASSEXTEND = "native nativesdk" |
| 58 | |
| 59 | CVE_PRODUCT = "mbed_tls" |
| 60 | |
| 61 | # Strip host paths from autogenerated test files |
| 62 | do_compile:append() { |
| 63 | sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || : |
| 64 | sed -i 's+${B}/++g' ${B}/tests/*.c 2>/dev/null || : |
| 65 | } |
| 66 | |
| 67 | # Export source files/headers needed by Arm Trusted Firmware |
| 68 | sysroot_stage_all:append() { |
| 69 | sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library" |
| 70 | sysroot_stage_dir "${S}/include" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/include" |
| 71 | } |
| 72 | |
| 73 | do_install_ptest () { |
| 74 | install -d ${D}${PTEST_PATH}/tests |
| 75 | cp -f ${B}/tests/test_suite_* ${D}${PTEST_PATH}/tests/ |
| 76 | find ${D}${PTEST_PATH}/tests/ -type f -name "*.c" -delete |
| 77 | cp -fR ${S}/tests/data_files ${D}${PTEST_PATH}/tests/ |
| 78 | } |