1 /* 2 * Copyright (c) 2019-2022, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8 #ifndef CRYPTO_ACCELERATOR_CONF_H 9 #define CRYPTO_ACCELERATOR_CONF_H 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif /* __cplusplus */ 14 15 /****************************************************************/ 16 /* Require built-in implementations based on PSA requirements */ 17 /****************************************************************/ 18 19 #define PSA_WANT_KEY_TYPE_AES 1 20 21 /* The CC312 does not support CFB mode */ 22 #ifdef PSA_WANT_ALG_CFB 23 #undef PSA_WANT_ALG_CFB 24 #endif /* PSA_WANT_ALG_CFB */ 25 26 #ifdef LEGACY_DRIVER_API_ENABLED 27 28 #ifdef PSA_WANT_KEY_TYPE_AES 29 #define MBEDTLS_AES_ALT 30 #define MBEDTLS_AES_SETKEY_ENC_ALT 31 #define MBEDTLS_AES_SETKEY_DEC_ALT 32 #define MBEDTLS_AES_ENCRYPT_ALT 33 #define MBEDTLS_AES_DECRYPT_ALT 34 #endif /* PSA_WANT_KEY_TYPE_AES */ 35 36 #ifdef PSA_WANT_KEY_TYPE_ARIA 37 #define MBEDTLS_ARIA_ALT 38 #endif /* PSA_WANT_KEY_TYPE_ARIA */ 39 40 #ifdef PSA_WANT_ALG_CCM 41 #define MBEDTLS_CCM_ALT 42 #endif /* PSA_WANT_ALG_CCM */ 43 44 #ifdef PSA_WANT_KEY_TYPE_CHACHA20 45 #define MBEDTLS_CHACHA20_ALT 46 #ifdef PSA_WANT_ALG_CHACHA20_POLY1305 47 #define MBEDTLS_CHACHAPOLY_ALT 48 #endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ 49 #endif /* PSA_WANT_KEY_TYPE_CHACHA20 */ 50 51 #ifdef PSA_WANT_ALG_CMAC 52 #define MBEDTLS_CMAC_ALT 53 #endif /* PSA_WANT_ALG_CMAC */ 54 55 #ifdef PSA_WANT_ALG_ECDH 56 #define MBEDTLS_ECDH_GEN_PUBLIC_ALT 57 #define MBEDTLS_ECDH_COMPUTE_SHARED_ALT 58 #endif /* PSA_WANT_ALG_ECDH */ 59 60 #ifdef PSA_WANT_ALG_ECDSA 61 #define MBEDTLS_ECDSA_VERIFY_ALT 62 #define MBEDTLS_ECDSA_SIGN_ALT 63 64 #ifndef CRYPTO_HW_ACCELERATOR_OTP_PROVISIONING 65 #define MBEDTLS_ECDSA_GENKEY_ALT 66 #endif 67 #endif /* PSA_WANT_ALG_ECDSA */ 68 69 #ifdef PSA_WANT_ALG_GCM 70 #define MBEDTLS_GCM_ALT 71 #endif /* PSA_WANT_ALG_GCM */ 72 73 #ifdef PSA_WANT_ALG_SHA_1 74 #define MBEDTLS_SHA1_ALT 75 #define MBEDTLS_SHA1_PROCESS_ALT 76 #endif /* PSA_WANT_ALG_SHA_1 */ 77 78 #ifdef PSA_WANT_ALG_SHA_256 79 #define MBEDTLS_SHA256_ALT 80 #define MBEDTLS_SHA256_PROCESS_ALT 81 #else 82 #endif /* PSA_WANT_ALG_SHA_256 */ 83 84 #else /* LEGACY_DRIVER_API_ENABLED */ 85 86 #ifdef PSA_WANT_KEY_TYPE_AES 87 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_AES 88 #endif 89 90 #ifdef PSA_WANT_KEY_TYPE_CHACHA20 91 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 92 #endif 93 94 #ifdef PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC 95 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY 96 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC 97 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT 98 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT 99 #endif 100 101 #ifdef PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC 102 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_BASIC 103 #endif 104 105 #ifdef PSA_WANT_ALG_ECDH 106 #define MBEDTLS_PSA_ACCEL_ALG_ECDH 107 #endif 108 109 #ifdef PSA_WANT_ALG_ECDSA 110 #define MBEDTLS_PSA_ACCEL_ALG_ECDSA 111 #endif 112 113 #ifdef PSA_WANT_ALG_DETERMINISTIC_ECDSA 114 #define MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA 115 #define MBEDTLS_HMAC_DRBG_C 116 #define MBEDTLS_MD_C 117 #define MBEDTLS_MD_CAN_SHA256 118 #endif 119 120 #ifdef PSA_WANT_ALG_CBC_NO_PADDING 121 #define MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING 122 #endif 123 124 #ifdef PSA_WANT_ALG_CBC_PKCS7 125 #define MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7 126 #endif 127 128 #ifdef PSA_WANT_ALG_ECB_NO_PADDING 129 #define MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING 130 #endif 131 132 #ifdef PSA_WANT_ALG_CTR 133 #define MBEDTLS_PSA_ACCEL_ALG_CTR 134 #endif 135 136 #ifdef PSA_WANT_ALG_OFB 137 #define MBEDTLS_PSA_ACCEL_ALG_OFB 138 #endif 139 140 #ifdef PSA_WANT_ALG_CCM 141 #define MBEDTLS_PSA_ACCEL_ALG_CCM 142 #endif 143 144 #ifdef PSA_WANT_ALG_GCM 145 #define MBEDTLS_PSA_ACCEL_ALG_GCM 146 #define MBEDTLS_GCM_C 147 #endif 148 149 #ifdef PSA_WANT_ALG_CMAC 150 #define MBEDTLS_PSA_ACCEL_ALG_CMAC 151 #endif 152 153 #ifdef PSA_WANT_ALG_HMAC 154 #define MBEDTLS_PSA_ACCEL_ALG_HMAC 155 #endif 156 157 #ifdef PSA_WANT_ALG_CHACHA20_POLY1305 158 #define MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305 159 #endif 160 161 #ifdef PSA_WANT_ALG_SHA_1 162 #define MBEDTLS_PSA_ACCEL_ALG_SHA_1 163 #endif 164 165 #ifdef PSA_WANT_ALG_SHA_224 166 #define MBEDTLS_PSA_ACCEL_ALG_SHA_224 167 #endif 168 169 #ifdef PSA_WANT_ALG_SHA_256 170 #define MBEDTLS_PSA_ACCEL_ALG_SHA_256 171 #endif 172 173 #ifdef PSA_WANT_ALG_RSA_OAEP 174 #define MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP 175 #define MBEDTLS_PKCS1_V21 176 #endif 177 178 #ifdef PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 179 #define MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT 180 #define MBEDTLS_PKCS1_V15 181 #endif 182 183 #ifdef PSA_WANT_ALG_RSA_PKCS1V15_SIGN 184 #define MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN 185 #define MBEDTLS_PKCS1_V15 186 #endif 187 188 #ifdef PSA_WANT_ALG_RSA_PSS 189 #define MBEDTLS_PSA_ACCEL_ALG_RSA_PSS 190 #define MBEDTLS_PKCS1_V21 191 #endif 192 193 #endif /* LEGACY_DRIVER_API_ENABLED */ 194 195 #if defined(PSA_WANT_ALG_RSA_OAEP) || \ 196 defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT) || \ 197 defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN) || \ 198 defined(PSA_WANT_ALG_RSA_PSS) || \ 199 defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC) || \ 200 defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) 201 #ifdef LEGACY_DRIVER_API_ENABLED 202 #define MBEDTLS_RSA_ALT 203 #define MBEDTLS_PK_RSA_ALT_SUPPORT 204 #endif /* LEGACY_DRIVER_API_ENABLED */ 205 #define MBEDTLS_GENPRIME 206 #endif 207 208 #ifdef __cplusplus 209 } 210 #endif /* __cplusplus */ 211 212 #endif /* CRYPTO_ACCELERATOR_CONF_H */ 213