1#------------------------------------------------------------------------------- 2# Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6#------------------------------------------------------------------------------- 7 8add_components(TARGET "crypto" 9 BASE_DIR ${TS_ROOT} 10 COMPONENTS 11 "components/common/mbedtls" 12 "components/common/tlv" 13 "components/rpc/common/interface" 14 "components/rpc/common/endpoint" 15 "components/service/common/include" 16 "components/service/common/client" 17 "components/service/common/serializer/protobuf" 18 "components/service/common/provider" 19 "components/service/crypto/provider" 20 "components/service/crypto/provider/serializer/protobuf" 21 "components/service/crypto/provider/serializer/packed-c" 22 "components/service/crypto/provider/extension/hash" 23 "components/service/crypto/provider/extension/hash/serializer/packed-c" 24 "components/service/crypto/provider/extension/cipher" 25 "components/service/crypto/provider/extension/cipher/serializer/packed-c" 26 "components/service/crypto/provider/extension/key_derivation" 27 "components/service/crypto/provider/extension/key_derivation/serializer/packed-c" 28 "components/service/crypto/provider/extension/mac" 29 "components/service/crypto/provider/extension/mac/serializer/packed-c" 30 "components/service/crypto/provider/extension/aead" 31 "components/service/crypto/provider/extension/aead/serializer/packed-c" 32 "components/service/crypto/factory/full" 33 "components/service/crypto/backend/mbedcrypto" 34 "components/service/crypto/backend/mbedcrypto/mbedtls_fake_x509" 35 "protocols/rpc/common/packed-c" 36 "protocols/service/crypto/protobuf" 37) 38 39#------------------------------------------------------------------------------- 40# Components used from external projects 41# 42#------------------------------------------------------------------------------- 43 44# Nanopb 45include(${TS_ROOT}/external/nanopb/nanopb.cmake) 46target_link_libraries(crypto PRIVATE nanopb::protobuf-nanopb-static) 47protobuf_generate_all(TGT "crypto" NAMESPACE "protobuf" BASE_DIR "${TS_ROOT}/protocols") 48 49# Mbed TLS provides libmbedcrypto 50set(MBEDTLS_CONFIG_FILE "${TS_ROOT}/external/MbedTLS/config/crypto_provider_x509.h" 51 CACHE STRING "Configuration file for Mbed TLS" FORCE) 52include(${TS_ROOT}/external/MbedTLS/MbedTLS.cmake) 53target_link_libraries(crypto PRIVATE MbedTLS::mbedcrypto) 54target_link_libraries(crypto PRIVATE MbedTLS::mbedx509) 55 56# Provide the config path to mbedtls 57target_compile_definitions(crypto 58 PRIVATE 59 MBEDTLS_CONFIG_FILE="${MBEDTLS_CONFIG_FILE}" 60) 61 62################################################################# 63 64target_include_directories(crypto PRIVATE 65 ${TS_ROOT} 66 ${TS_ROOT}/components 67) 68