
Previously, GCM required enabling either AES or Camellia. However, we also support using GCM with ARIA and without other ciphers. Enable configurations with only ARIA enabled to use GCM.
535 lines
20 KiB
C
535 lines
20 KiB
C
/**
|
|
* \file check_config.h
|
|
*
|
|
* \brief Consistency checks for configuration options
|
|
*/
|
|
/*
|
|
* Copyright (C) 2006-2018, ARM Limited, All Rights Reserved
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* This file is part of mbed TLS (https://tls.mbed.org)
|
|
*/
|
|
|
|
/*
|
|
* It is recommended to include this file from your config.h
|
|
* in order to catch dependency issues early.
|
|
*/
|
|
|
|
#ifndef MBEDTLS_CHECK_CONFIG_H
|
|
#define MBEDTLS_CHECK_CONFIG_H
|
|
|
|
/*
|
|
* We assume CHAR_BIT is 8 in many places. In practice, this is true on our
|
|
* target platforms, so not an issue, but let's just be extra sure.
|
|
*/
|
|
#include <limits.h>
|
|
#if CHAR_BIT != 8
|
|
#error "mbed TLS requires a platform with 8-bit chars"
|
|
#endif
|
|
|
|
#if defined(_WIN32)
|
|
#if !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_C is required on Windows"
|
|
#endif
|
|
|
|
/* Fix the config here. Not convenient to put an #ifdef _WIN32 in config.h as
|
|
* it would confuse config.pl. */
|
|
#if !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && \
|
|
!defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
|
|
#define MBEDTLS_PLATFORM_SNPRINTF_ALT
|
|
#endif
|
|
|
|
#if !defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && \
|
|
!defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO)
|
|
#define MBEDTLS_PLATFORM_VSNPRINTF_ALT
|
|
#endif
|
|
#endif /* _WIN32 */
|
|
|
|
#if defined(TARGET_LIKE_MBED) && defined(MBEDTLS_TIMING_C)
|
|
#error "The TIMING module is not available for mbed OS - please use the timing functions provided by Mbed OS"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_DEPRECATED_WARNING) && \
|
|
!defined(__GNUC__) && !defined(__clang__)
|
|
#error "MBEDTLS_DEPRECATED_WARNING only works with GCC and Clang"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_HAVE_TIME)
|
|
#error "MBEDTLS_HAVE_TIME_DATE without MBEDTLS_HAVE_TIME does not make sense"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_AESNI_C) && !defined(MBEDTLS_HAVE_ASM)
|
|
#error "MBEDTLS_AESNI_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_AES_C)
|
|
#error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_DHM_C) && !defined(MBEDTLS_BIGNUM_C)
|
|
#error "MBEDTLS_DHM_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_CMAC_C) && \
|
|
!defined(MBEDTLS_AES_C) && !defined(MBEDTLS_DES_C)
|
|
#error "MBEDTLS_CMAC_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_NIST_KW_C) && \
|
|
( !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_CIPHER_C) )
|
|
#error "MBEDTLS_NIST_KW_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECDH_C) && !defined(MBEDTLS_ECP_C)
|
|
#error "MBEDTLS_ECDH_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECDSA_C) && \
|
|
( !defined(MBEDTLS_ECP_C) || \
|
|
!defined(MBEDTLS_ASN1_PARSE_C) || \
|
|
!defined(MBEDTLS_ASN1_WRITE_C) )
|
|
#error "MBEDTLS_ECDSA_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECJPAKE_C) && \
|
|
( !defined(MBEDTLS_ECP_C) || !defined(MBEDTLS_MD_C) )
|
|
#error "MBEDTLS_ECJPAKE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_RESTARTABLE) && \
|
|
( defined(MBEDTLS_USE_PSA_CRYPTO) || \
|
|
defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) || \
|
|
defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) || \
|
|
defined(MBEDTLS_ECDSA_SIGN_ALT) || \
|
|
defined(MBEDTLS_ECDSA_VERIFY_ALT) || \
|
|
defined(MBEDTLS_ECDSA_GENKEY_ALT) || \
|
|
defined(MBEDTLS_ECP_INTERNAL_ALT) || \
|
|
defined(MBEDTLS_ECP_ALT) )
|
|
#error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative or PSA-based ECP implementation"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_RESTARTABLE) && \
|
|
! defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
|
|
#error "MBEDTLS_ECP_RESTARTABLE defined, but not MBEDTLS_ECDH_LEGACY_CONTEXT"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C)
|
|
#error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_C) && ( !defined(MBEDTLS_BIGNUM_C) || ( \
|
|
!defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) && \
|
|
!defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) ) )
|
|
#error "MBEDTLS_ECP_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_ASN1_PARSE_C)
|
|
#error "MBEDTLS_PK_PARSE_C defined, but not all prerequesites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ENTROPY_C) && (!defined(MBEDTLS_SHA512_C) && \
|
|
!defined(MBEDTLS_SHA256_C))
|
|
#error "MBEDTLS_ENTROPY_C defined, but not all prerequisites"
|
|
#endif
|
|
#if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_SHA512_C) && \
|
|
defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 64)
|
|
#error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
|
|
#endif
|
|
#if defined(MBEDTLS_ENTROPY_C) && \
|
|
( !defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_ENTROPY_FORCE_SHA256) ) \
|
|
&& defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 32)
|
|
#error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
|
|
#endif
|
|
#if defined(MBEDTLS_ENTROPY_C) && \
|
|
defined(MBEDTLS_ENTROPY_FORCE_SHA256) && !defined(MBEDTLS_SHA256_C)
|
|
#error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_TEST_NULL_ENTROPY) && \
|
|
( !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) )
|
|
#error "MBEDTLS_TEST_NULL_ENTROPY defined, but not all prerequisites"
|
|
#endif
|
|
#if defined(MBEDTLS_TEST_NULL_ENTROPY) && \
|
|
( defined(MBEDTLS_ENTROPY_NV_SEED) || defined(MBEDTLS_ENTROPY_HARDWARE_ALT) || \
|
|
defined(MBEDTLS_HAVEGE_C) )
|
|
#error "MBEDTLS_TEST_NULL_ENTROPY defined, but entropy sources too"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_GCM_C) && ( \
|
|
!defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) && !defined(MBEDTLS_ARIA_C) )
|
|
#error "MBEDTLS_GCM_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_RANDOMIZE_JAC_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_ADD_MIXED_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_DOUBLE_JAC_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_NORMALIZE_JAC_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
#error "MBEDTLS_ECP_NORMALIZE_MXZ_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_HAVEGE_C) && !defined(MBEDTLS_TIMING_C)
|
|
#error "MBEDTLS_HAVEGE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_HKDF_C) && !defined(MBEDTLS_MD_C)
|
|
#error "MBEDTLS_HKDF_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C)
|
|
#error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \
|
|
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
|
|
#error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM)
|
|
#error "MBEDTLS_PADLOCK_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C)
|
|
#error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C)
|
|
#error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PK_C) && \
|
|
( !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_ECP_C) )
|
|
#error "MBEDTLS_PK_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_PK_C)
|
|
#error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PK_WRITE_C) && !defined(MBEDTLS_PK_C)
|
|
#error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\
|
|
defined(MBEDTLS_PLATFORM_EXIT_ALT) )
|
|
#error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\
|
|
( !defined(MBEDTLS_PLATFORM_C) ||\
|
|
!defined(MBEDTLS_HAVE_TIME) )
|
|
#error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
|
|
( !defined(MBEDTLS_PLATFORM_C) ||\
|
|
!defined(MBEDTLS_HAVE_TIME) )
|
|
#error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
|
|
( !defined(MBEDTLS_PLATFORM_C) ||\
|
|
!defined(MBEDTLS_HAVE_TIME) )
|
|
#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
|
|
defined(MBEDTLS_PLATFORM_TIME_ALT) )
|
|
#error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
|
|
defined(MBEDTLS_PLATFORM_TIME_ALT) )
|
|
#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\
|
|
defined(MBEDTLS_PLATFORM_FPRINTF_ALT) )
|
|
#error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
|
|
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
|
|
#error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
|
|
defined(MBEDTLS_PLATFORM_STD_FREE)
|
|
#error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
|
|
#error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
|
|
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
|
|
#error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
|
|
defined(MBEDTLS_PLATFORM_STD_CALLOC)
|
|
#error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO)
|
|
#error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\
|
|
defined(MBEDTLS_PLATFORM_PRINTF_ALT) )
|
|
#error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
|
|
#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\
|
|
defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) )
|
|
#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\
|
|
!defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
|
|
#error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY)
|
|
#error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY)
|
|
#error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY)
|
|
#error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\
|
|
!defined(MBEDTLS_PLATFORM_EXIT_ALT)
|
|
#error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_TIME) &&\
|
|
( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\
|
|
!defined(MBEDTLS_HAVE_TIME) )
|
|
#error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\
|
|
!defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
|
|
#error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\
|
|
!defined(MBEDTLS_PLATFORM_PRINTF_ALT)
|
|
#error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\
|
|
!defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
|
|
#error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ENTROPY_NV_SEED) &&\
|
|
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_ENTROPY_C) )
|
|
#error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\
|
|
!defined(MBEDTLS_ENTROPY_NV_SEED)
|
|
#error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\
|
|
!defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
|
|
#error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\
|
|
!defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
|
|
#error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\
|
|
defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
|
|
#error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\
|
|
( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\
|
|
defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
|
|
#error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PSA_CRYPTO_C) && \
|
|
!( defined(MBEDTLS_CTR_DRBG_C) && \
|
|
defined(MBEDTLS_ENTROPY_C) )
|
|
#error "MBEDTLS_PSA_CRYPTO_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PSA_CRYPTO_SPM) && !defined(MBEDTLS_PSA_CRYPTO_C)
|
|
#error "MBEDTLS_PSA_CRYPTO_SPM defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && \
|
|
! defined(MBEDTLS_PSA_CRYPTO_C)
|
|
#error "MBEDTLS_PSA_CRYPTO_STORAGE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \
|
|
!( defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && \
|
|
defined(MBEDTLS_ENTROPY_NV_SEED) )
|
|
#error "MBEDTLS_PSA_INJECT_ENTROPY defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \
|
|
!defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
|
|
#error "MBEDTLS_PSA_INJECT_ENTROPY is not compatible with actual entropy sources"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PSA_ITS_FILE_C) && \
|
|
!defined(MBEDTLS_FS_IO)
|
|
#error "MBEDTLS_PSA_ITS_FILE_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) || \
|
|
!defined(MBEDTLS_OID_C) )
|
|
#error "MBEDTLS_RSA_C defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_PKCS1_V21) && \
|
|
!defined(MBEDTLS_PKCS1_V15) )
|
|
#error "MBEDTLS_RSA_C defined, but none of the PKCS1 versions enabled"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_THREADING_PTHREAD)
|
|
#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
|
|
#error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites"
|
|
#endif
|
|
#define MBEDTLS_THREADING_IMPL
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_THREADING_ALT)
|
|
#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
|
|
#error "MBEDTLS_THREADING_ALT defined, but not all prerequisites"
|
|
#endif
|
|
#define MBEDTLS_THREADING_IMPL
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL)
|
|
#error "MBEDTLS_THREADING_C defined, single threading implementation required"
|
|
#endif
|
|
#undef MBEDTLS_THREADING_IMPL
|
|
|
|
#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_PSA_CRYPTO_C)
|
|
#error "MBEDTLS_USE_PSA_CRYPTO defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C)
|
|
#error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64)
|
|
#error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously"
|
|
#endif /* MBEDTLS_HAVE_INT32 && MBEDTLS_HAVE_INT64 */
|
|
|
|
#if ( defined(MBEDTLS_HAVE_INT32) || defined(MBEDTLS_HAVE_INT64) ) && \
|
|
defined(MBEDTLS_HAVE_ASM)
|
|
#error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously"
|
|
#endif /* (MBEDTLS_HAVE_INT32 || MBEDTLS_HAVE_INT64) && MBEDTLS_HAVE_ASM */
|
|
|
|
/*
|
|
* Avoid warning from -pedantic. This is a convenient place for this
|
|
* workaround since this is included by every single file before the
|
|
* #if defined(MBEDTLS_xxx_C) that results in empty translation units.
|
|
*/
|
|
typedef int mbedtls_iso_c_forbids_empty_translation_units;
|
|
|
|
#endif /* MBEDTLS_CHECK_CONFIG_H */
|