1 /*
2  * Copyright (c) 2022, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef __CONFIG_TEST_PSA_API_H__
9 #define __CONFIG_TEST_PSA_API_H__
10 
11 /* Platform Partition Configs */
12 
13 /* Size of input buffer in platform service */
14 #define PLATFORM_SERVICE_INPUT_BUFFER_SIZE     64
15 
16 /* Size of output buffer in platform service */
17 #define PLATFORM_SERVICE_OUTPUT_BUFFER_SIZE    64
18 
19 /* The stack size of the Platform Secure Partition */
20 #define PLATFORM_SP_STACK_SIZE                 0x500
21 
22 /* Disable Non-volatile counter module */
23 #define PLATFORM_NV_COUNTER_MODULE_DISABLED    0
24 
25 /* Crypto Partition Configs */
26 
27 /*
28  * Heap size for the crypto backend
29  * CRYPTO_ENGINE_BUF_SIZE needs to be much larger for PSA API tests.
30  */
31 #define CRYPTO_ENGINE_BUF_SIZE                 0x5000
32 
33 /* The max number of concurrent operations that can be active (allocated) at any time in Crypto */
34 #define CRYPTO_CONC_OPER_NUM                   8
35 
36 /* Enable PSA Crypto random number generator module */
37 #define CRYPTO_RNG_MODULE_ENABLED              1
38 
39 /* Enable PSA Crypto Key module */
40 #define CRYPTO_KEY_MODULE_ENABLED              1
41 
42 /* Enable PSA Crypto AEAD module */
43 #define CRYPTO_AEAD_MODULE_ENABLED             1
44 
45 /* Enable PSA Crypto MAC module */
46 #define CRYPTO_MAC_MODULE_ENABLED              1
47 
48 /* Enable PSA Crypto Hash module */
49 #define CRYPTO_HASH_MODULE_ENABLED             1
50 
51 /* Enable PSA Crypto Cipher module */
52 #define CRYPTO_CIPHER_MODULE_ENABLED           1
53 
54 /* Enable PSA Crypto asymmetric key signature module */
55 #define CRYPTO_ASYM_SIGN_MODULE_ENABLED        1
56 
57 /* Enable PSA Crypto asymmetric key encryption module */
58 #define CRYPTO_ASYM_ENCRYPT_MODULE_ENABLED     1
59 
60 /* Enable PSA Crypto key derivation module */
61 #define CRYPTO_KEY_DERIVATION_MODULE_ENABLED   1
62 
63 /* Default size of the internal scratch buffer used for PSA FF IOVec allocations */
64 #define CRYPTO_IOVEC_BUFFER_SIZE               5120
65 
66 /* Use stored NV seed to provide entropy */
67 #define CRYPTO_NV_SEED                         1
68 
69 /*
70  * Only enable multi-part operations in Hash, MAC, AEAD and symmetric ciphers,
71  * to optimize memory footprint in resource-constrained devices.
72  */
73 #define CRYPTO_SINGLE_PART_FUNCS_DISABLED      0
74 
75 /* The stack size of the Crypto Secure Partition */
76 #define CRYPTO_STACK_SIZE                      0x1B00
77 
78 /* FWU Partition Configs */
79 
80 /* Size of the FWU internal data transfer buffer */
81 #define TFM_FWU_BUF_SIZE                       PSA_FWU_MAX_WRITE_SIZE
82 
83 /* The stack size of the Firmware Update Secure Partition */
84 #define FWU_STACK_SIZE                         0x600
85 
86 /* Attest Partition Configs */
87 
88 /* Include optional claims in initial attestation token */
89 #define ATTEST_INCLUDE_OPTIONAL_CLAIMS         1
90 
91 /* Include COSE key-id in initial attestation token */
92 #define ATTEST_INCLUDE_COSE_KEY_ID             0
93 
94 /* The stack size of the Initial Attestation Secure Partition */
95 #define ATTEST_STACK_SIZE                      0x700
96 
97 /* Set the initial attestation token profile */
98 #define ATTEST_TOKEN_PROFILE_PSA_IOT_1         1
99 
100 /* ITS Partition Configs */
101 
102 /* Create flash FS if it doesn't exist for Internal Trusted Storage partition */
103 #define ITS_CREATE_FLASH_LAYOUT                1
104 
105 /* Enable emulated RAM FS for platforms that don't have flash for Internal Trusted Storage partition */
106 #define ITS_RAM_FS                             0
107 
108 /* Validate filesystem metadata every time it is read from flash */
109 #define ITS_VALIDATE_METADATA_FROM_FLASH       1
110 
111 /* The maximum asset size to be stored in the Internal Trusted Storage */
112 #ifdef PSA_API_TEST_CRYPTO
113 /*
114  * When building for the PSA Crypto API tests, ensure the ITS max asset size is
115  * set to at least the size of the largest asset created by the tests.
116  */
117 #define ITS_MAX_ASSET_SIZE                     1229
118 #else
119 #define ITS_MAX_ASSET_SIZE                     512
120 #endif
121 
122 /*
123  * Size of the ITS internal data transfer buffer
124  * (Default to the max asset size so that all requests can be handled in one iteration.)
125  */
126 #define ITS_BUF_SIZE                           ITS_MAX_ASSET_SIZE
127 
128 /* The maximum number of assets to be stored in the Internal Trusted Storage */
129 #define ITS_NUM_ASSETS                         10
130 
131 /* The stack size of the Internal Trusted Storage Secure Partition */
132 #define ITS_STACK_SIZE                         0x720
133 
134 /* PS Partition Configs */
135 
136 /* Create flash FS if it doesn't exist for Protected Storage partition */
137 #define PS_CREATE_FLASH_LAYOUT                 1
138 
139 /* Enable emulated RAM FS for platforms that don't have flash for Protected Storage partition */
140 #define PS_RAM_FS                              0
141 
142 /* Enable rollback protection for Protected Storage partition */
143 #define PS_ROLLBACK_PROTECTION                 1
144 
145 /* Validate filesystem metadata every time it is read from flash */
146 #define PS_VALIDATE_METADATA_FROM_FLASH        1
147 
148 /* The maximum asset size to be stored in the Protected Storage */
149 #define PS_MAX_ASSET_SIZE                      2048
150 
151 /* The maximum number of assets to be stored in the Protected Storage */
152 #define PS_NUM_ASSETS                          10
153 
154 /* The stack size of the Protected Storage Secure Partition */
155 #define PS_STACK_SIZE                          0x700
156 
157 /* SPM Partition Configs */
158 
159 /* The maximal number of secure services that are connected or requested at the same time */
160 #define CONFIG_TFM_CONN_HANDLE_MAX_NUM         8
161 
162 /* Set the doorbell APIs */
163 #ifdef PSA_API_TEST_IPC
164 /* IPC test suite uses IPC backend */
165 #define CONFIG_TFM_DOORBELL_API                1
166 #else
167 #define CONFIG_TFM_DOORBELL_API                0
168 #endif
169 
170 #endif /* __CONFIG_TEST_PSA_API_H__ */
171