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