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