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#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
53#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
56#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) && \
57 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384)
58#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
59#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
62#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) && \
63 !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512)
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) && \
69 !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255)
70#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
73#if defined(PSA_WANT_ECC_MONTGOMERY_448) && \
74 !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448)
75#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
78#if defined(PSA_WANT_ECC_SECP_R1_192) && \
79 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192)
80#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
81#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
84#if defined(PSA_WANT_ECC_SECP_R1_224) && \
85 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224)
86#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
87#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
90#if defined(PSA_WANT_ECC_SECP_R1_256) && \
91 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256)
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_384) && \
97 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)
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_521) && \
103 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
104#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
105#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
108#if defined(PSA_WANT_ECC_SECP_K1_192) && \
109 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192)
110#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
111#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
114#if defined(PSA_WANT_ECC_SECP_K1_224) && \
115 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224)
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_256) && \
121 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256)
122#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES
123#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES
127#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) && \
128 !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA)
129#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
132#if defined(PSA_WANT_ALG_ECDH) && \
133 !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH)
134#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
137#if defined(PSA_WANT_ALG_ECDSA) && \
138 !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA)
139#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
142#if defined(PSA_WANT_ALG_JPAKE) && \
143 !defined(MBEDTLS_PSA_ACCEL_ALG_JPAKE)
144#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS
148#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) && \
149 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)
150#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
151#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC
154#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) && \
155 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC)
156#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
157#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC
160#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) && \
161 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT)
162#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
165#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) && \
166 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
167#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
170#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) && \
171 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
172#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
176#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
177#undef MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE
181#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE) && \
182 !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
183#define MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES
193#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
194#if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256) || \
195 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
196 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
197#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
198#define MBEDTLS_ECP_DP_BP256R1_ENABLED
202#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
203#if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384) || \
204 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
205 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
206#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
207#define MBEDTLS_ECP_DP_BP384R1_ENABLED
211#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
212#if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512) || \
213 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
214 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
215#define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
216#define MBEDTLS_ECP_DP_BP512R1_ENABLED
220#if defined(PSA_WANT_ECC_MONTGOMERY_255)
221#if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255) || \
222 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
223 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
224#define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
225#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
229#if defined(PSA_WANT_ECC_MONTGOMERY_448)
230#if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448) || \
231 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
232 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
233#define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
234#define MBEDTLS_ECP_DP_CURVE448_ENABLED
238#if defined(PSA_WANT_ECC_SECP_R1_192)
239#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192) || \
240 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
241 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
242#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
243#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
247#if defined(PSA_WANT_ECC_SECP_R1_224)
248#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224) || \
249 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
250 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
251#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
252#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
256#if defined(PSA_WANT_ECC_SECP_R1_256)
257#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
258 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
259 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
260#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
261#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
265#if defined(PSA_WANT_ECC_SECP_R1_384)
266#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384) || \
267 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
268 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
269#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
270#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
274#if defined(PSA_WANT_ECC_SECP_R1_521)
275#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521) || \
276 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
277 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
278#define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
279#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
283#if defined(PSA_WANT_ECC_SECP_K1_192)
284#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192) || \
285 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
286 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
287#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
288#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
292#if defined(PSA_WANT_ECC_SECP_K1_224)
293#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224) || \
294 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
295 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
296#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
297#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
299#error "SECP224K1 is buggy via the PSA API in Mbed TLS."
303#if defined(PSA_WANT_ECC_SECP_K1_256)
304#if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256) || \
305 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES) || \
306 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
307#define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
308#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
324#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
325#if !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA) || \
326 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES) || \
327 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
328#define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
329#define MBEDTLS_ECDSA_DETERMINISTIC
330#define MBEDTLS_HMAC_DRBG_C
332#define MBEDTLS_ECDSA_C
334#define MBEDTLS_BIGNUM_C
335#define MBEDTLS_ASN1_PARSE_C
336#define MBEDTLS_ASN1_WRITE_C
340#if defined(PSA_WANT_ALG_ECDH)
341#if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH) || \
342 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
343 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
344#define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
345#define MBEDTLS_ECDH_C
347#define MBEDTLS_BIGNUM_C
351#if defined(PSA_WANT_ALG_ECDSA)
352#if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA) || \
353 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_WEIERSTRASS_CURVES) || \
354 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
355#define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
356#define MBEDTLS_ECDSA_C
358#define MBEDTLS_BIGNUM_C
359#define MBEDTLS_ASN1_PARSE_C
360#define MBEDTLS_ASN1_WRITE_C
364#if defined(PSA_WANT_ALG_JPAKE)
365#if !defined(MBEDTLS_PSA_ACCEL_ALG_JPAKE) || \
366 !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256) || \
367 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_KEY_TYPES_BASIC)
368#define MBEDTLS_PSA_BUILTIN_PAKE 1
369#define MBEDTLS_PSA_BUILTIN_ALG_JPAKE 1
370#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
371#define MBEDTLS_BIGNUM_C
373#define MBEDTLS_ECJPAKE_C
384#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
385#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) || \
386 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
387 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
388#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
389#define MBEDTLS_ECP_LIGHT
390#define MBEDTLS_BIGNUM_C
394#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC)
395#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC) || \
396 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES) || \
397 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_ALGS)
398#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
399#define MBEDTLS_ECP_LIGHT
400#define MBEDTLS_BIGNUM_C
404#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT)
405#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT) || \
406 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
407#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
408#define MBEDTLS_ECP_LIGHT
409#define MBEDTLS_BIGNUM_C
413#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
414#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT) || \
415 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
416#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
418#define MBEDTLS_BIGNUM_C
422#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE)
423#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE) || \
424 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
425#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
427#define MBEDTLS_BIGNUM_C
432#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE)
433#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE) || \
434 defined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
435#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR_DERIVE 1
436#define MBEDTLS_ECP_LIGHT
437#define MBEDTLS_BIGNUM_C
443#if defined(PSA_WANT_ALG_FFDH)
444#if !defined(MBEDTLS_PSA_ACCEL_ALG_FFDH)
445#define MBEDTLS_PSA_BUILTIN_ALG_FFDH 1
446#define MBEDTLS_BIGNUM_C
450#if defined(PSA_WANT_ALG_HKDF)
451#if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF)
456#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
457#define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
461#if defined(PSA_WANT_ALG_HKDF_EXTRACT)
462#if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT)
467#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
468#define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT 1
472#if defined(PSA_WANT_ALG_HKDF_EXPAND)
473#if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXPAND)
478#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
479#define MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND 1
483#if defined(PSA_WANT_ALG_HMAC)
484#if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
485#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
489#if defined(PSA_WANT_ALG_MD5) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD5)
490#define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
494#if defined(PSA_WANT_ALG_RIPEMD160) && !defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160)
495#define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
496#define MBEDTLS_RIPEMD160_C
499#if defined(PSA_WANT_ALG_RSA_OAEP)
500#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP)
501#define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
503#define MBEDTLS_BIGNUM_C
505#define MBEDTLS_PKCS1_V21
509#if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT)
510#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT)
511#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
513#define MBEDTLS_BIGNUM_C
515#define MBEDTLS_PKCS1_V15
519#if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
520#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN)
521#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
523#define MBEDTLS_BIGNUM_C
525#define MBEDTLS_PKCS1_V15
529#if defined(PSA_WANT_ALG_RSA_PSS)
530#if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PSS)
531#define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
533#define MBEDTLS_BIGNUM_C
535#define MBEDTLS_PKCS1_V21
539#if defined(PSA_WANT_ALG_SHA_1) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_1)
540#define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
541#define MBEDTLS_SHA1_C
544#if defined(PSA_WANT_ALG_SHA_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_224)
545#define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
546#define MBEDTLS_SHA224_C
549#if defined(PSA_WANT_ALG_SHA_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_256)
550#define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
551#define MBEDTLS_SHA256_C
554#if defined(PSA_WANT_ALG_SHA_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_384)
555#define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
556#define MBEDTLS_SHA384_C
559#if defined(PSA_WANT_ALG_SHA_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_512)
560#define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
561#define MBEDTLS_SHA512_C
564#if defined(PSA_WANT_ALG_SHA3_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_224)
565#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_224 1
566#define MBEDTLS_SHA3_C
569#if defined(PSA_WANT_ALG_SHA3_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_256)
570#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_256 1
571#define MBEDTLS_SHA3_C
574#if defined(PSA_WANT_ALG_SHA3_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_384)
575#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_384 1
576#define MBEDTLS_SHA3_C
579#if defined(PSA_WANT_ALG_SHA3_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA3_512)
580#define MBEDTLS_PSA_BUILTIN_ALG_SHA3_512 1
581#define MBEDTLS_SHA3_C
584#if defined(PSA_WANT_ALG_PBKDF2_HMAC)
585#if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_HMAC)
586#define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_HMAC 1
587#define PSA_HAVE_SOFT_PBKDF2_HMAC 1
588#if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
589#define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
594#if defined(PSA_WANT_ALG_TLS12_PRF)
595#if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PRF)
596#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
600#if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS)
601#if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS)
602#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
606#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS)
607#if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_ECJPAKE_TO_PMS)
608#define MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS 1
612#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
613#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_IMPORT)
614#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1
618#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
619#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_EXPORT)
620#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1
624#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
625#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_GENERATE)
626#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
627#define MBEDTLS_GENPRIME
631#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC)
632#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_BASIC)
633#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR_BASIC 1
637#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT)
638#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_IMPORT)
639#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT 1
643#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT)
644#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_EXPORT)
645#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT 1
649#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE)
650#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_GENERATE)
651#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE 1
655#if defined(PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC)
656#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_KEY_PAIR_BASIC)
657#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_BASIC 1
661#if defined(PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY)
662#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DH_PUBLIC_KEY)
663#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY 1
664#define MBEDTLS_BIGNUM_C
668#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
669#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY)
670#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
672#define MBEDTLS_BIGNUM_C
674#define MBEDTLS_PK_PARSE_C
675#define MBEDTLS_PK_WRITE_C
677#define MBEDTLS_ASN1_PARSE_C
678#define MBEDTLS_ASN1_WRITE_C
685#if (defined(PSA_WANT_ALG_CTR) && !defined(MBEDTLS_PSA_ACCEL_ALG_CTR)) || \
686 (defined(PSA_WANT_ALG_CFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_CFB)) || \
687 (defined(PSA_WANT_ALG_OFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_OFB)) || \
688 defined(PSA_WANT_ALG_ECB_NO_PADDING) || \
689 (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
690 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \
691 (defined(PSA_WANT_ALG_CBC_PKCS7) && \
692 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)) || \
693 (defined(PSA_WANT_ALG_CMAC) && !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC))
694#define PSA_HAVE_SOFT_BLOCK_MODE 1
697#if (defined(PSA_WANT_ALG_GCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_GCM)) || \
698 (defined(PSA_WANT_ALG_CCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_CCM))
699#define PSA_HAVE_SOFT_BLOCK_AEAD 1
702#if defined(PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128)
703#if !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_AES_CMAC_PRF_128)
704#define MBEDTLS_PSA_BUILTIN_ALG_PBKDF2_AES_CMAC_PRF_128 1
705#define PSA_HAVE_SOFT_PBKDF2_CMAC 1
709#if defined(PSA_WANT_KEY_TYPE_AES)
710#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
711#define PSA_HAVE_SOFT_KEY_TYPE_AES 1
713#if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
714 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
715 defined(PSA_HAVE_SOFT_BLOCK_AEAD) || \
716 defined(PSA_HAVE_SOFT_PBKDF2_CMAC)
717#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
722#if defined(PSA_WANT_KEY_TYPE_ARIA)
723#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA)
724#define PSA_HAVE_SOFT_KEY_TYPE_ARIA 1
726#if defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
727 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
728 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
729#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
730#define MBEDTLS_ARIA_C
734#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
735#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA)
736#define PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA 1
738#if defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA) || \
739 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
740 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
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_KEY_TYPE_CHACHA20)
758#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20)
759#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
760#define MBEDTLS_CHACHA20_C
767#if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
768 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
769 defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
770 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
771#define PSA_HAVE_SOFT_BLOCK_CIPHER 1
774#if defined(PSA_WANT_ALG_STREAM_CIPHER)
775#define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
778#if defined(PSA_WANT_ALG_CBC_MAC)
779#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_MAC)
780#error "CBC-MAC is not yet supported via the PSA API in Mbed TLS."
781#define MBEDTLS_PSA_BUILTIN_ALG_CBC_MAC 1
785#if defined(PSA_WANT_ALG_CMAC)
786#if !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC) || \
787 defined(PSA_HAVE_SOFT_BLOCK_CIPHER) || \
788 defined(PSA_HAVE_SOFT_PBKDF2_CMAC)
789#define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
790#define MBEDTLS_CMAC_C
794#if defined(PSA_HAVE_SOFT_PBKDF2_HMAC) || \
795 defined(PSA_HAVE_SOFT_PBKDF2_CMAC)
796#define PSA_HAVE_SOFT_PBKDF2 1
799#if defined(PSA_WANT_ALG_CTR)
800#if !defined(MBEDTLS_PSA_ACCEL_ALG_CTR) || \
801 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
802#define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
803#define MBEDTLS_CIPHER_MODE_CTR
807#if defined(PSA_WANT_ALG_CFB)
808#if !defined(MBEDTLS_PSA_ACCEL_ALG_CFB) || \
809 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
810#define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
811#define MBEDTLS_CIPHER_MODE_CFB
815#if defined(PSA_WANT_ALG_OFB)
816#if !defined(MBEDTLS_PSA_ACCEL_ALG_OFB) || \
817 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
818#define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
819#define MBEDTLS_CIPHER_MODE_OFB
823#if defined(PSA_WANT_ALG_ECB_NO_PADDING) && \
824 !defined(MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING)
825#define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
828#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
829#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING) || \
830 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
831#define MBEDTLS_CIPHER_MODE_CBC
832#define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
836#if defined(PSA_WANT_ALG_CBC_PKCS7)
837#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7) || \
838 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
839#define MBEDTLS_CIPHER_MODE_CBC
840#define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
841#define MBEDTLS_CIPHER_PADDING_PKCS7
845#if defined(PSA_WANT_ALG_CCM)
846#if !defined(MBEDTLS_PSA_ACCEL_ALG_CCM) || \
847 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
848 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
849 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
850#define MBEDTLS_PSA_BUILTIN_ALG_CCM 1
851#define MBEDTLS_PSA_BUILTIN_ALG_CCM_STAR_NO_TAG 1
856#if defined(PSA_WANT_ALG_GCM)
857#if !defined(MBEDTLS_PSA_ACCEL_ALG_GCM) || \
858 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
859 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
860 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
861#define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
866#if defined(PSA_WANT_ALG_CHACHA20_POLY1305)
867#if !defined(MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305)
868#if defined(PSA_WANT_KEY_TYPE_CHACHA20)
869#define MBEDTLS_CHACHAPOLY_C
870#define MBEDTLS_CHACHA20_C
871#define MBEDTLS_POLY1305_C
872#define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1