xref: /optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_config.h (revision 32b3180828fa15a49ccc86ecb4be9d274c140c89)
1*32b31808SJens Wiklander /**
2*32b31808SJens Wiklander  * \file psa/crypto_config.h
3*32b31808SJens Wiklander  * \brief PSA crypto configuration options (set of defines)
4*32b31808SJens Wiklander  *
5*32b31808SJens Wiklander  */
6*32b31808SJens Wiklander #if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
7*32b31808SJens Wiklander /**
8*32b31808SJens Wiklander  * When #MBEDTLS_PSA_CRYPTO_CONFIG is enabled in mbedtls_config.h,
9*32b31808SJens Wiklander  * this file determines which cryptographic mechanisms are enabled
10*32b31808SJens Wiklander  * through the PSA Cryptography API (\c psa_xxx() functions).
11*32b31808SJens Wiklander  *
12*32b31808SJens Wiklander  * To enable a cryptographic mechanism, uncomment the definition of
13*32b31808SJens Wiklander  * the corresponding \c PSA_WANT_xxx preprocessor symbol.
14*32b31808SJens Wiklander  * To disable a cryptographic mechanism, comment out the definition of
15*32b31808SJens Wiklander  * the corresponding \c PSA_WANT_xxx preprocessor symbol.
16*32b31808SJens Wiklander  * The names of cryptographic mechanisms correspond to values
17*32b31808SJens Wiklander  * defined in psa/crypto_values.h, with the prefix \c PSA_WANT_ instead
18*32b31808SJens Wiklander  * of \c PSA_.
19*32b31808SJens Wiklander  *
20*32b31808SJens Wiklander  * Note that many cryptographic mechanisms involve two symbols: one for
21*32b31808SJens Wiklander  * the key type (\c PSA_WANT_KEY_TYPE_xxx) and one for the algorithm
22*32b31808SJens Wiklander  * (\c PSA_WANT_ALG_xxx). Mechanisms with additional parameters may involve
23*32b31808SJens Wiklander  * additional symbols.
24*32b31808SJens Wiklander  */
25*32b31808SJens Wiklander #else
26*32b31808SJens Wiklander /**
27*32b31808SJens Wiklander  * When \c MBEDTLS_PSA_CRYPTO_CONFIG is disabled in mbedtls_config.h,
28*32b31808SJens Wiklander  * this file is not used, and cryptographic mechanisms are supported
29*32b31808SJens Wiklander  * through the PSA API if and only if they are supported through the
30*32b31808SJens Wiklander  * mbedtls_xxx API.
31*32b31808SJens Wiklander  */
32*32b31808SJens Wiklander #endif
33*32b31808SJens Wiklander /*
34*32b31808SJens Wiklander  *  Copyright The Mbed TLS Contributors
35*32b31808SJens Wiklander  *  SPDX-License-Identifier: Apache-2.0
36*32b31808SJens Wiklander  *
37*32b31808SJens Wiklander  *  Licensed under the Apache License, Version 2.0 (the "License"); you may
38*32b31808SJens Wiklander  *  not use this file except in compliance with the License.
39*32b31808SJens Wiklander  *  You may obtain a copy of the License at
40*32b31808SJens Wiklander  *
41*32b31808SJens Wiklander  *  http://www.apache.org/licenses/LICENSE-2.0
42*32b31808SJens Wiklander  *
43*32b31808SJens Wiklander  *  Unless required by applicable law or agreed to in writing, software
44*32b31808SJens Wiklander  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
45*32b31808SJens Wiklander  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
46*32b31808SJens Wiklander  *  See the License for the specific language governing permissions and
47*32b31808SJens Wiklander  *  limitations under the License.
48*32b31808SJens Wiklander  */
49*32b31808SJens Wiklander 
50*32b31808SJens Wiklander #ifndef PSA_CRYPTO_CONFIG_H
51*32b31808SJens Wiklander #define PSA_CRYPTO_CONFIG_H
52*32b31808SJens Wiklander 
53*32b31808SJens Wiklander /*
54*32b31808SJens Wiklander  * CBC-MAC is not yet supported via the PSA API in Mbed TLS.
55*32b31808SJens Wiklander  */
56*32b31808SJens Wiklander //#define PSA_WANT_ALG_CBC_MAC                    1
57*32b31808SJens Wiklander #define PSA_WANT_ALG_CBC_NO_PADDING             1
58*32b31808SJens Wiklander #define PSA_WANT_ALG_CBC_PKCS7                  1
59*32b31808SJens Wiklander #define PSA_WANT_ALG_CCM                        1
60*32b31808SJens Wiklander #define PSA_WANT_ALG_CCM_STAR_NO_TAG            1
61*32b31808SJens Wiklander #define PSA_WANT_ALG_CMAC                       1
62*32b31808SJens Wiklander #define PSA_WANT_ALG_CFB                        1
63*32b31808SJens Wiklander #define PSA_WANT_ALG_CHACHA20_POLY1305          1
64*32b31808SJens Wiklander #define PSA_WANT_ALG_CTR                        1
65*32b31808SJens Wiklander #define PSA_WANT_ALG_DETERMINISTIC_ECDSA        1
66*32b31808SJens Wiklander #define PSA_WANT_ALG_ECB_NO_PADDING             1
67*32b31808SJens Wiklander #define PSA_WANT_ALG_ECDH                       1
68*32b31808SJens Wiklander #define PSA_WANT_ALG_ECDSA                      1
69*32b31808SJens Wiklander #define PSA_WANT_ALG_JPAKE                      1
70*32b31808SJens Wiklander #define PSA_WANT_ALG_GCM                        1
71*32b31808SJens Wiklander #define PSA_WANT_ALG_HKDF                       1
72*32b31808SJens Wiklander #define PSA_WANT_ALG_HKDF_EXTRACT               1
73*32b31808SJens Wiklander #define PSA_WANT_ALG_HKDF_EXPAND                1
74*32b31808SJens Wiklander #define PSA_WANT_ALG_HMAC                       1
75*32b31808SJens Wiklander #define PSA_WANT_ALG_MD5                        1
76*32b31808SJens Wiklander #define PSA_WANT_ALG_OFB                        1
77*32b31808SJens Wiklander /* PBKDF2-HMAC is not yet supported via the PSA API in Mbed TLS.
78*32b31808SJens Wiklander  * Note: when adding support, also adjust include/mbedtls/config_psa.h */
79*32b31808SJens Wiklander //#define PSA_WANT_ALG_PBKDF2_HMAC                1
80*32b31808SJens Wiklander #define PSA_WANT_ALG_RIPEMD160                  1
81*32b31808SJens Wiklander #define PSA_WANT_ALG_RSA_OAEP                   1
82*32b31808SJens Wiklander #define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT         1
83*32b31808SJens Wiklander #define PSA_WANT_ALG_RSA_PKCS1V15_SIGN          1
84*32b31808SJens Wiklander #define PSA_WANT_ALG_RSA_PSS                    1
85*32b31808SJens Wiklander #define PSA_WANT_ALG_SHA_1                      1
86*32b31808SJens Wiklander #define PSA_WANT_ALG_SHA_224                    1
87*32b31808SJens Wiklander #define PSA_WANT_ALG_SHA_256                    1
88*32b31808SJens Wiklander #define PSA_WANT_ALG_SHA_384                    1
89*32b31808SJens Wiklander #define PSA_WANT_ALG_SHA_512                    1
90*32b31808SJens Wiklander #define PSA_WANT_ALG_STREAM_CIPHER              1
91*32b31808SJens Wiklander #define PSA_WANT_ALG_TLS12_PRF                  1
92*32b31808SJens Wiklander #define PSA_WANT_ALG_TLS12_PSK_TO_MS            1
93*32b31808SJens Wiklander #define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS       1
94*32b31808SJens Wiklander 
95*32b31808SJens Wiklander /* PBKDF2-HMAC is not yet supported via the PSA API in Mbed TLS.
96*32b31808SJens Wiklander  * Note: when adding support, also adjust include/mbedtls/config_psa.h */
97*32b31808SJens Wiklander //#define PSA_WANT_ALG_XTS                        1
98*32b31808SJens Wiklander 
99*32b31808SJens Wiklander #define PSA_WANT_ECC_BRAINPOOL_P_R1_256         1
100*32b31808SJens Wiklander #define PSA_WANT_ECC_BRAINPOOL_P_R1_384         1
101*32b31808SJens Wiklander #define PSA_WANT_ECC_BRAINPOOL_P_R1_512         1
102*32b31808SJens Wiklander #define PSA_WANT_ECC_MONTGOMERY_255             1
103*32b31808SJens Wiklander #define PSA_WANT_ECC_MONTGOMERY_448             1
104*32b31808SJens Wiklander #define PSA_WANT_ECC_SECP_K1_192                1
105*32b31808SJens Wiklander /*
106*32b31808SJens Wiklander  * SECP224K1 is buggy via the PSA API in Mbed TLS
107*32b31808SJens Wiklander  * (https://github.com/Mbed-TLS/mbedtls/issues/3541). Thus, do not enable it by
108*32b31808SJens Wiklander  * default.
109*32b31808SJens Wiklander  */
110*32b31808SJens Wiklander //#define PSA_WANT_ECC_SECP_K1_224                1
111*32b31808SJens Wiklander #define PSA_WANT_ECC_SECP_K1_256                1
112*32b31808SJens Wiklander #define PSA_WANT_ECC_SECP_R1_192                1
113*32b31808SJens Wiklander #define PSA_WANT_ECC_SECP_R1_224                1
114*32b31808SJens Wiklander #define PSA_WANT_ECC_SECP_R1_256                1
115*32b31808SJens Wiklander #define PSA_WANT_ECC_SECP_R1_384                1
116*32b31808SJens Wiklander #define PSA_WANT_ECC_SECP_R1_521                1
117*32b31808SJens Wiklander 
118*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_DERIVE                1
119*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_PASSWORD              1
120*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_PASSWORD_HASH         1
121*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_HMAC                  1
122*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_AES                   1
123*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_ARIA                  1
124*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_CAMELLIA              1
125*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_CHACHA20              1
126*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_DES                   1
127*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR          1
128*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY        1
129*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_RAW_DATA              1
130*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR          1
131*32b31808SJens Wiklander #define PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY        1
132*32b31808SJens Wiklander 
133*32b31808SJens Wiklander #endif /* PSA_CRYPTO_CONFIG_H */
134