30 #ifndef MBEDTLS_CONFIG_PSA_H
31 #define MBEDTLS_CONFIG_PSA_H
33 #if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
34 #if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE)
35 #include MBEDTLS_PSA_CRYPTO_CONFIG_FILE
41 #if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE)
42 #include MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE
55 #if defined(PSA_WANT_ALG_ECDSA_ANY) && !defined(PSA_WANT_ALG_ECDSA)
56 #define PSA_WANT_ALG_ECDSA PSA_WANT_ALG_ECDSA_ANY
57 #elif !defined(PSA_WANT_ALG_ECDSA_ANY) && defined(PSA_WANT_ALG_ECDSA)
58 #define PSA_WANT_ALG_ECDSA_ANY PSA_WANT_ALG_ECDSA
61 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW) && !defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
62 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW
63 #elif !defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW) && defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
64 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW PSA_WANT_ALG_RSA_PKCS1V15_SIGN
67 #if defined(PSA_WANT_ALG_RSA_PSS_ANY_SALT) && !defined(PSA_WANT_ALG_RSA_PSS)
68 #define PSA_WANT_ALG_RSA_PSS PSA_WANT_ALG_RSA_PSS_ANY_SALT
69 #elif !defined(PSA_WANT_ALG_RSA_PSS_ANY_SALT) && defined(PSA_WANT_ALG_RSA_PSS)
70 #define PSA_WANT_ALG_RSA_PSS_ANY_SALT PSA_WANT_ALG_RSA_PSS
79 #if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
81 #if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
82 #if !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA)
83 #define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
84 #define MBEDTLS_ECDSA_DETERMINISTIC
85 #define MBEDTLS_ECDSA_C
86 #define MBEDTLS_HMAC_DRBG_C
91 #if defined(PSA_WANT_ALG_ECDH)
92 #if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH)
93 #define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
94 #define MBEDTLS_ECDH_C
96 #define MBEDTLS_BIGNUM_C
100 #if defined(PSA_WANT_ALG_ECDSA)
101 #if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA)
102 #define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
103 #define MBEDTLS_ECDSA_C
104 #define MBEDTLS_ECP_C
105 #define MBEDTLS_BIGNUM_C
106 #define MBEDTLS_ASN1_PARSE_C
107 #define MBEDTLS_ASN1_WRITE_C
111 #if defined(PSA_WANT_ALG_HKDF)
112 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF)
117 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
118 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
122 #if defined(PSA_WANT_ALG_HMAC)
123 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
124 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
128 #if defined(PSA_WANT_ALG_MD2) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD2)
129 #define MBEDTLS_PSA_BUILTIN_ALG_MD2 1
130 #define MBEDTLS_MD2_C
133 #if defined(PSA_WANT_ALG_MD4) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD4)
134 #define MBEDTLS_PSA_BUILTIN_ALG_MD4 1
135 #define MBEDTLS_MD4_C
138 #if defined(PSA_WANT_ALG_MD5) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD5)
139 #define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
140 #define MBEDTLS_MD5_C
143 #if defined(PSA_WANT_ALG_RIPEMD160) && !defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160)
144 #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
145 #define MBEDTLS_RIPEMD160_C
148 #if defined(PSA_WANT_ALG_RSA_OAEP)
149 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP)
150 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
151 #define MBEDTLS_RSA_C
152 #define MBEDTLS_BIGNUM_C
153 #define MBEDTLS_OID_C
154 #define MBEDTLS_PKCS1_V21
159 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT)
160 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT)
161 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
162 #define MBEDTLS_RSA_C
163 #define MBEDTLS_BIGNUM_C
164 #define MBEDTLS_OID_C
165 #define MBEDTLS_PKCS1_V15
169 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
170 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN)
171 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
172 #define MBEDTLS_RSA_C
173 #define MBEDTLS_BIGNUM_C
174 #define MBEDTLS_OID_C
175 #define MBEDTLS_PKCS1_V15
180 #if defined(PSA_WANT_ALG_RSA_PSS)
181 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PSS)
182 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
183 #define MBEDTLS_RSA_C
184 #define MBEDTLS_BIGNUM_C
185 #define MBEDTLS_OID_C
186 #define MBEDTLS_PKCS1_V21
191 #if defined(PSA_WANT_ALG_SHA_1) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_1)
192 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
193 #define MBEDTLS_SHA1_C
196 #if defined(PSA_WANT_ALG_SHA_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_224)
197 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
198 #define MBEDTLS_SHA256_C
201 #if defined(PSA_WANT_ALG_SHA_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_256)
202 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
203 #define MBEDTLS_SHA256_C
206 #if defined(PSA_WANT_ALG_SHA_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_384)
207 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
208 #define MBEDTLS_SHA512_C
211 #if defined(PSA_WANT_ALG_SHA_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_512)
212 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
213 #define MBEDTLS_SHA512_C
216 #if defined(PSA_WANT_ALG_TLS12_PRF)
217 #if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PRF)
218 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
222 #if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS)
223 #if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS)
224 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
228 #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR)
229 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR)
230 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR 1
231 #define MBEDTLS_ECP_C
232 #define MBEDTLS_BIGNUM_C
236 #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
237 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)
238 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
239 #define MBEDTLS_ECP_C
240 #define MBEDTLS_BIGNUM_C
244 #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR)
245 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR)
246 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR 1
247 #define MBEDTLS_RSA_C
248 #define MBEDTLS_BIGNUM_C
249 #define MBEDTLS_OID_C
250 #define MBEDTLS_GENPRIME
251 #define MBEDTLS_PK_PARSE_C
252 #define MBEDTLS_PK_WRITE_C
254 #define MBEDTLS_ASN1_PARSE_C
255 #define MBEDTLS_ASN1_WRITE_C
259 #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
260 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY)
261 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
262 #define MBEDTLS_RSA_C
263 #define MBEDTLS_BIGNUM_C
264 #define MBEDTLS_OID_C
265 #define MBEDTLS_PK_PARSE_C
266 #define MBEDTLS_PK_WRITE_C
268 #define MBEDTLS_ASN1_PARSE_C
269 #define MBEDTLS_ASN1_WRITE_C
276 #if (defined(PSA_WANT_ALG_CTR) && !defined(MBEDTLS_PSA_ACCEL_ALG_CTR)) || \
277 (defined(PSA_WANT_ALG_CFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_CFB)) || \
278 (defined(PSA_WANT_ALG_OFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_OFB)) || \
279 defined(PSA_WANT_ALG_ECB_NO_PADDING) || \
280 (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
281 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \
282 (defined(PSA_WANT_ALG_CBC_PKCS7) && \
283 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)) || \
284 (defined(PSA_WANT_ALG_CMAC) && !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC))
285 #define PSA_HAVE_SOFT_BLOCK_MODE 1
288 #if (defined(PSA_WANT_ALG_GCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_GCM)) || \
289 (defined(PSA_WANT_ALG_CCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_CCM))
290 #define PSA_HAVE_SOFT_BLOCK_AEAD 1
293 #if defined(PSA_WANT_KEY_TYPE_AES)
294 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
295 #define PSA_HAVE_SOFT_KEY_TYPE_AES 1
297 #if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
298 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
299 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
300 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
301 #define MBEDTLS_AES_C
305 #if defined(PSA_WANT_KEY_TYPE_ARC4)
306 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARC4)
307 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4 1
308 #define MBEDTLS_ARC4_C
312 #if defined(PSA_WANT_KEY_TYPE_ARIA)
313 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA)
314 #define PSA_HAVE_SOFT_KEY_TYPE_ARIA 1
316 #if defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
317 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
318 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
319 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
320 #define MBEDTLS_ARIA_C
324 #if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
325 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA)
326 #define PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA 1
328 #if defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA) || \
329 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
330 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
331 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
332 #define MBEDTLS_CAMELLIA_C
336 #if defined(PSA_WANT_KEY_TYPE_DES)
337 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DES)
338 #define PSA_HAVE_SOFT_KEY_TYPE_DES 1
340 #if defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
341 defined(PSA_HAVE_SOFT_BLOCK_MODE)
342 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
343 #define MBEDTLS_DES_C
347 #if defined(PSA_WANT_KEY_TYPE_CHACHA20)
348 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20)
349 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
350 #define MBEDTLS_CHACHA20_C
357 #if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
358 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
359 defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
360 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
361 #define PSA_HAVE_SOFT_BLOCK_CIPHER 1
364 #if defined(PSA_WANT_ALG_STREAM_CIPHER)
365 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
368 #if defined(PSA_WANT_ALG_CBC_MAC)
369 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_MAC)
370 #error "CBC-MAC is not yet supported via the PSA API in Mbed TLS."
371 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_MAC 1
375 #if defined(PSA_WANT_ALG_CMAC)
376 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC) || \
377 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
378 #define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
379 #define MBEDTLS_CMAC_C
383 #if defined(PSA_WANT_ALG_CTR)
384 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CTR) || \
385 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
386 #define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
387 #define MBEDTLS_CIPHER_MODE_CTR
391 #if defined(PSA_WANT_ALG_CFB)
392 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CFB) || \
393 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
394 #define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
395 #define MBEDTLS_CIPHER_MODE_CFB
399 #if defined(PSA_WANT_ALG_OFB)
400 #if !defined(MBEDTLS_PSA_ACCEL_ALG_OFB) || \
401 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
402 #define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
403 #define MBEDTLS_CIPHER_MODE_OFB
407 #if defined(PSA_WANT_ALG_ECB_NO_PADDING) && \
408 !defined(MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING)
409 #define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
412 #if defined(PSA_WANT_ALG_CBC_NO_PADDING)
413 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING) || \
414 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
415 #define MBEDTLS_CIPHER_MODE_CBC
416 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
420 #if defined(PSA_WANT_ALG_CBC_PKCS7)
421 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7) || \
422 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
423 #define MBEDTLS_CIPHER_MODE_CBC
424 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
425 #define MBEDTLS_CIPHER_PADDING_PKCS7
429 #if defined(PSA_WANT_ALG_CCM)
430 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CCM) || \
431 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
432 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
433 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
434 #define MBEDTLS_PSA_BUILTIN_ALG_CCM 1
435 #define MBEDTLS_CCM_C
439 #if defined(PSA_WANT_ALG_GCM)
440 #if !defined(MBEDTLS_PSA_ACCEL_ALG_GCM) || \
441 defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
442 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
443 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
444 #define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
445 #define MBEDTLS_GCM_C
449 #if defined(PSA_WANT_ALG_CHACHA20_POLY1305)
450 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305)
451 #if defined(PSA_WANT_KEY_TYPE_CHACHA20)
452 #define MBEDTLS_CHACHAPOLY_C
453 #define MBEDTLS_CHACHA20_C
454 #define MBEDTLS_POLY1305_C
455 #define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1
460 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
461 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256)
462 #define MBEDTLS_ECP_DP_BP256R1_ENABLED
463 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
467 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
468 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384)
469 #define MBEDTLS_ECP_DP_BP384R1_ENABLED
470 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
474 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
475 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512)
476 #define MBEDTLS_ECP_DP_BP512R1_ENABLED
477 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
481 #if defined(PSA_WANT_ECC_MONTGOMERY_255)
482 #if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255)
483 #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
484 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
488 #if defined(PSA_WANT_ECC_MONTGOMERY_448)
489 #if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448)
494 #error "Curve448 is not yet supported via the PSA API in Mbed TLS."
495 #define MBEDTLS_ECP_DP_CURVE448_ENABLED
496 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
500 #if defined(PSA_WANT_ECC_SECP_R1_192)
501 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192)
502 #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
503 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
507 #if defined(PSA_WANT_ECC_SECP_R1_224)
508 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224)
509 #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
510 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
514 #if defined(PSA_WANT_ECC_SECP_R1_256)
515 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256)
516 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
517 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
521 #if defined(PSA_WANT_ECC_SECP_R1_384)
522 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)
523 #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
524 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
528 #if defined(PSA_WANT_ECC_SECP_R1_521)
529 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
530 #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
531 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
535 #if defined(PSA_WANT_ECC_SECP_K1_192)
536 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192)
537 #define MBEDTLS_ECP_DP_SECP192K1_ENABLED
538 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
542 #if defined(PSA_WANT_ECC_SECP_K1_224)
543 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224)
548 #error "SECP224K1 is buggy via the PSA API in Mbed TLS."
549 #define MBEDTLS_ECP_DP_SECP224K1_ENABLED
550 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
554 #if defined(PSA_WANT_ECC_SECP_K1_256)
555 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256)
556 #define MBEDTLS_ECP_DP_SECP256K1_ENABLED
557 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
574 #if defined(MBEDTLS_CCM_C)
575 #define MBEDTLS_PSA_BUILTIN_ALG_CCM 1
576 #define PSA_WANT_ALG_CCM 1
579 #if defined(MBEDTLS_CMAC_C)
580 #define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
581 #define PSA_WANT_ALG_CMAC 1
584 #if defined(MBEDTLS_ECDH_C)
585 #define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
586 #define PSA_WANT_ALG_ECDH 1
589 #if defined(MBEDTLS_ECDSA_C)
590 #define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
591 #define PSA_WANT_ALG_ECDSA 1
592 #define PSA_WANT_ALG_ECDSA_ANY 1
595 #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
596 #define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
597 #define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
602 #if defined(MBEDTLS_ECP_C)
603 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR 1
604 #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
605 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
606 #define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
609 #if defined(MBEDTLS_GCM_C)
610 #define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
611 #define PSA_WANT_ALG_GCM 1
614 #if defined(MBEDTLS_HKDF_C)
615 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
616 #define PSA_WANT_ALG_HMAC 1
617 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
618 #define PSA_WANT_ALG_HKDF 1
621 #if defined(MBEDTLS_MD_C)
622 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
623 #define PSA_WANT_ALG_HMAC 1
624 #define PSA_WANT_KEY_TYPE_HMAC 1
625 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
626 #define PSA_WANT_ALG_TLS12_PRF 1
627 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
628 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
631 #if defined(MBEDTLS_MD2_C)
632 #define MBEDTLS_PSA_BUILTIN_ALG_MD2 1
633 #define PSA_WANT_ALG_MD2 1
636 #if defined(MBEDTLS_MD4_C)
637 #define MBEDTLS_PSA_BUILTIN_ALG_MD4 1
638 #define PSA_WANT_ALG_MD4 1
641 #if defined(MBEDTLS_MD5_C)
642 #define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
643 #define PSA_WANT_ALG_MD5 1
646 #if defined(MBEDTLS_RIPEMD160_C)
647 #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
648 #define PSA_WANT_ALG_RIPEMD160 1
651 #if defined(MBEDTLS_RSA_C)
652 #if defined(MBEDTLS_PKCS1_V15)
653 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
654 #define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
655 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
656 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN 1
657 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW 1
659 #if defined(MBEDTLS_PKCS1_V21)
660 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
661 #define PSA_WANT_ALG_RSA_OAEP 1
662 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
663 #define PSA_WANT_ALG_RSA_PSS 1
665 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR 1
666 #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 1
667 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
668 #define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY 1
671 #if defined(MBEDTLS_SHA1_C)
672 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
673 #define PSA_WANT_ALG_SHA_1 1
676 #if defined(MBEDTLS_SHA256_C)
677 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
678 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
679 #define PSA_WANT_ALG_SHA_224 1
680 #define PSA_WANT_ALG_SHA_256 1
683 #if defined(MBEDTLS_SHA512_C)
684 #if !defined(MBEDTLS_SHA512_NO_SHA384)
685 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
686 #define PSA_WANT_ALG_SHA_384 1
688 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
689 #define PSA_WANT_ALG_SHA_512 1
692 #if defined(MBEDTLS_AES_C)
693 #define PSA_WANT_KEY_TYPE_AES 1
694 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
697 #if defined(MBEDTLS_ARC4_C)
698 #define PSA_WANT_KEY_TYPE_ARC4 1
699 #define PSA_WANT_ALG_STREAM_CIPHER 1
700 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4 1
701 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
704 #if defined(MBEDTLS_ARIA_C)
705 #define PSA_WANT_KEY_TYPE_ARIA 1
706 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
709 #if defined(MBEDTLS_CAMELLIA_C)
710 #define PSA_WANT_KEY_TYPE_CAMELLIA 1
711 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
714 #if defined(MBEDTLS_DES_C)
715 #define PSA_WANT_KEY_TYPE_DES 1
716 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
719 #if defined(MBEDTLS_CHACHA20_C)
720 #define PSA_WANT_KEY_TYPE_CHACHA20 1
721 #define PSA_WANT_ALG_STREAM_CIPHER 1
722 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
723 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
724 #if defined(MBEDTLS_CHACHAPOLY_C)
725 #define PSA_WANT_ALG_CHACHA20_POLY1305 1
726 #define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1
730 #if defined(MBEDTLS_CIPHER_MODE_CBC)
731 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
732 #define PSA_WANT_ALG_CBC_NO_PADDING 1
733 #if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
734 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
735 #define PSA_WANT_ALG_CBC_PKCS7 1
739 #if defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C) || \
740 defined(MBEDTLS_ARIA_C) || defined(MBEDTLS_CAMELLIA_C)
741 #define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
742 #define PSA_WANT_ALG_ECB_NO_PADDING 1
745 #if defined(MBEDTLS_CIPHER_MODE_CFB)
746 #define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
747 #define PSA_WANT_ALG_CFB 1
750 #if defined(MBEDTLS_CIPHER_MODE_CTR)
751 #define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
752 #define PSA_WANT_ALG_CTR 1
755 #if defined(MBEDTLS_CIPHER_MODE_OFB)
756 #define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
757 #define PSA_WANT_ALG_OFB 1
760 #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
761 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
762 #define PSA_WANT_ECC_BRAINPOOL_P_R1_256 1
765 #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
766 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
767 #define PSA_WANT_ECC_BRAINPOOL_P_R1_384 1
770 #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
771 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
772 #define PSA_WANT_ECC_BRAINPOOL_P_R1_512 1
775 #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
776 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
777 #define PSA_WANT_ECC_MONTGOMERY_255 1
781 #if 0 && defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
782 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
783 #define PSA_WANT_ECC_MONTGOMERY_448 1
786 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
787 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
788 #define PSA_WANT_ECC_SECP_R1_192 1
791 #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
792 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
793 #define PSA_WANT_ECC_SECP_R1_224 1
796 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
797 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
798 #define PSA_WANT_ECC_SECP_R1_256 1
801 #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
802 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
803 #define PSA_WANT_ECC_SECP_R1_384 1
806 #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
807 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
808 #define PSA_WANT_ECC_SECP_R1_521 1
811 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
812 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
813 #define PSA_WANT_ECC_SECP_K1_192 1
817 #if 0 && defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
818 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
819 #define PSA_WANT_ECC_SECP_K1_224 1
822 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
823 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
824 #define PSA_WANT_ECC_SECP_K1_256 1
830 #define PSA_WANT_KEY_TYPE_DERIVE 1
831 #define PSA_WANT_KEY_TYPE_RAW_DATA 1
PSA crypto configuration options (set of defines)