diff options
Diffstat (limited to 'lib/ext/t_cose/CMakeLists.txt')
-rw-r--r-- | lib/ext/t_cose/CMakeLists.txt | 186 |
1 files changed, 65 insertions, 121 deletions
diff --git a/lib/ext/t_cose/CMakeLists.txt b/lib/ext/t_cose/CMakeLists.txt index 7b8c560f8d..68f265881c 100644 --- a/lib/ext/t_cose/CMakeLists.txt +++ b/lib/ext/t_cose/CMakeLists.txt @@ -1,127 +1,71 @@ #------------------------------------------------------------------------------- -# Copyright (c) 2019-2020, Arm Limited. All rights reserved. +# Copyright (c) 2020, Arm Limited. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # #------------------------------------------------------------------------------- -cmake_minimum_required(VERSION 3.7) - -#Tell cmake where our modules can be found -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../cmake) - -#Some project global settings -set(T_COSE_DIR "${CMAKE_CURRENT_LIST_DIR}") -get_filename_component(TFM_ROOT_DIR "${T_COSE_DIR}/../../.." ABSOLUTE) - -#Include common stuff to control cmake. -include("Common/BuildSys") - -#Start an embedded project. -embedded_project_start(CONFIG "${TFM_ROOT_DIR}/configs/ConfigDefault.cmake") -project(tfm_t_cose LANGUAGES C) -embedded_project_fixup() - -if (NOT DEFINED ATTEST_INCLUDE_TEST_CODE) - message(FATAL_ERROR "Incomplete build configuration: ATTEST_INCLUDE_TEST_CODE is undefined. ") -endif() - -#Append all our source files to global lists. -list(APPEND ALL_SRC_C_SIGN - "${T_COSE_DIR}/src/t_cose_util.c" - "${T_COSE_DIR}/src/t_cose_parameters.c" - "${T_COSE_DIR}/crypto_adapters/t_cose_psa_crypto.c" - ) - -if (SYMMETRIC_INITIAL_ATTESTATION) - list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_SIGN1") - - list(APPEND ALL_SRC_C_SIGN "${T_COSE_DIR}/src/t_cose_mac0_sign.c") -else() - list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_MAC0") - - list(APPEND ALL_SRC_C_SIGN "${T_COSE_DIR}/src/t_cose_sign1_sign.c") -endif() - -list(APPEND ALL_SRC_C_VERIFY - "${T_COSE_DIR}/src/t_cose_util.c" - "${T_COSE_DIR}/src/t_cose_parameters.c" - "${T_COSE_DIR}/crypto_adapters/t_cose_psa_crypto.c" - ) - -if (SYMMETRIC_INITIAL_ATTESTATION) - list(APPEND ALL_SRC_C_VERIFY "${T_COSE_DIR}/src/t_cose_mac0_verify.c") -else() - list(APPEND ALL_SRC_C_VERIFY "${T_COSE_DIR}/src/t_cose_sign1_verify.c") -endif() - -if (ENABLE_T_COSE_TESTS) - list(APPEND ALL_SRC_C_TEST - "${T_COSE_DIR}/test/run_tests.c" - "${T_COSE_DIR}/test/t_cose_make_psa_test_key.c" - "${T_COSE_DIR}/test/t_cose_make_test_messages.c" - "${T_COSE_DIR}/test/t_cose_sign_verify_test.c" - "${T_COSE_DIR}/test/t_cose_test.c" - ) -endif() - -#Setting include directories -embedded_include_directories(PATH ${T_COSE_DIR}/inc ABSOLUTE) -embedded_include_directories(PATH ${T_COSE_DIR}/../qcbor/inc ABSOLUTE) -embedded_target_include_directories(TARGET tfm_t_cose_sign PATH ${T_COSE_DIR}/src ABSOLUTE APPEND) -embedded_target_include_directories(TARGET tfm_t_cose_verify PATH ${T_COSE_DIR}/src ABSOLUTE APPEND) -if (ENABLE_T_COSE_TESTS) - embedded_target_include_directories(TARGET tfm_t_cose_test PATH ${T_COSE_DIR}/src ABSOLUTE APPEND) -endif() - -#Specify what we build (t_cose_sign and t_cose_verify build as an object library) -add_library(tfm_t_cose_sign OBJECT ${ALL_SRC_C_SIGN}) -add_library(tfm_t_cose_verify OBJECT ${ALL_SRC_C_VERIFY}) -if (ENABLE_T_COSE_TESTS) - add_library(tfm_t_cose_test OBJECT ${ALL_SRC_C_TEST}) -endif() - -#Setting target specific defines - -list(APPEND T_COSE_COMPILE_TIME_CONFIG - "T_COSE_USE_PSA_CRYPTO" - "T_COSE_DISABLE_CONTENT_TYPE" - "T_COSE_USE_PSA_CRYPTO_FROM_TFM" - ) - -if (NOT SYMMETRIC_INITIAL_ATTESTATION) - list(APPEND T_COSE_COMPILE_TIME_CONFIG - "T_COSE_DISABLE_ES384" - "T_COSE_DISABLE_ES512" - "T_COSE_DISABLE_SIGN_VERIFY_TESTS" - ) -endif() - -if (NOT ATTEST_INCLUDE_TEST_CODE) - list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_SHORT_CIRCUIT_SIGN") -endif() - -embedded_set_target_compile_defines(TARGET tfm_t_cose_sign LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND) -embedded_set_target_compile_defines(TARGET tfm_t_cose_verify LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND) -if (ENABLE_T_COSE_TESTS) - embedded_set_target_compile_defines(TARGET tfm_t_cose_test LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND) -endif() - -if (DEFINED CMSE_FLAGS) - embedded_set_target_compile_flags(TARGET tfm_t_cose_sign LANGUAGE C APPEND FLAGS ${CMSE_FLAGS}) - embedded_set_target_compile_flags(TARGET tfm_t_cose_verify LANGUAGE C APPEND FLAGS ${CMSE_FLAGS}) - embedded_set_target_compile_flags(TARGET tfm_t_cose_test LANGUAGE C APPEND FLAGS ${CMSE_FLAGS}) -endif() - -#Set common compiler flags -config_setting_shared_compiler_flags(tfm_t_cose_sign) -config_setting_shared_compiler_flags(tfm_t_cose_verify) -if (ENABLE_T_COSE_TESTS) - config_setting_shared_compiler_flags(tfm_t_cose_test) -endif() - -embedded_project_end(tfm_t_cose_sign) -embedded_project_end(tfm_t_cose_verify) -if (ENABLE_T_COSE_TESTS) - embedded_project_end(tfm_t_cose_test) -endif() +cmake_minimum_required(VERSION 3.13) + +add_library(tfm_t_cose STATIC) + +target_sources(tfm_t_cose + PRIVATE + $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:src/t_cose_mac0_sign.c> + $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:src/t_cose_mac0_verify.c> + $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:src/t_cose_sign1_sign.c> + $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:src/t_cose_sign1_verify.c> + src/t_cose_util.c + src/t_cose_parameters.c + crypto_adapters/t_cose_psa_crypto.c +) + +target_include_directories(tfm_t_cose + PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> +) + +target_link_libraries(tfm_t_cose + PUBLIC + tfm_qcbor + psa_interface +) + +target_compile_definitions(tfm_t_cose + PUBLIC + T_COSE_COMPILE_TIME_CONFIG + T_COSE_USE_PSA_CRYPTO + T_COSE_USE_PSA_CRYPTO_FROM_TFM + T_COSE_DISABLE_CONTENT_TYPE + $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_ES384> + $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_ES512> + $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_SIGN_VERIFY_TESTS> + $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:T_COSE_DISABLE_SIGN1> + $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:T_COSE_DISABLE_MAC0> + $<$<NOT:$<CONFIG:Debug>>:T_COSE_DISABLE_SHORT_CIRCUIT_SIGN> +) + +############################ t_cose test ####################################### + +add_library(tfm_t_cose_test STATIC EXCLUDE_FROM_ALL) + +target_sources(tfm_t_cose_test + PRIVATE + test/run_tests.c + test/t_cose_make_psa_test_key.c + test/t_cose_make_test_messages.c + test/t_cose_sign_verify_test.c + test/t_cose_test.c +) + +target_include_directories(tfm_t_cose_test + PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc> + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/test> +) + +target_link_libraries(tfm_t_cose_test + PRIVATE + tfm_t_cose +) |