blob: 068537fab30957202734e16f487e117b1e090b47 [file] [log] [blame]
Tamas Banc2e0c182020-01-07 15:09:16 +00001#-------------------------------------------------------------------------------
David Vincze3de42282022-11-10 16:26:45 +01002# Copyright (c) 2020-2023, Arm Limited. All rights reserved.
Tamas Banc2e0c182020-01-07 15:09:16 +00003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
Raef Coles69817322020-10-19 14:14:14 +01008cmake_minimum_required(VERSION 3.15)
Tamas Banc2e0c182020-01-07 15:09:16 +00009
shejia01d853fe82021-07-12 20:03:55 +080010################################ t_cose defs ###################################
Tamas Banc2e0c182020-01-07 15:09:16 +000011
shejia01d853fe82021-07-12 20:03:55 +080012add_library(tfm_t_cose_defs INTERFACE)
Tamas Banc2e0c182020-01-07 15:09:16 +000013
shejia01d853fe82021-07-12 20:03:55 +080014target_include_directories(tfm_t_cose_defs
15 INTERFACE
Raef Coles19715382020-07-10 09:50:17 +010016 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
17 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
18)
Tamas Banc2e0c182020-01-07 15:09:16 +000019
shejia01d853fe82021-07-12 20:03:55 +080020target_compile_definitions(tfm_t_cose_defs
21 INTERFACE
Raef Coles19715382020-07-10 09:50:17 +010022 T_COSE_COMPILE_TIME_CONFIG
23 T_COSE_USE_PSA_CRYPTO
24 T_COSE_USE_PSA_CRYPTO_FROM_TFM
25 T_COSE_DISABLE_CONTENT_TYPE
David Vincze75ee5162022-06-08 17:23:09 +020026 $<$<OR:$<NOT:$<STREQUAL:${ATTEST_KEY_BITS},384>>,$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_ES384>
27 $<$<OR:$<NOT:$<STREQUAL:${ATTEST_KEY_BITS},521>>,$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_ES512>
Raef Coles19715382020-07-10 09:50:17 +010028 $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_SIGN_VERIFY_TESTS>
29 $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:T_COSE_DISABLE_SIGN1>
30 $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_MAC0>
Joakim Andersson7f572ff2022-08-09 16:50:36 +020031 $<$<NOT:$<BOOL:${ATTEST_INCLUDE_TEST_CODE}>>:T_COSE_DISABLE_SHORT_CIRCUIT_SIGN>
Raef Coles19715382020-07-10 09:50:17 +010032)
Tamas Banc2e0c182020-01-07 15:09:16 +000033
shejia01d853fe82021-07-12 20:03:55 +080034############################### t_cose common ##################################
35
36add_library(tfm_t_cose_common INTERFACE)
37
38target_sources(tfm_t_cose_common
39 INTERFACE
40 $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:${CMAKE_CURRENT_SOURCE_DIR}/src/t_cose_mac0_sign.c>
41 $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:${CMAKE_CURRENT_SOURCE_DIR}/src/t_cose_mac0_verify.c>
42 $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:${CMAKE_CURRENT_SOURCE_DIR}/src/t_cose_sign1_sign.c>
43 $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:${CMAKE_CURRENT_SOURCE_DIR}/src/t_cose_sign1_verify.c>
44 ${CMAKE_CURRENT_SOURCE_DIR}/src/t_cose_util.c
45 ${CMAKE_CURRENT_SOURCE_DIR}/src/t_cose_parameters.c
46 ${CMAKE_CURRENT_SOURCE_DIR}/crypto_adapters/t_cose_psa_crypto.c
47)
48
Antonio de Angelis34a0ffd2023-02-16 11:56:46 +000049target_link_libraries(tfm_t_cose_common
50 INTERFACE
51 psa_crypto_config
52)
53
shejia01d853fe82021-07-12 20:03:55 +080054############################ t_cose secure #####################################
55
56add_library(tfm_t_cose_s STATIC EXCLUDE_FROM_ALL)
57
58target_link_libraries(tfm_t_cose_s
59 PUBLIC
60 tfm_t_cose_common
61 tfm_t_cose_defs
shejia01d853fe82021-07-12 20:03:55 +080062 psa_interface
David Vincze3de42282022-11-10 16:26:45 +010063 qcbor
shejia01d853fe82021-07-12 20:03:55 +080064)
65
Feder Liangd4dbaa92021-09-07 15:34:46 +080066target_compile_options(tfm_t_cose_s
Raef Coles19715382020-07-10 09:50:17 +010067 PUBLIC
Feder Liangd4dbaa92021-09-07 15:34:46 +080068 ${COMPILER_CP_FLAG}
Raef Coles19715382020-07-10 09:50:17 +010069)