blob: e19587ca01c109e308242abb99e9cfc29f6db2a5 [file] [log] [blame]
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00001SUMMARY = "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"
21LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
22
23SECTION = "libs"
24
25S = "${WORKDIR}/git"
Andrew Geisslerc5535c92023-01-27 16:10:19 -060026SRCREV = "89f040a5c938985c5f30728baed21e49d0846a53"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000027SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=mbedtls-2.28"
28
Andrew Geissler6aa7eec2023-03-03 12:41:14 -060029inherit cmake update-alternatives
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000030
31PACKAGECONFIG ??= "shared-libs programs"
32PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF"
33PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
34PACKAGECONFIG[werror] = "-DMBEDTLS_FATAL_WARNINGS=ON,-DMBEDTLS_FATAL_WARNINGS=OFF"
Andrew Geisslerc5535c92023-01-27 16:10:19 -060035# Make X.509 and TLS calls use PSA
36# https://github.com/Mbed-TLS/mbedtls/blob/development/docs/use-psa-crypto.md
37PACKAGECONFIG[psa] = ""
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000038
39EXTRA_OECMAKE = "-DENABLE_TESTING=OFF -DLIB_INSTALL_DIR:STRING=${libdir}"
40
Andrew Geisslerc5535c92023-01-27 16:10:19 -060041# For now the only way to enable PSA is to explicitly pass a -D via CFLAGS
42CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}"
43
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000044PROVIDES += "polarssl"
45RPROVIDES:${PN} = "polarssl"
46
47PACKAGES =+ "${PN}-programs"
48FILES:${PN}-programs = "${bindir}/"
49
Andrew Geissler6aa7eec2023-03-03 12:41:14 -060050ALTERNATIVE:${PN}-programs = "hello"
51ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello"
52
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000053BBCLASSEXTEND = "native nativesdk"
Patrick Williams2194f502022-10-16 14:26:09 -050054
55CVE_PRODUCT = "mbed_tls"
56
57# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310
58CVE_CHECK_IGNORE += "CVE-2021-43666"
59# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c
60CVE_CHECK_IGNORE += "CVE-2021-45451"
Patrick Williamsb9af8752023-01-30 13:28:01 -060061
62# Export source files/headers needed by Arm Trusted Firmware
63sysroot_stage_all:append() {
64 sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library"
65 sysroot_stage_dir "${S}/include" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/include"
66}