xref: /optee_os/lib/libmbedtls/mbedtls/include/psa/crypto_adjust_config_dependencies.h (revision cb03400251f98aed22a2664509e3ed9e183800b0)
1*cb034002SJerome Forissier /**
2*cb034002SJerome Forissier  * \file psa/crypto_adjust_config_dependencies.h
3*cb034002SJerome Forissier  * \brief Adjust PSA configuration by resolving some dependencies.
4*cb034002SJerome Forissier  *
5*cb034002SJerome Forissier  * This is an internal header. Do not include it directly.
6*cb034002SJerome Forissier  *
7*cb034002SJerome Forissier  * See docs/proposed/psa-conditional-inclusion-c.md.
8*cb034002SJerome Forissier  * If the Mbed TLS implementation of a cryptographic mechanism A depends on a
9*cb034002SJerome Forissier  * cryptographic mechanism B then if the cryptographic mechanism A is enabled
10*cb034002SJerome Forissier  * and not accelerated enable B. Note that if A is enabled and accelerated, it
11*cb034002SJerome Forissier  * is not necessary to enable B for A support.
12*cb034002SJerome Forissier  */
13*cb034002SJerome Forissier /*
14*cb034002SJerome Forissier  *  Copyright The Mbed TLS Contributors
15*cb034002SJerome Forissier  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
16*cb034002SJerome Forissier  */
17*cb034002SJerome Forissier 
18*cb034002SJerome Forissier #ifndef PSA_CRYPTO_ADJUST_CONFIG_DEPENDENCIES_H
19*cb034002SJerome Forissier #define PSA_CRYPTO_ADJUST_CONFIG_DEPENDENCIES_H
20*cb034002SJerome Forissier 
21*cb034002SJerome Forissier #if !defined(MBEDTLS_CONFIG_FILES_READ)
22*cb034002SJerome Forissier #error "Do not include psa/crypto_adjust_*.h manually! This can lead to problems, " \
23*cb034002SJerome Forissier     "up to and including runtime errors such as buffer overflows. " \
24*cb034002SJerome Forissier     "If you're trying to fix a complaint from check_config.h, just remove " \
25*cb034002SJerome Forissier     "it from your configuration file: since Mbed TLS 3.0, it is included " \
26*cb034002SJerome Forissier     "automatically at the right point."
27*cb034002SJerome Forissier #endif /* */
28*cb034002SJerome Forissier 
29*cb034002SJerome Forissier #if (defined(PSA_WANT_ALG_TLS12_PRF) && \
30*cb034002SJerome Forissier     !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PRF)) || \
31*cb034002SJerome Forissier     (defined(PSA_WANT_ALG_TLS12_PSK_TO_MS) && \
32*cb034002SJerome Forissier     !defined(MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS)) || \
33*cb034002SJerome Forissier     (defined(PSA_WANT_ALG_HKDF) && \
34*cb034002SJerome Forissier     !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF)) || \
35*cb034002SJerome Forissier     (defined(PSA_WANT_ALG_HKDF_EXTRACT) && \
36*cb034002SJerome Forissier     !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT)) || \
37*cb034002SJerome Forissier     (defined(PSA_WANT_ALG_HKDF_EXPAND) && \
38*cb034002SJerome Forissier     !defined(MBEDTLS_PSA_ACCEL_ALG_HKDF_EXPAND)) || \
39*cb034002SJerome Forissier     (defined(PSA_WANT_ALG_PBKDF2_HMAC) && \
40*cb034002SJerome Forissier     !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_HMAC))
41*cb034002SJerome Forissier #define PSA_WANT_ALG_HMAC 1
42*cb034002SJerome Forissier #define PSA_WANT_KEY_TYPE_HMAC 1
43*cb034002SJerome Forissier #endif
44*cb034002SJerome Forissier 
45*cb034002SJerome Forissier #if (defined(PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128) && \
46*cb034002SJerome Forissier     !defined(MBEDTLS_PSA_ACCEL_ALG_PBKDF2_AES_CMAC_PRF_128))
47*cb034002SJerome Forissier #define PSA_WANT_KEY_TYPE_AES 1
48*cb034002SJerome Forissier #define PSA_WANT_ALG_CMAC 1
49*cb034002SJerome Forissier #endif
50*cb034002SJerome Forissier 
51*cb034002SJerome Forissier #endif /* PSA_CRYPTO_ADJUST_CONFIG_DEPENDENCIES_H */
52