Go to the documentation of this file.
16 #ifndef MBEDTLS_CONFIG_ADJUST_LEGACY_FROM_PSA_H
17 #define MBEDTLS_CONFIG_ADJUST_LEGACY_FROM_PSA_H
22 #if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
23 #define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256
24 #define MBEDTLS_PSA_ACCEL_ALG_ECDSA
25 #define MBEDTLS_PSA_ACCEL_ALG_ECDH
26 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY
27 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC
28 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT
29 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT
30 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE
50 #if (defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) && \
51 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256)) || \
52 (defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) && \
53 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384)) || \
54 (defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) && \
55 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512)) || \
56 (defined(PSA_WANT_ECC_SECP_R1_192) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192)) || \
57 (defined(PSA_WANT_ECC_SECP_R1_224) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224)) || \
58 (defined(PSA_WANT_ECC_SECP_R1_256) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256)) || \
59 (defined(PSA_WANT_ECC_SECP_R1_384) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)) || \
60 (defined(PSA_WANT_ECC_SECP_R1_521) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)) || \
61 (defined(PSA_WANT_ECC_SECP_K1_192) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192)) || \
62 (defined(PSA_WANT_ECC_SECP_K1_224) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224)) || \
63 (defined(PSA_WANT_ECC_SECP_K1_256) && !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256))
64 #define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
65 #define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
68 #if (defined(PSA_WANT_ECC_MONTGOMERY_255) && !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255)) || \
69 (defined(PSA_WANT_ECC_MONTGOMERY_448) && !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448))
70 #define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
74 #if (defined(PSA_WANT_ALG_ECDH) && !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH)) || \
75 (defined(PSA_WANT_ALG_ECDSA) && !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA)) || \
76 (defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) && \
77 !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA)) || \
78 (defined(PSA_WANT_ALG_JPAKE) && !defined(MBEDTLS_PSA_ACCEL_ALG_JPAKE))
79 #define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
83 #if (defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) && \
84 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)) || \
85 (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) && \
86 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC))
87 #define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC
91 #if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
92 #undef MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE
97 #if (defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) && \
98 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)) || \
99 (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) && \
100 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC)) || \
101 (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) && \
102 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT)) || \
103 (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) && \
104 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)) || \
105 (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) && \
106 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE)) || \
107 (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE) && \
108 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE))
109 #define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
119 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
120 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256) || \
121 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
122 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
123 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
124 #define MBEDTLS_ECP_DP_BP256R1_ENABLED
128 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
129 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384) || \
130 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
131 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
132 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
133 #define MBEDTLS_ECP_DP_BP384R1_ENABLED
137 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
138 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512) || \
139 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
140 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
141 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
142 #define MBEDTLS_ECP_DP_BP512R1_ENABLED
146 #if defined(PSA_WANT_ECC_MONTGOMERY_255)
147 #if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255) || \
148 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
149 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
150 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
151 #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
155 #if defined(PSA_WANT_ECC_MONTGOMERY_448)
156 #if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448) || \
157 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
158 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
159 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
160 #define MBEDTLS_ECP_DP_CURVE448_ENABLED
164 #if defined(PSA_WANT_ECC_SECP_R1_192)
165 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192) || \
166 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
167 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
168 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
169 #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
173 #if defined(PSA_WANT_ECC_SECP_R1_224)
174 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224) || \
175 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
176 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
177 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
178 #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
182 #if defined(PSA_WANT_ECC_SECP_R1_256)
183 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
184 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
185 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
186 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
187 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
191 #if defined(PSA_WANT_ECC_SECP_R1_384)
192 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384) || \
193 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
194 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
195 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
196 #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
200 #if defined(PSA_WANT_ECC_SECP_R1_521)
201 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521) || \
202 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
203 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
204 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
205 #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
209 #if defined(PSA_WANT_ECC_SECP_K1_192)
210 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192) || \
211 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
212 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
213 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
214 #define MBEDTLS_ECP_DP_SECP192K1_ENABLED
218 #if defined(PSA_WANT_ECC_SECP_K1_224)
219 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224) || \
220 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
221 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
222 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
223 #define MBEDTLS_ECP_DP_SECP224K1_ENABLED
225 #error "SECP224K1 is buggy via the PSA API in Mbed TLS."
229 #if defined(PSA_WANT_ECC_SECP_K1_256)
230 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256) || \
231 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
232 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
233 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
234 #define MBEDTLS_ECP_DP_SECP256K1_ENABLED
250 #if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
251 #if !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA) || \
252 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES) || \
253 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
254 #define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
255 #define MBEDTLS_ECDSA_DETERMINISTIC
256 #define MBEDTLS_HMAC_DRBG_C
258 #define MBEDTLS_ECDSA_C
259 #define MBEDTLS_ECP_C
260 #define MBEDTLS_BIGNUM_C
261 #define MBEDTLS_ASN1_PARSE_C
262 #define MBEDTLS_ASN1_WRITE_C
266 #if defined(PSA_WANT_ALG_ECDH)
267 #if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH) || \
268 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
269 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
270 #define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
271 #define MBEDTLS_ECDH_C
272 #define MBEDTLS_ECP_C
273 #define MBEDTLS_BIGNUM_C
277 #if defined(PSA_WANT_ALG_ECDSA)
278 #if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA) || \
279 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES) || \
280 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
281 #define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
282 #define MBEDTLS_ECDSA_C
283 #define MBEDTLS_ECP_C
284 #define MBEDTLS_BIGNUM_C
285 #define MBEDTLS_ASN1_PARSE_C
286 #define MBEDTLS_ASN1_WRITE_C
290 #if defined(PSA_WANT_ALG_JPAKE)
291 #if !defined(MBEDTLS_PSA_ACCEL_ALG_JPAKE) || \
292 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
293 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
294 #define MBEDTLS_PSA_BUILTIN_PAKE 1
295 #define MBEDTLS_PSA_BUILTIN_ALG_JPAKE 1
296 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
297 #define MBEDTLS_BIGNUM_C
298 #define MBEDTLS_ECP_C
299 #define MBEDTLS_ECJPAKE_C
310 #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
311 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) || \
312 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
313 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
314 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
318 #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC)
319 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
320 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
321 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
322 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
326 #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT)
327 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
328 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
329 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
333 #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
334 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
335 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
336 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
340 #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
341 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE) || \
342 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
343 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
348 #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
349 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE) || \
350 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
351 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_DERIVE 1
355 #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) || \
356 defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
357 defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
358 defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
359 #define MBEDTLS_ECP_LIGHT
360 #define MBEDTLS_BIGNUM_C
363 #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
364 defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
365 #define MBEDTLS_ECP_C
366 #define MBEDTLS_BIGNUM_C
378 #if (defined(PSA_WANT_DH_RFC7919_2048) && !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_2048)) || \
379 (defined(PSA_WANT_DH_RFC7919_3072) && !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_3072)) || \
380 (defined(PSA_WANT_DH_RFC7919_4096) && !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_4096)) || \
381 (defined(PSA_WANT_DH_RFC7919_6144) && !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_6144)) || \
382 (defined(PSA_WANT_DH_RFC7919_8192) && !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_8192))
383 #define MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_GROUPS
387 #if defined(PSA_WANT_ALG_FFDH) && !defined(MBEDTLS_PSA_ACCEL_ALG_FFDH)
388 #define MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS
392 #if (defined(PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY) && \
393 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_PUBLIC_KEY)) || \
394 (defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC) && \
395 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_BASIC)) || \
396 (defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT) && \
397 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_IMPORT)) || \
398 (defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT) && \
399 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_EXPORT)) || \
400 (defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE) && \
401 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_GENERATE))
402 #define MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_KEY_TYPES
405 #if defined(PSA_WANT_DH_RFC7919_2048)
406 #if !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_2048) || \
407 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS) || \
408 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_KEY_TYPES)
409 #define MBEDTLS_PSA_BUILTIN_DH_RFC7919_2048 1
413 #if defined(PSA_WANT_DH_RFC7919_3072)
414 #if !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_3072) || \
415 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS) || \
416 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_KEY_TYPES)
417 #define MBEDTLS_PSA_BUILTIN_DH_RFC7919_3072 1
421 #if defined(PSA_WANT_DH_RFC7919_4096)
422 #if !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_4096) || \
423 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS) || \
424 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_KEY_TYPES)
425 #define MBEDTLS_PSA_BUILTIN_DH_RFC7919_4096 1
429 #if defined(PSA_WANT_DH_RFC7919_6144)
430 #if !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_6144) || \
431 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS) || \
432 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_KEY_TYPES)
433 #define MBEDTLS_PSA_BUILTIN_DH_RFC7919_6144 1
437 #if defined(PSA_WANT_DH_RFC7919_8192)
438 #if !defined(MBEDTLS_PSA_ACCEL_DH_RFC7919_8192) || \
439 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS) || \
440 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_KEY_TYPES)
441 #define MBEDTLS_PSA_BUILTIN_DH_RFC7919_8192 1
445 #if defined(PSA_WANT_ALG_FFDH)
446 #if !defined(MBEDTLS_PSA_ACCEL_ALG_FFDH) || \
447 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_GROUPS) || \
448 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_KEY_TYPES)
449 #define MBEDTLS_PSA_BUILTIN_ALG_FFDH 1
450 #define MBEDTLS_BIGNUM_C
454 #if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT)
455 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_IMPORT) || \
456 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_GROUPS) || \
457 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS)
458 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT 1
462 #if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT)
463 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_EXPORT) || \
464 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_GROUPS) || \
465 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS)
466 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT 1
470 #if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE)
471 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_GENERATE)
472 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE 1
476 #if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC)
477 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_BASIC) || \
478 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_GROUPS) || \
479 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS)
480 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_BASIC 1
484 #if defined(PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY)
485 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_PUBLIC_KEY) || \
486 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_GROUPS) || \
487 defined(MBEDTLS_PSA_DH_ACCEL_INCOMPLETE_ALGS)
488 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY 1
489 #define MBEDTLS_BIGNUM_C
495 #if defined(PSA_WANT_ALG_HKDF)
496 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF)
501 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
502 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
506 #if defined(PSA_WANT_ALG_HKDF_EXTRACT)
507 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT)
512 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
513 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT 1
517 #if defined(PSA_WANT_ALG_HKDF_EXPAND)
518 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXPAND)
523 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
524 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND 1
528 #if defined(PSA_WANT_ALG_HMAC)
529 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
530 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
534 #if defined(PSA_WANT_ALG_MD5) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD5)
535 #define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
536 #define MBEDTLS_MD5_C
539 #if defined(PSA_WANT_ALG_RIPEMD160) && !defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160)
540 #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
541 #define MBEDTLS_RIPEMD160_C
544 #if defined(PSA_WANT_ALG_RSA_OAEP)
545 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP)
546 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
547 #define MBEDTLS_RSA_C
548 #define MBEDTLS_BIGNUM_C
549 #define MBEDTLS_OID_C
550 #define MBEDTLS_PKCS1_V21
554 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT)
555 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT)
556 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
557 #define MBEDTLS_RSA_C
558 #define MBEDTLS_BIGNUM_C
559 #define MBEDTLS_OID_C
560 #define MBEDTLS_PKCS1_V15
564 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
565 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN)
566 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
567 #define MBEDTLS_RSA_C
568 #define MBEDTLS_BIGNUM_C
569 #define MBEDTLS_OID_C
570 #define MBEDTLS_PKCS1_V15
574 #if defined(PSA_WANT_ALG_RSA_PSS)
575 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PSS)
576 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
577 #define MBEDTLS_RSA_C
578 #define MBEDTLS_BIGNUM_C
579 #define MBEDTLS_OID_C
580 #define MBEDTLS_PKCS1_V21
584 #if defined(PSA_WANT_ALG_SHA_1) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_1)
585 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
586 #define MBEDTLS_SHA1_C
589 #if defined(PSA_WANT_ALG_SHA_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_224)
590 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
591 #define MBEDTLS_SHA224_C
594 #if defined(PSA_WANT_ALG_SHA_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_256)
595 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
596 #define MBEDTLS_SHA256_C
599 #if defined(PSA_WANT_ALG_SHA_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_384)
600 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
601 #define MBEDTLS_SHA384_C
604 #if defined(PSA_WANT_ALG_SHA_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_512)
605 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
606 #define MBEDTLS_SHA512_C
609 #if defined(PSA_WANT_ALG_SHA3_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
610 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_224 1
611 #define MBEDTLS_SHA3_C
614 #if defined(PSA_WANT_ALG_SHA3_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
615 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_256 1
616 #define MBEDTLS_SHA3_C
619 #if defined(PSA_WANT_ALG_SHA3_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
620 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_384 1
621 #define MBEDTLS_SHA3_C
624 #if defined(PSA_WANT_ALG_SHA3_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
625 #define MBEDTLS_PSA_BUILTIN_ALG_SHA3_512 1
626 #define MBEDTLS_SHA3_C
629 #if defined(PSA_WANT_ALG_PBKDF2_HMAC)
630 #if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_HMAC)
631 #define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_HMAC 1
632 #define PSA_HAVE_SOFT_PBKDF2_HMAC 1
633 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
634 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
639 #if defined(PSA_WANT_ALG_TLS12_PRF)
640 #if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PRF)
641 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
645 #if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS)
646 #if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS)
647 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
651 #if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS)
652 #if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_ECJPAKE_TO_PMS)
653 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1
657 #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
658 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
659 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1
663 #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
664 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
665 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1
669 #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
670 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
671 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
672 #define MBEDTLS_GENPRIME
676 #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
677 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_BASIC)
678 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_BASIC 1
682 #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
683 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY)
684 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
685 #define MBEDTLS_RSA_C
686 #define MBEDTLS_BIGNUM_C
687 #define MBEDTLS_OID_C
688 #define MBEDTLS_ASN1_PARSE_C
689 #define MBEDTLS_ASN1_WRITE_C
696 #if (defined(PSA_WANT_ALG_CTR) && !defined(MBEDTLS_PSA_ACCEL_ALG_CTR)) || \
697 (defined(PSA_WANT_ALG_CFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_CFB)) || \
698 (defined(PSA_WANT_ALG_OFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_OFB)) || \
699 (defined(PSA_WANT_ALG_ECB_NO_PADDING) && !defined(MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING)) || \
700 (defined(PSA_WANT_ALG_CBC_NO_PADDING) && !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \
701 (defined(PSA_WANT_ALG_CBC_PKCS7) && !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)) || \
702 (defined(PSA_WANT_ALG_CMAC) && !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC))
703 #define PSA_HAVE_SOFT_BLOCK_MODE 1
706 #if defined(PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128)
707 #if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_AES_CMAC_PRF_128)
708 #define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_AES_CMAC_PRF_128 1
709 #define PSA_HAVE_SOFT_PBKDF2_CMAC 1
713 #if defined(PSA_WANT_KEY_TYPE_AES)
714 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
715 #define PSA_HAVE_SOFT_KEY_TYPE_AES 1
717 #if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
718 defined(PSA_HAVE_SOFT_BLOCK_MODE)
719 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
720 #define MBEDTLS_AES_C
724 #if defined(PSA_WANT_KEY_TYPE_ARIA)
725 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA)
726 #define PSA_HAVE_SOFT_KEY_TYPE_ARIA 1
728 #if defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
729 defined(PSA_HAVE_SOFT_BLOCK_MODE)
730 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
731 #define MBEDTLS_ARIA_C
735 #if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
736 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA)
737 #define PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA 1
739 #if defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA) || \
740 defined(PSA_HAVE_SOFT_BLOCK_MODE)
741 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
742 #define MBEDTLS_CAMELLIA_C
746 #if defined(PSA_WANT_KEY_TYPE_DES)
747 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DES)
748 #define PSA_HAVE_SOFT_KEY_TYPE_DES 1
750 #if defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
751 defined(PSA_HAVE_SOFT_BLOCK_MODE)
752 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
753 #define MBEDTLS_DES_C
757 #if defined(PSA_WANT_ALG_STREAM_CIPHER)
758 #if !defined(MBEDTLS_PSA_ACCEL_ALG_STREAM_CIPHER)
759 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
763 #if defined(PSA_WANT_KEY_TYPE_CHACHA20)
764 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20) || \
765 defined(MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER)
766 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
767 #define MBEDTLS_CHACHA20_C
774 #if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
775 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
776 defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
777 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
778 #define PSA_HAVE_SOFT_BLOCK_CIPHER 1
781 #if defined(PSA_WANT_ALG_CBC_MAC)
782 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_MAC)
783 #error "CBC-MAC is not yet supported via the PSA API in Mbed TLS."
784 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_MAC 1
788 #if defined(PSA_WANT_ALG_CMAC)
789 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC) || \
790 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
791 #define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
792 #define MBEDTLS_CMAC_C
796 #if defined(PSA_HAVE_SOFT_PBKDF2_HMAC) || \
797 defined(PSA_HAVE_SOFT_PBKDF2_CMAC)
798 #define PSA_HAVE_SOFT_PBKDF2 1
801 #if defined(PSA_WANT_ALG_CTR)
802 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CTR) || \
803 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
804 #define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
805 #define MBEDTLS_CIPHER_MODE_CTR
809 #if defined(PSA_WANT_ALG_CFB)
810 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CFB) || \
811 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
812 #define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
813 #define MBEDTLS_CIPHER_MODE_CFB
817 #if defined(PSA_WANT_ALG_OFB)
818 #if !defined(MBEDTLS_PSA_ACCEL_ALG_OFB) || \
819 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
820 #define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
821 #define MBEDTLS_CIPHER_MODE_OFB
825 #if defined(PSA_WANT_ALG_ECB_NO_PADDING) && \
826 !defined(MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING)
827 #define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
830 #if defined(PSA_WANT_ALG_CBC_NO_PADDING)
831 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING) || \
832 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
833 #define MBEDTLS_CIPHER_MODE_CBC
834 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
838 #if defined(PSA_WANT_ALG_CBC_PKCS7)
839 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7) || \
840 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
841 #define MBEDTLS_CIPHER_MODE_CBC
842 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
843 #define MBEDTLS_CIPHER_PADDING_PKCS7
847 #if defined(PSA_WANT_ALG_CCM)
848 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CCM) || \
849 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
850 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
851 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
852 #define MBEDTLS_PSA_BUILTIN_ALG_CCM 1
853 #define MBEDTLS_CCM_C
857 #if defined(PSA_WANT_ALG_CCM_STAR_NO_TAG)
858 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CCM_STAR_NO_TAG) || \
859 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
860 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
861 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
862 #define MBEDTLS_PSA_BUILTIN_ALG_CCM_STAR_NO_TAG 1
863 #define MBEDTLS_CCM_C
867 #if defined(PSA_WANT_ALG_GCM)
868 #if !defined(MBEDTLS_PSA_ACCEL_ALG_GCM) || \
869 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
870 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
871 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
872 #define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
873 #define MBEDTLS_GCM_C
877 #if defined(PSA_WANT_ALG_CHACHA20_POLY1305)
878 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305)
879 #if defined(PSA_WANT_KEY_TYPE_CHACHA20)
880 #define MBEDTLS_CHACHAPOLY_C
881 #define MBEDTLS_CHACHA20_C
882 #define MBEDTLS_POLY1305_C
883 #define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1