| 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 | } |