Mbed TLS v4.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
crypto_config.h
Go to the documentation of this file.
1 
24 /*
25  * Copyright The Mbed TLS Contributors
26  * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
27  */
28 
29 #ifndef PSA_CRYPTO_CONFIG_H
30 #define PSA_CRYPTO_CONFIG_H
31 
39 #define TF_PSA_CRYPTO_CONFIG_VERSION 0x01000000
40 
48 #define PSA_WANT_ALG_CBC_NO_PADDING 1
49 #define PSA_WANT_ALG_CBC_PKCS7 1
50 #define PSA_WANT_ALG_CCM 1
51 #define PSA_WANT_ALG_CCM_STAR_NO_TAG 1
52 #define PSA_WANT_ALG_CMAC 1
53 #define PSA_WANT_ALG_CFB 1
54 #define PSA_WANT_ALG_CHACHA20_POLY1305 1
55 #define PSA_WANT_ALG_CTR 1
56 #define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
57 #define PSA_WANT_ALG_ECB_NO_PADDING 1
58 #define PSA_WANT_ALG_ECDH 1
59 #define PSA_WANT_ALG_FFDH 1
60 #define PSA_WANT_ALG_ECDSA 1
61 #define PSA_WANT_ALG_JPAKE 1
62 #define PSA_WANT_ALG_GCM 1
63 #define PSA_WANT_ALG_HKDF 1
64 #define PSA_WANT_ALG_HKDF_EXTRACT 1
65 #define PSA_WANT_ALG_HKDF_EXPAND 1
66 #define PSA_WANT_ALG_HMAC 1
67 #define PSA_WANT_ALG_MD5 1
68 #define PSA_WANT_ALG_OFB 1
69 #define PSA_WANT_ALG_PBKDF2_HMAC 1
70 #define PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 1
71 #define PSA_WANT_ALG_RIPEMD160 1
72 #define PSA_WANT_ALG_RSA_OAEP 1
73 #define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
74 #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN 1
75 #define PSA_WANT_ALG_RSA_PSS 1
76 #define PSA_WANT_ALG_SHA_1 1
77 #define PSA_WANT_ALG_SHA_224 1
78 #define PSA_WANT_ALG_SHA_256 1
79 #define PSA_WANT_ALG_SHA_384 1
80 #define PSA_WANT_ALG_SHA_512 1
81 #define PSA_WANT_ALG_SHA3_224 1
82 #define PSA_WANT_ALG_SHA3_256 1
83 #define PSA_WANT_ALG_SHA3_384 1
84 #define PSA_WANT_ALG_SHA3_512 1
85 #define PSA_WANT_ALG_STREAM_CIPHER 1
86 #define PSA_WANT_ALG_TLS12_PRF 1
87 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
88 #define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1
89 
90 #define PSA_WANT_ECC_BRAINPOOL_P_R1_256 1
91 #define PSA_WANT_ECC_BRAINPOOL_P_R1_384 1
92 #define PSA_WANT_ECC_BRAINPOOL_P_R1_512 1
93 #define PSA_WANT_ECC_MONTGOMERY_255 1
94 #define PSA_WANT_ECC_MONTGOMERY_448 1
95 #define PSA_WANT_ECC_SECP_K1_256 1
96 /* For secp256r1, consider enabling #MBEDTLS_PSA_P256M_DRIVER_ENABLED
97  * (see the description in psa/crypto_config.h for details). */
98 #define PSA_WANT_ECC_SECP_R1_256 1
99 #define PSA_WANT_ECC_SECP_R1_384 1
100 #define PSA_WANT_ECC_SECP_R1_521 1
101 /* These 2 curves are not part of the public API. They are kept temporarily for
102  * internal testing only and will removed in a future minor version. */
103 #define PSA_WANT_ECC_SECP_K1_192 1
104 #define PSA_WANT_ECC_SECP_R1_192 1
105 
106 #define PSA_WANT_DH_RFC7919_2048 1
107 #define PSA_WANT_DH_RFC7919_3072 1
108 #define PSA_WANT_DH_RFC7919_4096 1
109 #define PSA_WANT_DH_RFC7919_6144 1
110 #define PSA_WANT_DH_RFC7919_8192 1
111 
112 #define PSA_WANT_KEY_TYPE_DERIVE 1
113 #define PSA_WANT_KEY_TYPE_PASSWORD 1
114 #define PSA_WANT_KEY_TYPE_PASSWORD_HASH 1
115 #define PSA_WANT_KEY_TYPE_HMAC 1
116 #define PSA_WANT_KEY_TYPE_AES 1
117 #define PSA_WANT_KEY_TYPE_ARIA 1
118 #define PSA_WANT_KEY_TYPE_CAMELLIA 1
119 #define PSA_WANT_KEY_TYPE_CHACHA20 1
120 #define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
121 #define PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY 1
122 #define PSA_WANT_KEY_TYPE_RAW_DATA 1
123 #define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY 1
124 
125 /*
126  * The following symbols extend and deprecate the legacy
127  * PSA_WANT_KEY_TYPE_xxx_KEY_PAIR ones. They include the usage of that key in
128  * the name's suffix. "_USE" is the most generic and it can be used to describe
129  * a generic suport, whereas other ones add more features on top of that and
130  * they are more specific.
131  */
132 #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC 1
133 #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT 1
134 #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT 1
135 #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE 1
136 #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE 1
137 
138 #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC 1
139 #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT 1
140 #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT 1
141 #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE 1
142 #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE 1 /* Not supported */
143 
144 #define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC 1
145 #define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT 1
146 #define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT 1
147 #define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE 1
148 #define PSA_WANT_KEY_TYPE_DH_KEY_PAIR_DERIVE 1 /* Not supported */
149 
172 #define MBEDTLS_MEMORY_BUFFER_ALLOC_C
173 
179 #define MBEDTLS_FS_IO
180 
194 #define MBEDTLS_HAVE_TIME
195 
215 #define MBEDTLS_HAVE_TIME_DATE
216 
228 #define MBEDTLS_MEMORY_DEBUG
229 
240 #define MBEDTLS_MEMORY_BACKTRACE
241 
260 #define MBEDTLS_PLATFORM_C
261 
285 #define MBEDTLS_PLATFORM_SETBUF_ALT
286 #define MBEDTLS_PLATFORM_EXIT_ALT
287 #define MBEDTLS_PLATFORM_TIME_ALT
288 #define MBEDTLS_PLATFORM_FPRINTF_ALT
289 #define MBEDTLS_PLATFORM_PRINTF_ALT
290 #define MBEDTLS_PLATFORM_SNPRINTF_ALT
291 #define MBEDTLS_PLATFORM_VSNPRINTF_ALT
292 #define MBEDTLS_PLATFORM_NV_SEED_ALT
293 #define MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT
294 #define MBEDTLS_PLATFORM_MS_TIME_ALT
295 
313 #define MBEDTLS_PLATFORM_GMTIME_R_ALT
314 
369 #define MBEDTLS_PLATFORM_MEMORY
370 
388 #define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
389 
411 #define MBEDTLS_PLATFORM_ZEROIZE_ALT
412 
436 #define MBEDTLS_THREADING_ALT
437 
447 #define MBEDTLS_THREADING_PTHREAD
448 
470 #define MBEDTLS_THREADING_C
471 
472 /* Memory buffer allocator options */
473 #define MBEDTLS_MEMORY_ALIGN_MULTIPLE 4
475 /* To use the following function macros, MBEDTLS_PLATFORM_C must be enabled. */
476 /* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
477 #define MBEDTLS_PLATFORM_CALLOC_MACRO calloc
478 #define MBEDTLS_PLATFORM_EXIT_MACRO exit
479 #define MBEDTLS_PLATFORM_FREE_MACRO free
480 #define MBEDTLS_PLATFORM_FPRINTF_MACRO fprintf
481 #define MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO int64_t //#define MBEDTLS_PLATFORM_MS_TIME_TYPE_MACRO int64_t
482 #define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_platform_std_nv_seed_read
483 #define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_platform_std_nv_seed_write
484 #define MBEDTLS_PLATFORM_PRINTF_MACRO printf
485 #define MBEDTLS_PLATFORM_SETBUF_MACRO setbuf
486 /* Note: your snprintf must correctly zero-terminate the buffer! */
487 #define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf
500 #define MBEDTLS_PLATFORM_STD_CALLOC calloc
501 
502 #define MBEDTLS_PLATFORM_STD_EXIT exit
503 #define MBEDTLS_PLATFORM_STD_EXIT_FAILURE 1
504 #define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 0
505 #define MBEDTLS_PLATFORM_STD_FPRINTF fprintf
515 #define MBEDTLS_PLATFORM_STD_FREE free
516 
517 #define MBEDTLS_PLATFORM_STD_MEM_HDR <stdlib.h>
518 #define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile"
519 #define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read
520 #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write
521 #define MBEDTLS_PLATFORM_STD_PRINTF printf
522 #define MBEDTLS_PLATFORM_STD_SETBUF setbuf
523 /* Note: your snprintf must correctly zero-terminate the buffer! */
524 #define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf
525 #define MBEDTLS_PLATFORM_STD_TIME time
526 #define MBEDTLS_PLATFORM_TIME_MACRO time
527 #define MBEDTLS_PLATFORM_TIME_TYPE_MACRO time_t
528 #define MBEDTLS_PLATFORM_VSNPRINTF_MACRO vsnprintf
529 #define MBEDTLS_PRINTF_MS_TIME PRId64
561 #define MBEDTLS_CHECK_RETURN_WARNING
562 
576 #define MBEDTLS_DEPRECATED_WARNING
577 
588 #define MBEDTLS_DEPRECATED_REMOVED
589 
603 #define MBEDTLS_CHECK_RETURN __attribute__((__warn_unused_result__))
604 
611 #define MBEDTLS_IGNORE_RETURN( result ) ((void) !(result))
612 
628 #define TF_PSA_CRYPTO_CONFIG_FILE "psa/crypto_config.h"
629 
645 #define TF_PSA_CRYPTO_USER_CONFIG_FILE "/dev/null"
646 
652 #define MBEDTLS_SELF_TEST
653 
669 #define MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
670 
688 #define MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
689 
708 #define MBEDTLS_TEST_HOOKS
709 
718 #define TF_PSA_CRYPTO_VERSION
719 
741 #define MBEDTLS_LMS_C
742 
753 #define MBEDTLS_LMS_PRIVATE
754 
774 #define MBEDTLS_MD_C
775 
787 #define MBEDTLS_NIST_KW_C
788 
801 #define MBEDTLS_PK_C
802 
814 #define MBEDTLS_PKCS5_C
815 
827 #define MBEDTLS_PK_PARSE_C
828 
841 #define MBEDTLS_PK_PARSE_EC_EXTENDED
842 
850 #define MBEDTLS_PK_PARSE_EC_COMPRESSED
851 
863 #define MBEDTLS_PK_WRITE_C
864 
883 #define MBEDTLS_ASN1_PARSE_C
884 
894 #define MBEDTLS_ASN1_WRITE_C
895 
906 #define MBEDTLS_BASE64_C
907 
921 #define MBEDTLS_PEM_PARSE_C
922 
935 #define MBEDTLS_PEM_WRITE_C
936 
963 #define MBEDTLS_CTR_DRBG_C
964 
980 #define MBEDTLS_ENTROPY_NO_SOURCES_OK
981 
1010 #define MBEDTLS_ENTROPY_NV_SEED
1011 
1024 #define MBEDTLS_HMAC_DRBG_C
1025 
1051 #define MBEDTLS_PSA_CRYPTO_C
1052 
1071 #define MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS
1072 
1103 #define MBEDTLS_PSA_BUILTIN_GET_ENTROPY
1104 
1119 #define MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
1120 
1135 #define MBEDTLS_PSA_CRYPTO_CLIENT
1136 
1173 #define MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
1174 
1175 /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
1176  *
1177  * Enable key identifiers that encode a key owner identifier.
1178  *
1179  * The owner of a key is identified by a value of type ::mbedtls_key_owner_id_t
1180  * which is currently hard-coded to be int32_t.
1181  *
1182  * Note that this option is meant for internal use only and may be removed
1183  * without notice.
1184  */
1185 #define MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
1186 
1206 #define MBEDTLS_PSA_CRYPTO_SPM
1207 
1219 #define MBEDTLS_PSA_CRYPTO_STORAGE_C
1220 
1247 #define MBEDTLS_PSA_DRIVER_GET_ENTROPY
1248 
1259 #define MBEDTLS_PSA_ITS_FILE_C
1260 
1276 #define MBEDTLS_PSA_KEY_STORE_DYNAMIC
1277 
1296 #define MBEDTLS_PSA_STATIC_KEY_SLOTS
1297 
1298 /* Entropy options */
1299 
1320 #define MBEDTLS_PSA_CRYPTO_PLATFORM_FILE "psa/crypto_platform_alt.h"
1321 
1345 #define MBEDTLS_PSA_CRYPTO_STRUCT_FILE "psa/crypto_struct_alt.h"
1346 
1365 #define MBEDTLS_PSA_KEY_SLOT_COUNT 32
1366 
1378 #define MBEDTLS_PSA_STATIC_KEY_SLOT_BUFFER_SIZE 256
1379 
1387 #define MBEDTLS_PSA_CRYPTO_RNG_STRENGTH 256
1388 
1406 #define MBEDTLS_PSA_CRYPTO_RNG_HASH PSA_ALG_SHA_256
1407 
1418 #define MBEDTLS_PSA_RNG_RESEED_INTERVAL 1000
1419 
1459 #define MBEDTLS_AESNI_C
1460 
1485 #define MBEDTLS_AESCE_C
1486 
1504 #define MBEDTLS_AES_ROM_TABLES
1505 
1525 #define MBEDTLS_AES_FEWER_TABLES
1526 
1542 #define MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
1543 
1544 /*
1545  * Disable plain C implementation for AES.
1546  *
1547  * When the plain C implementation is enabled, and an implementation using a
1548  * special CPU feature (such as MBEDTLS_AESCE_C) is also enabled, runtime
1549  * detection will be used to select between them.
1550  *
1551  * If only one implementation is present, runtime detection will not be used.
1552  * This configuration will crash at runtime if running on a CPU without the
1553  * necessary features. It will not build unless at least one of MBEDTLS_AESCE_C
1554  * and/or MBEDTLS_AESNI_C is enabled & present in the build.
1555  */
1556 #define MBEDTLS_AES_USE_HARDWARE_ONLY
1557 
1574 #define MBEDTLS_BLOCK_CIPHER_NO_DECRYPT
1575 
1583 #define MBEDTLS_CAMELLIA_SMALL_MEMORY
1584 
1595 #define MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
1596 
1606 #define MBEDTLS_ECP_NIST_OPTIM
1607 
1651 #define MBEDTLS_ECP_RESTARTABLE
1652 
1659 #define MBEDTLS_ECP_WITH_MPI_UINT
1660 
1675 #define MBEDTLS_GCM_LARGE_TABLE
1676 
1696 #define MBEDTLS_HAVE_ASM
1697 
1705 #define MBEDTLS_HAVE_SSE2
1706 
1733 #define MBEDTLS_NO_UDBL_DIVISION
1734 
1755 #define MBEDTLS_NO_64BIT_MULTIPLICATION
1756 
1793 #define MBEDTLS_PSA_P256M_DRIVER_ENABLED
1794 
1804 #define MBEDTLS_RSA_NO_CRT
1805 
1820 #define MBEDTLS_SHA256_SMALLER
1821 
1854 #define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
1855 
1856 
1889 #define MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
1890 
1899 #define MBEDTLS_SHA512_SMALLER
1900 
1933 #define MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
1934 
1967 #define MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY
1968 
1969 /* ECP options */
1970 #define MBEDTLS_ECP_FIXED_POINT_OPTIM 1
1971 #define MBEDTLS_ECP_WINDOW_SIZE 4
1973 /* MPI / BIGNUM options */
1974 #define MBEDTLS_MPI_MAX_SIZE 1024
1975 #define MBEDTLS_MPI_WINDOW_SIZE 2
1977 /* RSA OPTIONS */
1978 #define MBEDTLS_RSA_GEN_KEY_MIN_BITS 1024
1982 /* Do not enable except for testing. Will be removed in a future minor version.
1983  */
1984 #define TF_PSA_CRYPTO_ALLOW_REMOVED_MECHANISMS
1985 #endif /* PSA_CRYPTO_CONFIG_H */