Go to the documentation of this file.
28#ifndef MBEDTLS_CONFIG_ADJUST_LEGACY_FROM_PSA_H
29#define MBEDTLS_CONFIG_ADJUST_LEGACY_FROM_PSA_H
34#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
35#define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256
36#define MBEDTLS_PSA_ACCEL_ALG_ECDSA
37#define MBEDTLS_PSA_ACCEL_ALG_ECDH
38#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY
39#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC
40#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT
41#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT
42#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE
62#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) && \
63 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256)
64#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
65#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
68#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) && \
69 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384)
70#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
71#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
74#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) && \
75 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512)
76#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
77#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
80#if defined(PSA_WANT_ECC_MONTGOMERY_255) && \
81 !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255)
82#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
85#if defined(PSA_WANT_ECC_MONTGOMERY_448) && \
86 !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448)
87#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
90#if defined(PSA_WANT_ECC_SECP_R1_192) && \
91 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192)
92#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
93#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
96#if defined(PSA_WANT_ECC_SECP_R1_224) && \
97 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224)
98#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
99#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
102#if defined(PSA_WANT_ECC_SECP_R1_256) && \
103 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256)
104#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
105#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
108#if defined(PSA_WANT_ECC_SECP_R1_384) && \
109 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)
110#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
111#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
114#if defined(PSA_WANT_ECC_SECP_R1_521) && \
115 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
116#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
117#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
120#if defined(PSA_WANT_ECC_SECP_K1_192) && \
121 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192)
122#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
123#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
126#if defined(PSA_WANT_ECC_SECP_K1_224) && \
127 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224)
128#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
129#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
132#if defined(PSA_WANT_ECC_SECP_K1_256) && \
133 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256)
134#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
135#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
139#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) && \
140 !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA)
141#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
144#if defined(PSA_WANT_ALG_ECDH) && \
145 !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH)
146#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
149#if defined(PSA_WANT_ALG_ECDSA) && \
150 !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA)
151#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
154#if defined(PSA_WANT_ALG_JPAKE) && \
155 !defined(MBEDTLS_PSA_ACCEL_ALG_JPAKE)
156#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
160#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) && \
161 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)
162#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
163#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC
166#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) && \
167 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC)
168#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
169#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC
172#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) && \
173 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT)
174#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
177#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) && \
178 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
179#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
182#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) && \
183 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
184#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
188#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
189#undef MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE
193#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE) && \
194 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
195#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
205#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
206#if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256) || \
207 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
208 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
209#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
210#define MBEDTLS_ECP_DP_BP256R1_ENABLED
214#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
215#if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384) || \
216 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
217 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
218#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
219#define MBEDTLS_ECP_DP_BP384R1_ENABLED
223#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
224#if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512) || \
225 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
226 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
227#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
228#define MBEDTLS_ECP_DP_BP512R1_ENABLED
232#if defined(PSA_WANT_ECC_MONTGOMERY_255)
233#if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255) || \
234 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
235 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
236#define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
237#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
241#if defined(PSA_WANT_ECC_MONTGOMERY_448)
242#if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448) || \
243 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
244 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
245#define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
246#define MBEDTLS_ECP_DP_CURVE448_ENABLED
250#if defined(PSA_WANT_ECC_SECP_R1_192)
251#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192) || \
252 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
253 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
254#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
255#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
259#if defined(PSA_WANT_ECC_SECP_R1_224)
260#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224) || \
261 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
262 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
263#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
264#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
268#if defined(PSA_WANT_ECC_SECP_R1_256)
269#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
270 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
271 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
272#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
273#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
277#if defined(PSA_WANT_ECC_SECP_R1_384)
278#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384) || \
279 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
280 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
281#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
282#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
286#if defined(PSA_WANT_ECC_SECP_R1_521)
287#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521) || \
288 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
289 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
290#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
291#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
295#if defined(PSA_WANT_ECC_SECP_K1_192)
296#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192) || \
297 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
298 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
299#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
300#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
304#if defined(PSA_WANT_ECC_SECP_K1_224)
305#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224) || \
306 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
307 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
308#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
309#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
311#error "SECP224K1 is buggy via the PSA API in Mbed TLS."
315#if defined(PSA_WANT_ECC_SECP_K1_256)
316#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256) || \
317 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
318 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
319#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
320#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
336#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
337#if !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA) || \
338 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES) || \
339 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
340#define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
341#define MBEDTLS_ECDSA_DETERMINISTIC
342#define MBEDTLS_HMAC_DRBG_C
344#define MBEDTLS_ECDSA_C
346#define MBEDTLS_BIGNUM_C
347#define MBEDTLS_ASN1_PARSE_C
348#define MBEDTLS_ASN1_WRITE_C
352#if defined(PSA_WANT_ALG_ECDH)
353#if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH) || \
354 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
355 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
356#define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
357#define MBEDTLS_ECDH_C
359#define MBEDTLS_BIGNUM_C
363#if defined(PSA_WANT_ALG_ECDSA)
364#if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA) || \
365 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES) || \
366 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
367#define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
368#define MBEDTLS_ECDSA_C
370#define MBEDTLS_BIGNUM_C
371#define MBEDTLS_ASN1_PARSE_C
372#define MBEDTLS_ASN1_WRITE_C
376#if defined(PSA_WANT_ALG_JPAKE)
377#if !defined(MBEDTLS_PSA_ACCEL_ALG_JPAKE) || \
378 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
379 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
380#define MBEDTLS_PSA_BUILTIN_PAKE 1
381#define MBEDTLS_PSA_BUILTIN_ALG_JPAKE 1
382#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
383#define MBEDTLS_BIGNUM_C
385#define MBEDTLS_ECJPAKE_C
396#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
397#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) || \
398 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
399 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
400#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
401#define MBEDTLS_ECP_LIGHT
402#define MBEDTLS_BIGNUM_C
406#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC)
407#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
408 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
409 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
410#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
411#define MBEDTLS_ECP_LIGHT
412#define MBEDTLS_BIGNUM_C
416#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT)
417#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
418 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
419#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
420#define MBEDTLS_ECP_LIGHT
421#define MBEDTLS_BIGNUM_C
425#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
426#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
427 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
428#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
430#define MBEDTLS_BIGNUM_C
434#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
435#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE) || \
436 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
437#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
439#define MBEDTLS_BIGNUM_C
444#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
445#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE) || \
446 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
447#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_DERIVE 1
448#define MBEDTLS_ECP_LIGHT
449#define MBEDTLS_BIGNUM_C
455#if defined(PSA_WANT_ALG_FFDH)
456#if !defined(MBEDTLS_PSA_ACCEL_ALG_FFDH)
457#define MBEDTLS_PSA_BUILTIN_ALG_FFDH 1
458#define MBEDTLS_BIGNUM_C
462#if defined(PSA_WANT_ALG_HKDF)
463#if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF)
468#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
469#define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
473#if defined(PSA_WANT_ALG_HKDF_EXTRACT)
474#if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT)
479#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
480#define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT 1
484#if defined(PSA_WANT_ALG_HKDF_EXPAND)
485#if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXPAND)
490#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
491#define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND 1
495#if defined(PSA_WANT_ALG_HMAC)
496#if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
497#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
501#if defined(PSA_WANT_ALG_MD5) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD5)
502#define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
506#if defined(PSA_WANT_ALG_RIPEMD160) && !defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160)
507#define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
508#define MBEDTLS_RIPEMD160_C
511#if defined(PSA_WANT_ALG_RSA_OAEP)
512#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP)
513#define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
515#define MBEDTLS_BIGNUM_C
517#define MBEDTLS_PKCS1_V21
521#if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT)
522#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT)
523#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
525#define MBEDTLS_BIGNUM_C
527#define MBEDTLS_PKCS1_V15
531#if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
532#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN)
533#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
535#define MBEDTLS_BIGNUM_C
537#define MBEDTLS_PKCS1_V15
541#if defined(PSA_WANT_ALG_RSA_PSS)
542#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PSS)
543#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
545#define MBEDTLS_BIGNUM_C
547#define MBEDTLS_PKCS1_V21
551#if defined(PSA_WANT_ALG_SHA_1) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_1)
552#define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
553#define MBEDTLS_SHA1_C
556#if defined(PSA_WANT_ALG_SHA_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_224)
557#define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
558#define MBEDTLS_SHA224_C
561#if defined(PSA_WANT_ALG_SHA_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_256)
562#define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
563#define MBEDTLS_SHA256_C
566#if defined(PSA_WANT_ALG_SHA_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_384)
567#define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
568#define MBEDTLS_SHA384_C
571#if defined(PSA_WANT_ALG_SHA_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_512)
572#define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
573#define MBEDTLS_SHA512_C
576#if defined(PSA_WANT_ALG_SHA3_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
577#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_224 1
578#define MBEDTLS_SHA3_C
581#if defined(PSA_WANT_ALG_SHA3_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
582#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_256 1
583#define MBEDTLS_SHA3_C
586#if defined(PSA_WANT_ALG_SHA3_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
587#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_384 1
588#define MBEDTLS_SHA3_C
591#if defined(PSA_WANT_ALG_SHA3_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
592#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_512 1
593#define MBEDTLS_SHA3_C
596#if defined(PSA_WANT_ALG_PBKDF2_HMAC)
597#if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_HMAC)
598#define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_HMAC 1
599#define PSA_HAVE_SOFT_PBKDF2_HMAC 1
600#if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
601#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
606#if defined(PSA_WANT_ALG_TLS12_PRF)
607#if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PRF)
608#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
612#if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS)
613#if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS)
614#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
618#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS)
619#if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_ECJPAKE_TO_PMS)
620#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1
624#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
625#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
626#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1
630#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
631#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
632#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1
636#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
637#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
638#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
639#define MBEDTLS_GENPRIME
643#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
644#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_BASIC)
645#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_BASIC 1
649#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT)
650#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_IMPORT)
651#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT 1
655#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT)
656#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_EXPORT)
657#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT 1
661#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE)
662#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_GENERATE)
663#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE 1
667#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC)
668#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_BASIC)
669#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_BASIC 1
673#if defined(PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY)
674#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_PUBLIC_KEY)
675#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY 1
676#define MBEDTLS_BIGNUM_C
680#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
681#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY)
682#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
684#define MBEDTLS_BIGNUM_C
686#define MBEDTLS_PK_PARSE_C
687#define MBEDTLS_PK_WRITE_C
689#define MBEDTLS_ASN1_PARSE_C
690#define MBEDTLS_ASN1_WRITE_C
697#if (defined(PSA_WANT_ALG_CTR) && !defined(MBEDTLS_PSA_ACCEL_ALG_CTR)) || \
698 (defined(PSA_WANT_ALG_CFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_CFB)) || \
699 (defined(PSA_WANT_ALG_OFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_OFB)) || \
700 defined(PSA_WANT_ALG_ECB_NO_PADDING) || \
701 (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
702 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \
703 (defined(PSA_WANT_ALG_CBC_PKCS7) && \
704 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)) || \
705 (defined(PSA_WANT_ALG_CMAC) && !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC))
706#define PSA_HAVE_SOFT_BLOCK_MODE 1
709#if (defined(PSA_WANT_ALG_GCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_GCM)) || \
710 (defined(PSA_WANT_ALG_CCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_CCM))
711#define PSA_HAVE_SOFT_BLOCK_AEAD 1
714#if defined(PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128)
715#if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_AES_CMAC_PRF_128)
716#define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_AES_CMAC_PRF_128 1
717#define PSA_HAVE_SOFT_PBKDF2_CMAC 1
721#if defined(PSA_WANT_KEY_TYPE_AES)
722#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
723#define PSA_HAVE_SOFT_KEY_TYPE_AES 1
725#if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
726 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
727 defined(PSA_HAVE_SOFT_BLOCK_AEAD) || \
728 defined(PSA_HAVE_SOFT_PBKDF2_CMAC)
729#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
734#if defined(PSA_WANT_KEY_TYPE_ARIA)
735#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA)
736#define PSA_HAVE_SOFT_KEY_TYPE_ARIA 1
738#if defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
739 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
740 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
741#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
742#define MBEDTLS_ARIA_C
746#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
747#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA)
748#define PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA 1
750#if defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA) || \
751 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
752 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
753#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
754#define MBEDTLS_CAMELLIA_C
758#if defined(PSA_WANT_KEY_TYPE_DES)
759#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DES)
760#define PSA_HAVE_SOFT_KEY_TYPE_DES 1
762#if defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
763 defined(PSA_HAVE_SOFT_BLOCK_MODE)
764#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
769#if defined(PSA_WANT_KEY_TYPE_CHACHA20)
770#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20)
771#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
772#define MBEDTLS_CHACHA20_C
779#if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
780 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
781 defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
782 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
783#define PSA_HAVE_SOFT_BLOCK_CIPHER 1
786#if defined(PSA_WANT_ALG_STREAM_CIPHER)
787#define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
790#if defined(PSA_WANT_ALG_CBC_MAC)
791#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_MAC)
792#error "CBC-MAC is not yet supported via the PSA API in Mbed TLS."
793#define MBEDTLS_PSA_BUILTIN_ALG_CBC_MAC 1
797#if defined(PSA_WANT_ALG_CMAC)
798#if !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC) || \
799 defined(PSA_HAVE_SOFT_BLOCK_CIPHER) || \
800 defined(PSA_HAVE_SOFT_PBKDF2_CMAC)
801#define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
802#define MBEDTLS_CMAC_C
806#if defined(PSA_HAVE_SOFT_PBKDF2_HMAC) || \
807 defined(PSA_HAVE_SOFT_PBKDF2_CMAC)
808#define PSA_HAVE_SOFT_PBKDF2 1
811#if defined(PSA_WANT_ALG_CTR)
812#if !defined(MBEDTLS_PSA_ACCEL_ALG_CTR) || \
813 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
814#define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
815#define MBEDTLS_CIPHER_MODE_CTR
819#if defined(PSA_WANT_ALG_CFB)
820#if !defined(MBEDTLS_PSA_ACCEL_ALG_CFB) || \
821 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
822#define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
823#define MBEDTLS_CIPHER_MODE_CFB
827#if defined(PSA_WANT_ALG_OFB)
828#if !defined(MBEDTLS_PSA_ACCEL_ALG_OFB) || \
829 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
830#define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
831#define MBEDTLS_CIPHER_MODE_OFB
835#if defined(PSA_WANT_ALG_ECB_NO_PADDING) && \
836 !defined(MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING)
837#define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
840#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
841#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING) || \
842 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
843#define MBEDTLS_CIPHER_MODE_CBC
844#define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
848#if defined(PSA_WANT_ALG_CBC_PKCS7)
849#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7) || \
850 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
851#define MBEDTLS_CIPHER_MODE_CBC
852#define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
853#define MBEDTLS_CIPHER_PADDING_PKCS7
857#if defined(PSA_WANT_ALG_CCM)
858#if !defined(MBEDTLS_PSA_ACCEL_ALG_CCM) || \
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 1
863#define MBEDTLS_PSA_BUILTIN_ALG_CCM_STAR_NO_TAG 1
868#if defined(PSA_WANT_ALG_GCM)
869#if !defined(MBEDTLS_PSA_ACCEL_ALG_GCM) || \
870 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
871 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
872 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
873#define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
878#if defined(PSA_WANT_ALG_CHACHA20_POLY1305)
879#if !defined(MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305)
880#if defined(PSA_WANT_KEY_TYPE_CHACHA20)
881#define MBEDTLS_CHACHAPOLY_C
882#define MBEDTLS_CHACHA20_C
883#define MBEDTLS_POLY1305_C
884#define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1