| if (DEFINED ENV{PICO_MBEDTLS_PATH} AND (NOT PICO_MBEDTLS_PATH)) |
| set(PICO_MBEDTLS_PATH $ENV{PICO_MBEDTLS_PATH}) |
| message("Using PICO_MBEDTLS_PATH from environment ('${PICO_MBEDTLS_PATH}')") |
| endif() |
| |
| set(MBEDTLS_TEST_PATH "library/aes.c") |
| if (NOT PICO_MBEDTLS_PATH) |
| set(PICO_MBEDTLS_PATH ${PROJECT_SOURCE_DIR}/lib/mbedtls) |
| elseif (NOT EXISTS ${PICO_MBEDTLS_PATH}/${MBEDTLS_TEST_PATH}) |
| message(WARNING "PICO_MBEDTLS_PATH specified but content not present.") |
| endif() |
| |
| if (EXISTS ${PICO_MBEDTLS_PATH}/${MBEDTLS_TEST_PATH}) |
| message("mbedtls available at ${PICO_MBEDTLS_PATH}") |
| |
| pico_register_common_scope_var(PICO_MBEDTLS_PATH) |
| |
| set(src_crypto |
| aes.c |
| aesni.c |
| arc4.c |
| aria.c |
| asn1parse.c |
| asn1write.c |
| base64.c |
| bignum.c |
| blowfish.c |
| camellia.c |
| ccm.c |
| chacha20.c |
| chachapoly.c |
| cipher.c |
| cipher_wrap.c |
| constant_time.c |
| cmac.c |
| ctr_drbg.c |
| des.c |
| dhm.c |
| ecdh.c |
| ecdsa.c |
| ecjpake.c |
| ecp.c |
| ecp_curves.c |
| entropy.c |
| entropy_poll.c |
| error.c |
| gcm.c |
| havege.c |
| hkdf.c |
| hmac_drbg.c |
| md.c |
| md2.c |
| md4.c |
| md5.c |
| memory_buffer_alloc.c |
| mps_reader.c |
| mps_trace.c |
| nist_kw.c |
| oid.c |
| padlock.c |
| pem.c |
| pk.c |
| pk_wrap.c |
| pkcs12.c |
| pkcs5.c |
| pkparse.c |
| pkwrite.c |
| platform.c |
| platform_util.c |
| poly1305.c |
| psa_crypto.c |
| psa_crypto_aead.c |
| psa_crypto_cipher.c |
| psa_crypto_client.c |
| psa_crypto_driver_wrappers.c |
| psa_crypto_ecp.c |
| psa_crypto_hash.c |
| psa_crypto_mac.c |
| psa_crypto_rsa.c |
| psa_crypto_se.c |
| psa_crypto_slot_management.c |
| psa_crypto_storage.c |
| psa_its_file.c |
| ripemd160.c |
| rsa.c |
| rsa_internal.c |
| sha1.c |
| sha256.c |
| sha512.c |
| threading.c |
| timing.c |
| version.c |
| version_features.c |
| xtea.c |
| ) |
| list(TRANSFORM src_crypto PREPEND ${PICO_MBEDTLS_PATH}/library/) |
| pico_add_library(pico_mbedtls_crypto NOFLAG) |
| target_sources(pico_mbedtls_crypto INTERFACE ${src_crypto}) |
| |
| set(src_x509 |
| certs.c |
| pkcs11.c |
| x509.c |
| x509_create.c |
| x509_crl.c |
| x509_crt.c |
| x509_csr.c |
| x509write_crt.c |
| x509write_csr.c |
| ) |
| list(TRANSFORM src_x509 PREPEND ${PICO_MBEDTLS_PATH}/library/) |
| pico_add_library(pico_mbedtls_x509 NOFLAG) |
| target_sources(pico_mbedtls_x509 INTERFACE ${src_x509}) |
| |
| set(src_tls |
| debug.c |
| net_sockets.c |
| ssl_cache.c |
| ssl_ciphersuites.c |
| ssl_cli.c |
| ssl_cookie.c |
| ssl_msg.c |
| ssl_srv.c |
| ssl_ticket.c |
| ssl_tls.c |
| ssl_tls13_keys.c |
| ) |
| list(TRANSFORM src_tls PREPEND ${PICO_MBEDTLS_PATH}/library/) |
| pico_add_library(pico_mbedtls_tls NOFLAG) |
| target_sources(pico_mbedtls_tls INTERFACE ${src_tls}) |
| |
| pico_add_library(pico_mbedtls NOFLAG) |
| pico_mirrored_target_link_libraries(pico_mbedtls INTERFACE pico_mbedtls_crypto pico_mbedtls_x509 pico_mbedtls_tls pico_rand) |
| if (DEFINED PICO_MBEDTLS_CONFIG_FILE) |
| target_compile_definitions(pico_mbedtls_headers INTERFACE MBEDTLS_CONFIG_FILE="${PICO_MBEDTLS_CONFIG_FILE}") |
| else() |
| target_compile_definitions(pico_mbedtls_headers INTERFACE MBEDTLS_CONFIG_FILE="mbedtls_config.h") |
| endif() |
| if (TARGET pico_sha256) |
| pico_mirrored_target_link_libraries(pico_mbedtls INTERFACE pico_sha256) |
| endif() |
| target_sources(pico_mbedtls INTERFACE ${CMAKE_CURRENT_LIST_DIR}/pico_mbedtls.c) |
| target_include_directories(pico_mbedtls_headers SYSTEM INTERFACE ${PICO_MBEDTLS_PATH}/include/ ${PICO_MBEDTLS_PATH}/library/ ${CMAKE_CURRENT_LIST_DIR}/include/) |
| |
| function(suppress_mbedtls_warnings) |
| set_source_files_properties( |
| ${PICO_MBEDTLS_PATH}/library/ecdsa.c |
| ${PICO_MBEDTLS_PATH}/library/ecp.c |
| ${PICO_MBEDTLS_PATH}/library/ecp_curves.c |
| ${PICO_MBEDTLS_PATH}/library/pk_wrap.c |
| ${PICO_MBEDTLS_PATH}/library/pkparse.c |
| ${PICO_MBEDTLS_PATH}/library/ssl_cli.c |
| PROPERTIES |
| COMPILE_OPTIONS "-Wno-cast-qual" |
| ) |
| set_source_files_properties( |
| ${PICO_MBEDTLS_PATH}/library/psa_crypto_client.c |
| ${PICO_MBEDTLS_PATH}/library/psa_crypto_driver_wrappers.c |
| PROPERTIES |
| COMPILE_OPTIONS "-Wno-redundant-decls" |
| ) |
| set_source_files_properties( |
| ${PICO_MBEDTLS_PATH}/library/x509_crt.c |
| PROPERTIES |
| COMPILE_OPTIONS "-Wno-cast-qual;-Wno-null-dereference" |
| ) |
| set_source_files_properties( |
| ${PICO_MBEDTLS_PATH}/library/ssl_srv.c |
| ${PICO_MBEDTLS_PATH}/library/ssl_tls.c |
| PROPERTIES |
| COMPILE_OPTIONS "-Wno-null-dereference" |
| ) |
| endfunction() |
| |
| pico_promote_common_scope_vars() |
| endif() |