blob: 9dad507a4b1a82c5f5e67ee22be4629a929e2d9c [file] [log] [blame]
Imre Kisd0ed5c22021-12-15 17:05:47 +01001#-------------------------------------------------------------------------------
Gyorgy Szing28bca0b2023-02-15 11:17:07 +01002# Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.
Imre Kisd0ed5c22021-12-15 17:05:47 +01003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8add_components(TARGET "crypto"
9 BASE_DIR ${TS_ROOT}
10 COMPONENTS
Gabor Tothaf77b472024-04-05 11:19:37 +020011 "components/common/mbedtls"
Imre Kisd0ed5c22021-12-15 17:05:47 +010012 "components/common/tlv"
Imre Kisd0ed5c22021-12-15 17:05:47 +010013 "components/rpc/common/interface"
Imre Kisbd8011a2023-07-04 18:00:39 +020014 "components/rpc/common/endpoint"
Imre Kisd0ed5c22021-12-15 17:05:47 +010015 "components/service/common/include"
Gabor Ambrus70908d02023-08-15 14:42:38 +020016 "components/service/common/client"
Imre Kisd0ed5c22021-12-15 17:05:47 +010017 "components/service/common/serializer/protobuf"
18 "components/service/common/provider"
Imre Kisd0ed5c22021-12-15 17:05:47 +010019 "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"
Julian Hallee8e8242022-02-11 14:24:53 +000030 "components/service/crypto/provider/extension/aead"
31 "components/service/crypto/provider/extension/aead/serializer/packed-c"
Imre Kisd0ed5c22021-12-15 17:05:47 +010032 "components/service/crypto/factory/full"
33 "components/service/crypto/backend/mbedcrypto"
Gabor Tothab7db212023-08-18 16:08:12 +020034 "components/service/crypto/backend/mbedcrypto/mbedtls_fake_x509"
Imre Kisd0ed5c22021-12-15 17:05:47 +010035 "protocols/rpc/common/packed-c"
Imre Kisd0ed5c22021-12-15 17:05:47 +010036 "protocols/service/crypto/protobuf"
37)
38
Imre Kisd0ed5c22021-12-15 17:05:47 +010039#-------------------------------------------------------------------------------
40# Components used from external projects
41#
42#-------------------------------------------------------------------------------
43
Imre Kisd0ed5c22021-12-15 17:05:47 +010044# Nanopb
Julian Hall64f1d872022-09-05 16:52:40 +010045include(${TS_ROOT}/external/nanopb/nanopb.cmake)
Imre Kisd0ed5c22021-12-15 17:05:47 +010046target_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
Gabor Toth4ad8b992024-08-13 10:41:48 +020050set(MBEDTLS_CONFIG_FILE "${TS_ROOT}/external/MbedTLS/config/crypto_provider_x509.h"
Julian Halla5443172022-05-30 11:52:11 +010051 CACHE STRING "Configuration file for Mbed TLS" FORCE)
Julian Hall64f1d872022-09-05 16:52:40 +010052include(${TS_ROOT}/external/MbedTLS/MbedTLS.cmake)
Balint Dobszayff8e0cd2022-08-11 15:07:52 +020053target_link_libraries(crypto PRIVATE MbedTLS::mbedcrypto)
Gabor Tothab7db212023-08-18 16:08:12 +020054target_link_libraries(crypto PRIVATE MbedTLS::mbedx509)
55
56# Provide the config path to mbedtls
57target_compile_definitions(crypto
58 PRIVATE
Gabor Toth4ad8b992024-08-13 10:41:48 +020059 MBEDTLS_CONFIG_FILE="${MBEDTLS_CONFIG_FILE}"
Gabor Tothab7db212023-08-18 16:08:12 +020060)
Imre Kisd0ed5c22021-12-15 17:05:47 +010061
62#################################################################
63
64target_include_directories(crypto PRIVATE
65 ${TS_ROOT}
66 ${TS_ROOT}/components
67)