Loading...
Searching...
No Matches
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
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
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
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
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)
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
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
548#define MBEDTLS_BIGNUM_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
558#define MBEDTLS_BIGNUM_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
568#define MBEDTLS_BIGNUM_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
578#define MBEDTLS_BIGNUM_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
686#define MBEDTLS_BIGNUM_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
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
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
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
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
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