1#-------------------------------------------------------------------------------
2# Copyright (c) 2020-2023, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8if (NOT TFM_PARTITION_INITIAL_ATTESTATION)
9    return()
10endif()
11
12cmake_minimum_required(VERSION 3.21)
13
14configure_file(${CMAKE_SOURCE_DIR}/interface/include/psa/initial_attestation.h.in
15               ${CMAKE_BINARY_DIR}/generated/interface/include/psa/initial_attestation.h)
16
17add_library(tfm_psa_rot_partition_attestation STATIC)
18
19add_dependencies(tfm_psa_rot_partition_attestation manifest_tool)
20
21target_sources(tfm_psa_rot_partition_attestation PRIVATE
22    tfm_attest.c
23    tfm_attest_req_mngr.c
24    attest_core.c
25    attest_boot_data.c
26    $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:attest_asymmetric_key.c>
27    $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:attest_symmetric_key.c>
28    attest_token_encode.c
29)
30
31# The generated sources
32target_sources(tfm_psa_rot_partition_attestation
33    PRIVATE
34        ${CMAKE_BINARY_DIR}/generated/secure_fw/partitions/initial_attestation/auto_generated/intermedia_tfm_initial_attestation.c
35)
36target_sources(tfm_partitions
37    INTERFACE
38        ${CMAKE_BINARY_DIR}/generated/secure_fw/partitions/initial_attestation/auto_generated/load_info_tfm_initial_attestation.c
39)
40
41# Set include directory
42target_include_directories(tfm_psa_rot_partition_attestation
43    PUBLIC
44        .
45    PRIVATE
46        ${CMAKE_BINARY_DIR}/generated/secure_fw/partitions/initial_attestation
47)
48target_include_directories(tfm_partitions
49    INTERFACE
50        ${CMAKE_BINARY_DIR}/generated/secure_fw/partitions/initial_attestation
51)
52
53target_link_libraries(tfm_psa_rot_partition_attestation
54    PRIVATE
55        platform_s
56        tfm_config
57        tfm_t_cose_s
58        tfm_sprt
59        tfm_boot_status
60        qcbor
61)
62
63target_compile_definitions(tfm_psa_rot_partition_attestation
64    PRIVATE
65        $<$<BOOL:${ATTEST_INCLUDE_TEST_CODE}>:INCLUDE_TEST_CODE>
66        $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:SYMMETRIC_INITIAL_ATTESTATION>
67        $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_ATTEST_HAL}>>:CLAIM_VALUE_CHECK>
68        $<$<NOT:$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>>:ATTEST_KEY_BITS=${ATTEST_KEY_BITS}>
69)
70
71########################### Attest defs ########################################
72
73add_library(tfm_attestation_defs INTERFACE)
74
75target_include_directories(tfm_attestation_defs
76    INTERFACE
77        .
78        ${CMAKE_BINARY_DIR}/generated/interface/include/
79)
80
81target_link_libraries(tfm_attestation_defs
82    INTERFACE
83        tfm_config
84)
85
86############################ Partition Defs ####################################
87
88target_link_libraries(tfm_partitions
89    INTERFACE
90        tfm_psa_rot_partition_attestation
91)
92
93
94target_compile_definitions(tfm_config
95    INTERFACE
96        TFM_PARTITION_INITIAL_ATTESTATION
97)
98