30 #ifndef MBEDTLS_CONFIG_PSA_H
31 #define MBEDTLS_CONFIG_PSA_H
33 #if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
35 #include "mbedTLS_crypto_config.h"
51 #if defined(PSA_WANT_ALG_ECDSA_ANY) && !defined(PSA_WANT_ALG_ECDSA)
52 #define PSA_WANT_ALG_ECDSA PSA_WANT_ALG_ECDSA_ANY
53 #elif !defined(PSA_WANT_ALG_ECDSA_ANY) && defined(PSA_WANT_ALG_ECDSA)
54 #define PSA_WANT_ALG_ECDSA_ANY PSA_WANT_ALG_ECDSA
57 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW) && !defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
58 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW
59 #elif !defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW) && defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
60 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW PSA_WANT_ALG_RSA_PKCS1V15_SIGN
63 #if defined(PSA_WANT_ALG_RSA_PSS_ANY_SALT) && !defined(PSA_WANT_ALG_RSA_PSS)
64 #define PSA_WANT_ALG_RSA_PSS PSA_WANT_ALG_RSA_PSS_ANY_SALT
65 #elif !defined(PSA_WANT_ALG_RSA_PSS_ANY_SALT) && defined(PSA_WANT_ALG_RSA_PSS)
66 #define PSA_WANT_ALG_RSA_PSS_ANY_SALT PSA_WANT_ALG_RSA_PSS
75 #if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
77 #if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
78 #if !defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA)
79 #define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
80 #define MBEDTLS_ECDSA_DETERMINISTIC
81 #define MBEDTLS_ECDSA_C
82 #define MBEDTLS_HMAC_DRBG_C
87 #if defined(PSA_WANT_ALG_ECDH)
88 #if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDH)
89 #define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
90 #define MBEDTLS_ECDH_C
92 #define MBEDTLS_BIGNUM_C
96 #if defined(PSA_WANT_ALG_ECDSA)
97 #if !defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA)
98 #define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
99 #define MBEDTLS_ECDSA_C
100 #define MBEDTLS_ECP_C
101 #define MBEDTLS_BIGNUM_C
102 #define MBEDTLS_ASN1_PARSE_C
103 #define MBEDTLS_ASN1_WRITE_C
107 #if defined(PSA_WANT_ALG_HKDF)
108 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF)
109 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
110 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
114 #if defined(PSA_WANT_ALG_HMAC)
115 #if !defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
116 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
120 #if defined(PSA_WANT_ALG_MD2) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD2)
121 #define MBEDTLS_PSA_BUILTIN_ALG_MD2 1
122 #define MBEDTLS_MD2_C
125 #if defined(PSA_WANT_ALG_MD4) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD4)
126 #define MBEDTLS_PSA_BUILTIN_ALG_MD4 1
127 #define MBEDTLS_MD4_C
130 #if defined(PSA_WANT_ALG_MD5) && !defined(MBEDTLS_PSA_ACCEL_ALG_MD5)
131 #define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
132 #define MBEDTLS_MD5_C
135 #if defined(PSA_WANT_ALG_RIPEMD160) && !defined(MBEDTLS_PSA_ACCEL_ALG_RIPEMD160)
136 #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
137 #define MBEDTLS_RIPEMD160_C
140 #if defined(PSA_WANT_ALG_RSA_OAEP)
141 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP)
142 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
143 #define MBEDTLS_RSA_C
144 #define MBEDTLS_BIGNUM_C
145 #define MBEDTLS_OID_C
146 #define MBEDTLS_PKCS1_V21
151 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT)
152 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYPT)
153 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
154 #define MBEDTLS_RSA_C
155 #define MBEDTLS_BIGNUM_C
156 #define MBEDTLS_OID_C
157 #define MBEDTLS_PKCS1_V15
161 #if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN)
162 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN)
163 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
164 #define MBEDTLS_RSA_C
165 #define MBEDTLS_BIGNUM_C
166 #define MBEDTLS_OID_C
167 #define MBEDTLS_PKCS1_V15
172 #if defined(PSA_WANT_ALG_RSA_PSS)
173 #if !defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PSS)
174 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
175 #define MBEDTLS_RSA_C
176 #define MBEDTLS_BIGNUM_C
177 #define MBEDTLS_OID_C
178 #define MBEDTLS_PKCS1_V21
183 #if defined(PSA_WANT_ALG_SHA_1) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_1)
184 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
185 #define MBEDTLS_SHA1_C
188 #if defined(PSA_WANT_ALG_SHA_224) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_224)
189 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
190 #define MBEDTLS_SHA224_C
193 #if defined(PSA_WANT_ALG_SHA_256) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_256)
194 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
195 #define MBEDTLS_SHA256_C
198 #if defined(PSA_WANT_ALG_SHA_384) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_384)
199 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
200 #define MBEDTLS_SHA384_C
203 #if defined(PSA_WANT_ALG_SHA_512) && !defined(MBEDTLS_PSA_ACCEL_ALG_SHA_512)
204 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
205 #define MBEDTLS_SHA512_C
208 #if defined(PSA_WANT_ALG_TLS12_PRF)
209 #if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PRF)
210 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
214 #if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS)
215 #if !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS)
216 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
220 #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR)
221 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR)
222 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR 1
223 #define MBEDTLS_ECP_C
224 #define MBEDTLS_BIGNUM_C
228 #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
229 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)
230 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
231 #define MBEDTLS_ECP_C
232 #define MBEDTLS_BIGNUM_C
236 #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR)
237 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR)
238 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR 1
239 #define MBEDTLS_RSA_C
240 #define MBEDTLS_BIGNUM_C
241 #define MBEDTLS_OID_C
242 #define MBEDTLS_GENPRIME
243 #define MBEDTLS_PK_PARSE_C
244 #define MBEDTLS_PK_WRITE_C
246 #define MBEDTLS_ASN1_PARSE_C
247 #define MBEDTLS_ASN1_WRITE_C
251 #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)
252 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY)
253 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
254 #define MBEDTLS_RSA_C
255 #define MBEDTLS_BIGNUM_C
256 #define MBEDTLS_OID_C
257 #define MBEDTLS_PK_PARSE_C
258 #define MBEDTLS_PK_WRITE_C
260 #define MBEDTLS_ASN1_PARSE_C
261 #define MBEDTLS_ASN1_WRITE_C
268 #if (defined(PSA_WANT_ALG_CTR) && !defined(MBEDTLS_PSA_ACCEL_ALG_CTR)) || \
269 (defined(PSA_WANT_ALG_CFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_CFB)) || \
270 (defined(PSA_WANT_ALG_OFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_OFB)) || \
271 (defined(PSA_WANT_ALG_XTS) && !defined(MBEDTLS_PSA_ACCEL_ALG_XTS)) || \
272 defined(PSA_WANT_ALG_ECB_NO_PADDING) || \
273 (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
274 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \
275 (defined(PSA_WANT_ALG_CBC_PKCS7) && \
276 !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)) || \
277 (defined(PSA_WANT_ALG_CMAC) && !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC))
278 #define PSA_HAVE_SOFT_BLOCK_MODE 1
281 #if (defined(PSA_WANT_ALG_GCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_GCM)) || \
282 (defined(PSA_WANT_ALG_CCM) && !defined(MBEDTLS_PSA_ACCEL_ALG_CCM))
283 #define PSA_HAVE_SOFT_BLOCK_AEAD 1
286 #if defined(PSA_WANT_KEY_TYPE_AES)
287 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
288 #define PSA_HAVE_SOFT_KEY_TYPE_AES 1
290 #if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
291 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
292 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
293 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
294 #define MBEDTLS_AES_C
298 #if defined(PSA_WANT_KEY_TYPE_ARC4)
299 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARC4)
300 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4 1
301 #define MBEDTLS_ARC4_C
305 #if defined(PSA_WANT_KEY_TYPE_ARIA)
306 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA)
307 #define PSA_HAVE_SOFT_KEY_TYPE_ARIA 1
309 #if defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
310 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
311 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
312 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
313 #define MBEDTLS_ARIA_C
317 #if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
318 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA)
319 #define PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA 1
321 #if defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA) || \
322 defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
323 defined(PSA_HAVE_SOFT_BLOCK_AEAD)
324 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
325 #define MBEDTLS_CAMELLIA_C
329 #if defined(PSA_WANT_KEY_TYPE_DES)
330 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DES)
331 #define PSA_HAVE_SOFT_KEY_TYPE_DES 1
333 #if defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
334 defined(PSA_HAVE_SOFT_BLOCK_MODE)
335 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
336 #define MBEDTLS_DES_C
340 #if defined(PSA_WANT_KEY_TYPE_CHACHA20)
341 #if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20)
342 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
343 #define MBEDTLS_CHACHA20_C
350 #if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
351 defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
352 defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
353 defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
354 #define PSA_HAVE_SOFT_BLOCK_CIPHER 1
357 #if defined(PSA_WANT_ALG_STREAM_CIPHER)
358 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
361 #if defined(PSA_WANT_ALG_CBC_MAC)
362 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_MAC)
363 #error "CBC-MAC is not yet supported via the PSA API in Mbed TLS."
364 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_MAC 1
368 #if defined(PSA_WANT_ALG_CMAC)
369 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC) || \
370 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
371 #define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
372 #define MBEDTLS_CMAC_C
376 #if defined(PSA_WANT_ALG_CTR)
377 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CTR) || \
378 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
379 #define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
380 #define MBEDTLS_CIPHER_MODE_CTR
384 #if defined(PSA_WANT_ALG_CFB)
385 #if !defined(MBEDTLS_PSA_ACCEL_ALG_CFB) || \
386 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
387 #define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
388 #define MBEDTLS_CIPHER_MODE_CFB
392 #if defined(PSA_WANT_ALG_OFB)
393 #if !defined(MBEDTLS_PSA_ACCEL_ALG_OFB) || \
394 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
395 #define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
396 #define MBEDTLS_CIPHER_MODE_OFB
400 #if defined(PSA_WANT_ALG_XTS)
401 #if !defined(MBEDTLS_PSA_ACCEL_ALG_XTS) || \
402 defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
403 #define MBEDTLS_PSA_BUILTIN_ALG_XTS 1
404 #define MBEDTLS_CIPHER_MODE_XTS
408 #if defined(PSA_WANT_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_POLY1305_C
454 #define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1
459 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256)
460 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256)
461 #define MBEDTLS_ECP_DP_BP256R1_ENABLED
462 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
466 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384)
467 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384)
468 #define MBEDTLS_ECP_DP_BP384R1_ENABLED
469 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
473 #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512)
474 #if !defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512)
475 #define MBEDTLS_ECP_DP_BP512R1_ENABLED
476 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
480 #if defined(PSA_WANT_ECC_MONTGOMERY_255)
481 #if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255)
482 #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
483 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
487 #if defined(PSA_WANT_ECC_MONTGOMERY_448)
488 #if !defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448)
493 #error "Curve448 is not yet supported via the PSA API in Mbed TLS."
494 #define MBEDTLS_ECP_DP_CURVE448_ENABLED
495 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
499 #if defined(PSA_WANT_ECC_SECP_R1_192)
500 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192)
501 #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
502 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
506 #if defined(PSA_WANT_ECC_SECP_R1_224)
507 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224)
508 #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
509 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
513 #if defined(PSA_WANT_ECC_SECP_R1_256)
514 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256)
515 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
516 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
520 #if defined(PSA_WANT_ECC_SECP_R1_384)
521 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)
522 #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
523 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
527 #if defined(PSA_WANT_ECC_SECP_R1_521)
528 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
529 #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
530 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
534 #if defined(PSA_WANT_ECC_SECP_K1_192)
535 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192)
536 #define MBEDTLS_ECP_DP_SECP192K1_ENABLED
537 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
541 #if defined(PSA_WANT_ECC_SECP_K1_224)
542 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224)
547 #error "SECP224K1 is buggy via the PSA API in Mbed TLS."
548 #define MBEDTLS_ECP_DP_SECP224K1_ENABLED
549 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
553 #if defined(PSA_WANT_ECC_SECP_K1_256)
554 #if !defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256)
555 #define MBEDTLS_ECP_DP_SECP256K1_ENABLED
556 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
573 #if defined(MBEDTLS_CCM_C)
574 #define MBEDTLS_PSA_BUILTIN_ALG_CCM 1
575 #define PSA_WANT_ALG_CCM 1
578 #if defined(MBEDTLS_CMAC_C)
579 #define MBEDTLS_PSA_BUILTIN_ALG_CMAC 1
580 #define PSA_WANT_ALG_CMAC 1
583 #if defined(MBEDTLS_ECDH_C)
584 #define MBEDTLS_PSA_BUILTIN_ALG_ECDH 1
585 #define PSA_WANT_ALG_ECDH 1
588 #if defined(MBEDTLS_ECDSA_C)
589 #define MBEDTLS_PSA_BUILTIN_ALG_ECDSA 1
590 #define PSA_WANT_ALG_ECDSA 1
591 #define PSA_WANT_ALG_ECDSA_ANY 1
594 #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
595 #define MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA 1
596 #define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
601 #if defined(MBEDTLS_ECP_C)
602 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR 1
603 #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
604 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY 1
605 #define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
608 #if defined(MBEDTLS_GCM_C)
609 #define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
610 #define PSA_WANT_ALG_GCM 1
613 #if defined(MBEDTLS_HKDF_C)
614 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
615 #define PSA_WANT_ALG_HMAC 1
616 #define MBEDTLS_PSA_BUILTIN_ALG_HKDF 1
617 #define PSA_WANT_ALG_HKDF 1
620 #if defined(MBEDTLS_MD_C)
621 #define MBEDTLS_PSA_BUILTIN_ALG_HMAC 1
622 #define PSA_WANT_ALG_HMAC 1
623 #define PSA_WANT_KEY_TYPE_HMAC
624 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF 1
625 #define PSA_WANT_ALG_TLS12_PRF 1
626 #define MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS 1
627 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
630 #if defined(MBEDTLS_MD2_C)
631 #define MBEDTLS_PSA_BUILTIN_ALG_MD2 1
632 #define PSA_WANT_ALG_MD2 1
635 #if defined(MBEDTLS_MD4_C)
636 #define MBEDTLS_PSA_BUILTIN_ALG_MD4 1
637 #define PSA_WANT_ALG_MD4 1
640 #if defined(MBEDTLS_MD5_C)
641 #define MBEDTLS_PSA_BUILTIN_ALG_MD5 1
642 #define PSA_WANT_ALG_MD5 1
645 #if defined(MBEDTLS_RIPEMD160_C)
646 #define MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160 1
647 #define PSA_WANT_ALG_RIPEMD160 1
650 #if defined(MBEDTLS_RSA_C)
651 #if defined(MBEDTLS_PKCS1_V15)
652 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT 1
653 #define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
654 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN 1
655 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN 1
656 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW 1
658 #if defined(MBEDTLS_PKCS1_V21)
659 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP 1
660 #define PSA_WANT_ALG_RSA_OAEP 1
661 #define MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS 1
662 #define PSA_WANT_ALG_RSA_PSS 1
664 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR 1
665 #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 1
666 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY 1
667 #define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY 1
670 #if defined(MBEDTLS_SHA1_C)
671 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_1 1
672 #define PSA_WANT_ALG_SHA_1 1
675 #if defined(MBEDTLS_SHA256_C)
676 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_224 1
677 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1
678 #define PSA_WANT_ALG_SHA_224 1
679 #define PSA_WANT_ALG_SHA_256 1
682 #if defined(MBEDTLS_SHA512_C)
683 #if !defined(MBEDTLS_SHA512_NO_SHA384)
684 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_384 1
685 #define PSA_WANT_ALG_SHA_384 1
687 #define MBEDTLS_PSA_BUILTIN_ALG_SHA_512 1
688 #define PSA_WANT_ALG_SHA_512 1
691 #if defined(MBEDTLS_AES_C)
692 #define PSA_WANT_KEY_TYPE_AES 1
693 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
696 #if defined(MBEDTLS_ARC4_C)
697 #define PSA_WANT_KEY_TYPE_ARC4 1
698 #define PSA_WANT_ALG_STREAM_CIPHER 1
699 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4 1
700 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
703 #if defined(MBEDTLS_ARIA_C)
704 #define PSA_WANT_KEY_TYPE_ARIA 1
705 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
708 #if defined(MBEDTLS_CAMELLIA_C)
709 #define PSA_WANT_KEY_TYPE_CAMELLIA 1
710 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
713 #if defined(MBEDTLS_DES_C)
714 #define PSA_WANT_KEY_TYPE_DES 1
715 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
718 #if defined(MBEDTLS_CHACHA20_C)
719 #define PSA_WANT_KEY_TYPE_CHACHA20 1
720 #define PSA_WANT_ALG_STREAM_CIPHER 1
721 #define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
722 #define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
723 #if defined(MBEDTLS_CHACHAPOLY_C)
724 #define PSA_WANT_ALG_CHACHA20_POLY1305 1
725 #define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1
729 #if defined(MBEDTLS_CIPHER_MODE_CBC)
730 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
731 #define PSA_WANT_ALG_CBC_NO_PADDING 1
732 #if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
733 #define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
734 #define PSA_WANT_ALG_CBC_PKCS7 1
738 #if defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C) || \
739 defined(MBEDTLS_ARIA_C) || defined(MBEDTLS_CAMELLIA_C)
740 #define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
741 #define PSA_WANT_ALG_ECB_NO_PADDING 1
744 #if defined(MBEDTLS_CIPHER_MODE_CFB)
745 #define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
746 #define PSA_WANT_ALG_CFB 1
749 #if defined(MBEDTLS_CIPHER_MODE_CTR)
750 #define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
751 #define PSA_WANT_ALG_CTR 1
754 #if defined(MBEDTLS_CIPHER_MODE_OFB)
755 #define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
756 #define PSA_WANT_ALG_OFB 1
759 #if defined(MBEDTLS_CIPHER_MODE_XTS)
760 #define MBEDTLS_PSA_BUILTIN_ALG_XTS 1
761 #define PSA_WANT_ALG_XTS 1
764 #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
765 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_256 1
766 #define PSA_WANT_ECC_BRAINPOOL_P_R1_256
769 #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
770 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_384 1
771 #define PSA_WANT_ECC_BRAINPOOL_P_R1_384
774 #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
775 #define MBEDTLS_PSA_BUILTIN_ECC_BRAINPOOL_P_R1_512 1
776 #define PSA_WANT_ECC_BRAINPOOL_P_R1_512
779 #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
780 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_255 1
781 #define PSA_WANT_ECC_MONTGOMERY_255
785 #if 0 && defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
786 #define MBEDTLS_PSA_BUILTIN_ECC_MONTGOMERY_448 1
787 #define PSA_WANT_ECC_MONTGOMERY_448
790 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
791 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_192 1
792 #define PSA_WANT_ECC_SECP_R1_192
795 #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
796 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_224 1
797 #define PSA_WANT_ECC_SECP_R1_224
800 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
801 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_256 1
802 #define PSA_WANT_ECC_SECP_R1_256
805 #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
806 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_384 1
807 #define PSA_WANT_ECC_SECP_R1_384
810 #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
811 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_R1_521 1
812 #define PSA_WANT_ECC_SECP_R1_521
815 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
816 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_192 1
817 #define PSA_WANT_ECC_SECP_K1_192
821 #if 0 && defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
822 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_224 1
823 #define PSA_WANT_ECC_SECP_K1_224
826 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
827 #define MBEDTLS_PSA_BUILTIN_ECC_SECP_K1_256 1
828 #define PSA_WANT_ECC_SECP_K1_256
834 #define PSA_WANT_KEY_TYPE_DERIVE 1
835 #define PSA_WANT_KEY_TYPE_RAW_DATA 1
PSA crypto configuration options (set of defines)