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