blob: f947bd49b0eb9f22a07c66c628e020346ae4e932 [file] [log] [blame]
Soby Mathewb4c6df42022-11-09 11:13:29 +00001#
2# SPDX-License-Identifier: BSD-3-Clause
3# SPDX-FileCopyrightText: Copyright TF-RMM Contributors.
4#
5
Mate Toth-Pal83a45bd2023-09-01 11:17:19 +02006# The t_cose library is not included in the CBMC analysis
7if(RMM_CBMC_STATIC_ANALYSIS)
8 add_library(t_cose INTERFACE)
9 return()
10endif()
11
Soby Mathewb4c6df42022-11-09 11:13:29 +000012add_library(t_cose)
13
14set(T_COSE_SOURCE_DIR "${RMM_SOURCE_DIR}/ext/t_cose")
15
Tamas Banfac904c2024-09-11 16:02:30 +020016# Patch t_cose
17set(T_COSE_PATCH_DIR "${RMM_SOURCE_DIR}/configs/t_cose")
18set(T_COSE_PATCH_FILES
Soby Mathewe307b0a2024-10-03 12:12:52 +010019 "${T_COSE_PATCH_DIR}/0001-Add-t_cose_key_encode-API.patch"
20 "${T_COSE_PATCH_DIR}/0001-Add-compile-time-option-for-el3-signing.patch")
Tamas Banfac904c2024-09-11 16:02:30 +020021
22Git_Apply_Patches(${T_COSE_SOURCE_DIR} "${T_COSE_PATCH_FILES}")
23
Mate Toth-Palfda673a2023-06-13 12:25:43 +020024#TODO: Eliminate warning suppression once the t_cose submodule is updated to
25# a released version.
26target_compile_options(t_cose
27 PRIVATE
28 "-Wno-maybe-uninitialized"
29 "-Wno-cpp"
30 "-Wno-unused-variable")
31
Soby Mathewb4c6df42022-11-09 11:13:29 +000032target_compile_definitions(t_cose
Soby Mathewe307b0a2024-10-03 12:12:52 +010033 PUBLIC
34 "ATTEST_EL3_TOKEN_SIGN=$<IF:$<BOOL:${ATTEST_EL3_TOKEN_SIGN}>,1,0>"
Mate Toth-Palc69951d2023-03-17 17:30:50 +010035 PRIVATE
36 "T_COSE_USE_PSA_CRYPTO=1"
37 "T_COSE_DISABLE_HPKE=1"
Soby Mathewb4c6df42022-11-09 11:13:29 +000038)
39
40target_link_libraries(t_cose
41 PRIVATE
42 rmm-lib-common
43 rmm-lib-libc
44)
45
46target_link_libraries(t_cose
47 PUBLIC
Soby Mathew73dad842022-12-16 12:51:01 +000048 rmm-mbedtls
Soby Mathewb4c6df42022-11-09 11:13:29 +000049 qcbor
50)
51
52target_include_directories(t_cose
53 PUBLIC
Soby Mathewe307b0a2024-10-03 12:12:52 +010054 "include"
Soby Mathewb4c6df42022-11-09 11:13:29 +000055 "${T_COSE_SOURCE_DIR}/inc"
Mate Toth-Palc69951d2023-03-17 17:30:50 +010056 "${T_COSE_SOURCE_DIR}/crypto_adapters"
Soby Mathewb4c6df42022-11-09 11:13:29 +000057 PRIVATE
58 "${T_COSE_SOURCE_DIR}/src"
59)
60
61target_sources(t_cose
62 PRIVATE
Soby Mathew4d4c21a2023-06-29 14:52:41 +020063 "${T_COSE_SOURCE_DIR}/crypto_adapters/t_cose_psa_crypto.c"
Mate Toth-Palfda673a2023-06-13 12:25:43 +020064 "${T_COSE_SOURCE_DIR}/src/t_cose_parameters.c"
65 "${T_COSE_SOURCE_DIR}/src/t_cose_sign_sign.c"
66 "${T_COSE_SOURCE_DIR}/src/t_cose_signature_sign_restart.c"
67 "${T_COSE_SOURCE_DIR}/src/t_cose_util.c"
Tamas Banfac904c2024-09-11 16:02:30 +020068 "${T_COSE_SOURCE_DIR}/src/t_cose_key.c"
Soby Mathewb4c6df42022-11-09 11:13:29 +000069)
Soby Mathewe307b0a2024-10-03 12:12:52 +010070
71if (ATTEST_EL3_TOKEN_SIGN)
72 target_compile_definitions(t_cose
73 PRIVATE
74 "T_COSE_DISABLE_COSE_SIGN=1")
75
76 target_sources(t_cose
77 PRIVATE
78 "src/t_cose_el3_token_sign.c")
79
80 target_link_libraries(t_cose
81 PRIVATE
82 rmm-lib-arch
83 rmm-lib-debug)
84endif()