Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
check_config.h
00001 /** 00002 * \file check_config.h 00003 * 00004 * \brief Consistency checks for configuration options 00005 */ 00006 /* 00007 * Copyright (C) 2006-2018, ARM Limited, All Rights Reserved 00008 * SPDX-License-Identifier: Apache-2.0 00009 * 00010 * Licensed under the Apache License, Version 2.0 (the "License"); you may 00011 * not use this file except in compliance with the License. 00012 * You may obtain a copy of the License at 00013 * 00014 * http://www.apache.org/licenses/LICENSE-2.0 00015 * 00016 * Unless required by applicable law or agreed to in writing, software 00017 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 00018 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00019 * See the License for the specific language governing permissions and 00020 * limitations under the License. 00021 * 00022 * This file is part of mbed TLS (https://tls.mbed.org) 00023 */ 00024 00025 /* 00026 * It is recommended to include this file from your config.h 00027 * in order to catch dependency issues early. 00028 */ 00029 00030 #ifndef MBEDTLS_CHECK_CONFIG_H 00031 #define MBEDTLS_CHECK_CONFIG_H 00032 00033 /* 00034 * We assume CHAR_BIT is 8 in many places. In practice, this is true on our 00035 * target platforms, so not an issue, but let's just be extra sure. 00036 */ 00037 #include <limits.h> 00038 #if CHAR_BIT != 8 00039 #error "mbed TLS requires a platform with 8-bit chars" 00040 #endif 00041 00042 #if defined(_WIN32) 00043 #if !defined(MBEDTLS_PLATFORM_C) 00044 #error "MBEDTLS_PLATFORM_C is required on Windows" 00045 #endif 00046 00047 /* Fix the config here. Not convenient to put an #ifdef _WIN32 in config.h as 00048 * it would confuse config.pl. */ 00049 #if !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && \ 00050 !defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) 00051 #define MBEDTLS_PLATFORM_SNPRINTF_ALT 00052 #endif 00053 #endif /* _WIN32 */ 00054 00055 #if defined(TARGET_LIKE_MBED) && \ 00056 ( defined(MBEDTLS_NET_C) || defined(MBEDTLS_TIMING_C) ) 00057 #error "The NET and TIMING modules are not available for mbed OS - please use the network and timing functions provided by mbed OS" 00058 #endif 00059 00060 #if defined(MBEDTLS_DEPRECATED_WARNING) && \ 00061 !defined(__GNUC__) && !defined(__clang__) 00062 #error "MBEDTLS_DEPRECATED_WARNING only works with GCC and Clang" 00063 #endif 00064 00065 #if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_HAVE_TIME) 00066 #error "MBEDTLS_HAVE_TIME_DATE without MBEDTLS_HAVE_TIME does not make sense" 00067 #endif 00068 00069 #if defined(MBEDTLS_AESNI_C) && !defined(MBEDTLS_HAVE_ASM) 00070 #error "MBEDTLS_AESNI_C defined, but not all prerequisites" 00071 #endif 00072 00073 #if defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_AES_C) 00074 #error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites" 00075 #endif 00076 00077 #if defined(MBEDTLS_DHM_C) && !defined(MBEDTLS_BIGNUM_C) 00078 #error "MBEDTLS_DHM_C defined, but not all prerequisites" 00079 #endif 00080 00081 #if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT) && !defined(MBEDTLS_SSL_TRUNCATED_HMAC) 00082 #error "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT defined, but not all prerequisites" 00083 #endif 00084 00085 #if defined(MBEDTLS_CMAC_C) && \ 00086 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_DES_C) 00087 #error "MBEDTLS_CMAC_C defined, but not all prerequisites" 00088 #endif 00089 00090 #if defined(MBEDTLS_NIST_KW_C) && \ 00091 ( !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_CIPHER_C) ) 00092 #error "MBEDTLS_NIST_KW_C defined, but not all prerequisites" 00093 #endif 00094 00095 #if defined(MBEDTLS_ECDH_C) && !defined(MBEDTLS_ECP_C) 00096 #error "MBEDTLS_ECDH_C defined, but not all prerequisites" 00097 #endif 00098 00099 #if defined(MBEDTLS_ECDSA_C) && \ 00100 ( !defined(MBEDTLS_ECP_C) || \ 00101 !defined(MBEDTLS_ASN1_PARSE_C) || \ 00102 !defined(MBEDTLS_ASN1_WRITE_C) ) 00103 #error "MBEDTLS_ECDSA_C defined, but not all prerequisites" 00104 #endif 00105 00106 #if defined(MBEDTLS_ECJPAKE_C) && \ 00107 ( !defined(MBEDTLS_ECP_C) || !defined(MBEDTLS_MD_C) ) 00108 #error "MBEDTLS_ECJPAKE_C defined, but not all prerequisites" 00109 #endif 00110 00111 #if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C) 00112 #error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites" 00113 #endif 00114 00115 #if defined(MBEDTLS_ECP_C) && ( !defined(MBEDTLS_BIGNUM_C) || ( \ 00116 !defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) && \ 00117 !defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) && \ 00118 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && \ 00119 !defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) && \ 00120 !defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) && \ 00121 !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) && \ 00122 !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) && \ 00123 !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) && \ 00124 !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) && \ 00125 !defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) && \ 00126 !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) ) ) 00127 #error "MBEDTLS_ECP_C defined, but not all prerequisites" 00128 #endif 00129 00130 #if defined(MBEDTLS_ENTROPY_C) && (!defined(MBEDTLS_SHA512_C) && \ 00131 !defined(MBEDTLS_SHA256_C)) 00132 #error "MBEDTLS_ENTROPY_C defined, but not all prerequisites" 00133 #endif 00134 #if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_SHA512_C) && \ 00135 defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 64) 00136 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high" 00137 #endif 00138 #if defined(MBEDTLS_ENTROPY_C) && \ 00139 ( !defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_ENTROPY_FORCE_SHA256) ) \ 00140 && defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 32) 00141 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high" 00142 #endif 00143 #if defined(MBEDTLS_ENTROPY_C) && \ 00144 defined(MBEDTLS_ENTROPY_FORCE_SHA256) && !defined(MBEDTLS_SHA256_C) 00145 #error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites" 00146 #endif 00147 00148 #if defined(MBEDTLS_TEST_NULL_ENTROPY) && \ 00149 ( !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) ) 00150 #error "MBEDTLS_TEST_NULL_ENTROPY defined, but not all prerequisites" 00151 #endif 00152 #if defined(MBEDTLS_TEST_NULL_ENTROPY) && \ 00153 ( defined(MBEDTLS_ENTROPY_NV_SEED) || defined(MBEDTLS_ENTROPY_HARDWARE_ALT) || \ 00154 defined(MBEDTLS_HAVEGE_C) ) 00155 #error "MBEDTLS_TEST_NULL_ENTROPY defined, but entropy sources too" 00156 #endif 00157 00158 #if defined(MBEDTLS_GCM_C) && ( \ 00159 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) ) 00160 #error "MBEDTLS_GCM_C defined, but not all prerequisites" 00161 #endif 00162 00163 #if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00164 #error "MBEDTLS_ECP_RANDOMIZE_JAC_ALT defined, but not all prerequisites" 00165 #endif 00166 00167 #if defined(MBEDTLS_ECP_ADD_MIXED_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00168 #error "MBEDTLS_ECP_ADD_MIXED_ALT defined, but not all prerequisites" 00169 #endif 00170 00171 #if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00172 #error "MBEDTLS_ECP_DOUBLE_JAC_ALT defined, but not all prerequisites" 00173 #endif 00174 00175 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00176 #error "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT defined, but not all prerequisites" 00177 #endif 00178 00179 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00180 #error "MBEDTLS_ECP_NORMALIZE_JAC_ALT defined, but not all prerequisites" 00181 #endif 00182 00183 #if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00184 #error "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT defined, but not all prerequisites" 00185 #endif 00186 00187 #if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00188 #error "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT defined, but not all prerequisites" 00189 #endif 00190 00191 #if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 00192 #error "MBEDTLS_ECP_NORMALIZE_MXZ_ALT defined, but not all prerequisites" 00193 #endif 00194 00195 #if defined(MBEDTLS_HAVEGE_C) && !defined(MBEDTLS_TIMING_C) 00196 #error "MBEDTLS_HAVEGE_C defined, but not all prerequisites" 00197 #endif 00198 00199 #if defined(MBEDTLS_HKDF_C) && !defined(MBEDTLS_MD_C) 00200 #error "MBEDTLS_HKDF_C defined, but not all prerequisites" 00201 #endif 00202 00203 #if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C) 00204 #error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites" 00205 #endif 00206 00207 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \ 00208 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00209 #error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites" 00210 #endif 00211 00212 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \ 00213 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00214 #error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites" 00215 #endif 00216 00217 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(MBEDTLS_DHM_C) 00218 #error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites" 00219 #endif 00220 00221 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \ 00222 !defined(MBEDTLS_ECDH_C) 00223 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites" 00224 #endif 00225 00226 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) && \ 00227 ( !defined(MBEDTLS_DHM_C) || !defined(MBEDTLS_RSA_C) || \ 00228 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 00229 #error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites" 00230 #endif 00231 00232 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \ 00233 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \ 00234 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 00235 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites" 00236 #endif 00237 00238 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \ 00239 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \ 00240 !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00241 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites" 00242 #endif 00243 00244 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) && \ 00245 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 00246 !defined(MBEDTLS_PKCS1_V15) ) 00247 #error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites" 00248 #endif 00249 00250 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) && \ 00251 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 00252 !defined(MBEDTLS_PKCS1_V15) ) 00253 #error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites" 00254 #endif 00255 00256 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ 00257 ( !defined(MBEDTLS_ECJPAKE_C) || !defined(MBEDTLS_SHA256_C) || \ 00258 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ) 00259 #error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites" 00260 #endif 00261 00262 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ 00263 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00264 #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" 00265 #endif 00266 00267 #if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM) 00268 #error "MBEDTLS_PADLOCK_C defined, but not all prerequisites" 00269 #endif 00270 00271 #if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C) 00272 #error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites" 00273 #endif 00274 00275 #if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C) 00276 #error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites" 00277 #endif 00278 00279 #if defined(MBEDTLS_PK_C) && \ 00280 ( !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_ECP_C) ) 00281 #error "MBEDTLS_PK_C defined, but not all prerequisites" 00282 #endif 00283 00284 #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_PK_C) 00285 #error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites" 00286 #endif 00287 00288 #if defined(MBEDTLS_PK_WRITE_C) && !defined(MBEDTLS_PK_C) 00289 #error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites" 00290 #endif 00291 00292 #if defined(MBEDTLS_PKCS11_C) && !defined(MBEDTLS_PK_C) 00293 #error "MBEDTLS_PKCS11_C defined, but not all prerequisites" 00294 #endif 00295 00296 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C) 00297 #error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites" 00298 #endif 00299 00300 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00301 #error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites" 00302 #endif 00303 00304 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\ 00305 ( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\ 00306 defined(MBEDTLS_PLATFORM_EXIT_ALT) ) 00307 #error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously" 00308 #endif 00309 00310 #if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\ 00311 ( !defined(MBEDTLS_PLATFORM_C) ||\ 00312 !defined(MBEDTLS_HAVE_TIME) ) 00313 #error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites" 00314 #endif 00315 00316 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\ 00317 ( !defined(MBEDTLS_PLATFORM_C) ||\ 00318 !defined(MBEDTLS_HAVE_TIME) ) 00319 #error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites" 00320 #endif 00321 00322 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\ 00323 ( !defined(MBEDTLS_PLATFORM_C) ||\ 00324 !defined(MBEDTLS_HAVE_TIME) ) 00325 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites" 00326 #endif 00327 00328 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\ 00329 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\ 00330 defined(MBEDTLS_PLATFORM_TIME_ALT) ) 00331 #error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously" 00332 #endif 00333 00334 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\ 00335 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\ 00336 defined(MBEDTLS_PLATFORM_TIME_ALT) ) 00337 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously" 00338 #endif 00339 00340 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00341 #error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites" 00342 #endif 00343 00344 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00345 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites" 00346 #endif 00347 00348 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\ 00349 ( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\ 00350 defined(MBEDTLS_PLATFORM_FPRINTF_ALT) ) 00351 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously" 00352 #endif 00353 00354 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 00355 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00356 #error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites" 00357 #endif 00358 00359 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 00360 defined(MBEDTLS_PLATFORM_STD_FREE) 00361 #error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously" 00362 #endif 00363 00364 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 00365 #error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is" 00366 #endif 00367 00368 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 00369 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00370 #error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites" 00371 #endif 00372 00373 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 00374 defined(MBEDTLS_PLATFORM_STD_CALLOC) 00375 #error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously" 00376 #endif 00377 00378 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO) 00379 #error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is" 00380 #endif 00381 00382 #if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C) 00383 #error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites" 00384 #endif 00385 00386 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00387 #error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites" 00388 #endif 00389 00390 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00391 #error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites" 00392 #endif 00393 00394 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\ 00395 ( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\ 00396 defined(MBEDTLS_PLATFORM_PRINTF_ALT) ) 00397 #error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously" 00398 #endif 00399 00400 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00401 #error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites" 00402 #endif 00403 00404 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00405 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites" 00406 #endif 00407 00408 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\ 00409 ( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\ 00410 defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) ) 00411 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously" 00412 #endif 00413 00414 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\ 00415 !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 00416 #error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites" 00417 #endif 00418 00419 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY) 00420 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites" 00421 #endif 00422 00423 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY) 00424 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites" 00425 #endif 00426 00427 #if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY) 00428 #error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites" 00429 #endif 00430 00431 #if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\ 00432 !defined(MBEDTLS_PLATFORM_EXIT_ALT) 00433 #error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites" 00434 #endif 00435 00436 #if defined(MBEDTLS_PLATFORM_STD_TIME) &&\ 00437 ( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\ 00438 !defined(MBEDTLS_HAVE_TIME) ) 00439 #error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites" 00440 #endif 00441 00442 #if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\ 00443 !defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 00444 #error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites" 00445 #endif 00446 00447 #if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\ 00448 !defined(MBEDTLS_PLATFORM_PRINTF_ALT) 00449 #error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites" 00450 #endif 00451 00452 #if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\ 00453 !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 00454 #error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites" 00455 #endif 00456 00457 #if defined(MBEDTLS_ENTROPY_NV_SEED) &&\ 00458 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_ENTROPY_C) ) 00459 #error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites" 00460 #endif 00461 00462 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\ 00463 !defined(MBEDTLS_ENTROPY_NV_SEED) 00464 #error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites" 00465 #endif 00466 00467 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\ 00468 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 00469 #error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites" 00470 #endif 00471 00472 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\ 00473 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 00474 #error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites" 00475 #endif 00476 00477 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\ 00478 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\ 00479 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) ) 00480 #error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously" 00481 #endif 00482 00483 #if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\ 00484 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\ 00485 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) ) 00486 #error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously" 00487 #endif 00488 00489 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00490 !defined(MBEDTLS_OID_C) ) 00491 #error "MBEDTLS_RSA_C defined, but not all prerequisites" 00492 #endif 00493 00494 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_PKCS1_V21) && \ 00495 !defined(MBEDTLS_PKCS1_V15) ) 00496 #error "MBEDTLS_RSA_C defined, but none of the PKCS1 versions enabled" 00497 #endif 00498 00499 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ 00500 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_PKCS1_V21) ) 00501 #error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites" 00502 #endif 00503 00504 #if defined(MBEDTLS_SSL_PROTO_SSL3) && ( !defined(MBEDTLS_MD5_C) || \ 00505 !defined(MBEDTLS_SHA1_C) ) 00506 #error "MBEDTLS_SSL_PROTO_SSL3 defined, but not all prerequisites" 00507 #endif 00508 00509 #if defined(MBEDTLS_SSL_PROTO_TLS1) && ( !defined(MBEDTLS_MD5_C) || \ 00510 !defined(MBEDTLS_SHA1_C) ) 00511 #error "MBEDTLS_SSL_PROTO_TLS1 defined, but not all prerequisites" 00512 #endif 00513 00514 #if defined(MBEDTLS_SSL_PROTO_TLS1_1) && ( !defined(MBEDTLS_MD5_C) || \ 00515 !defined(MBEDTLS_SHA1_C) ) 00516 #error "MBEDTLS_SSL_PROTO_TLS1_1 defined, but not all prerequisites" 00517 #endif 00518 00519 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && ( !defined(MBEDTLS_SHA1_C) && \ 00520 !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) ) 00521 #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" 00522 #endif 00523 00524 #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ 00525 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00526 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00527 #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites" 00528 #endif 00529 00530 #if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C) 00531 #error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites" 00532 #endif 00533 00534 #if defined(MBEDTLS_SSL_TLS_C) && ( !defined(MBEDTLS_CIPHER_C) || \ 00535 !defined(MBEDTLS_MD_C) ) 00536 #error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites" 00537 #endif 00538 00539 #if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C) 00540 #error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites" 00541 #endif 00542 00543 #if defined(MBEDTLS_SSL_TLS_C) && (!defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00544 !defined(MBEDTLS_SSL_PROTO_TLS1) && !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00545 !defined(MBEDTLS_SSL_PROTO_TLS1_2)) 00546 #error "MBEDTLS_SSL_TLS_C defined, but no protocols are active" 00547 #endif 00548 00549 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00550 defined(MBEDTLS_SSL_PROTO_TLS1_1) && !defined(MBEDTLS_SSL_PROTO_TLS1)) 00551 #error "Illegal protocol selection" 00552 #endif 00553 00554 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00555 defined(MBEDTLS_SSL_PROTO_TLS1_2) && !defined(MBEDTLS_SSL_PROTO_TLS1_1)) 00556 #error "Illegal protocol selection" 00557 #endif 00558 00559 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00560 defined(MBEDTLS_SSL_PROTO_TLS1_2) && (!defined(MBEDTLS_SSL_PROTO_TLS1) || \ 00561 !defined(MBEDTLS_SSL_PROTO_TLS1_1))) 00562 #error "Illegal protocol selection" 00563 #endif 00564 00565 #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS) 00566 #error "MBEDTLS_SSL_DTLS_HELLO_VERIFY defined, but not all prerequisites" 00567 #endif 00568 00569 #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \ 00570 !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) 00571 #error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE defined, but not all prerequisites" 00572 #endif 00573 00574 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) && \ 00575 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 00576 #error "MBEDTLS_SSL_DTLS_ANTI_REPLAY defined, but not all prerequisites" 00577 #endif 00578 00579 #if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT) && \ 00580 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 00581 #error "MBEDTLS_SSL_DTLS_BADMAC_LIMIT defined, but not all prerequisites" 00582 #endif 00583 00584 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ 00585 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00586 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00587 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00588 #error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequsites" 00589 #endif 00590 00591 #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \ 00592 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00593 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00594 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00595 #error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequsites" 00596 #endif 00597 00598 #if defined(MBEDTLS_SSL_TICKET_C) && !defined(MBEDTLS_CIPHER_C) 00599 #error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" 00600 #endif 00601 00602 #if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING) && \ 00603 !defined(MBEDTLS_SSL_PROTO_SSL3) && !defined(MBEDTLS_SSL_PROTO_TLS1) 00604 #error "MBEDTLS_SSL_CBC_RECORD_SPLITTING defined, but not all prerequisites" 00605 #endif 00606 00607 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ 00608 !defined(MBEDTLS_X509_CRT_PARSE_C) 00609 #error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites" 00610 #endif 00611 00612 #if defined(MBEDTLS_THREADING_PTHREAD) 00613 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 00614 #error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites" 00615 #endif 00616 #define MBEDTLS_THREADING_IMPL 00617 #endif 00618 00619 #if defined(MBEDTLS_THREADING_ALT) 00620 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 00621 #error "MBEDTLS_THREADING_ALT defined, but not all prerequisites" 00622 #endif 00623 #define MBEDTLS_THREADING_IMPL 00624 #endif 00625 00626 #if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL) 00627 #error "MBEDTLS_THREADING_C defined, single threading implementation required" 00628 #endif 00629 #undef MBEDTLS_THREADING_IMPL 00630 00631 #if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C) 00632 #error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites" 00633 #endif 00634 00635 #if defined(MBEDTLS_X509_USE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00636 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_PARSE_C) || \ 00637 !defined(MBEDTLS_PK_PARSE_C) ) 00638 #error "MBEDTLS_X509_USE_C defined, but not all prerequisites" 00639 #endif 00640 00641 #if defined(MBEDTLS_X509_CREATE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00642 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_WRITE_C) || \ 00643 !defined(MBEDTLS_PK_WRITE_C) ) 00644 #error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites" 00645 #endif 00646 00647 #if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00648 #error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites" 00649 #endif 00650 00651 #if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00652 #error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites" 00653 #endif 00654 00655 #if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00656 #error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites" 00657 #endif 00658 00659 #if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 00660 #error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites" 00661 #endif 00662 00663 #if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 00664 #error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites" 00665 #endif 00666 00667 #if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64) 00668 #error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously" 00669 #endif /* MBEDTLS_HAVE_INT32 && MBEDTLS_HAVE_INT64 */ 00670 00671 #if ( defined(MBEDTLS_HAVE_INT32) || defined(MBEDTLS_HAVE_INT64) ) && \ 00672 defined(MBEDTLS_HAVE_ASM) 00673 #error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously" 00674 #endif /* (MBEDTLS_HAVE_INT32 || MBEDTLS_HAVE_INT64) && MBEDTLS_HAVE_ASM */ 00675 00676 /* 00677 * Avoid warning from -pedantic. This is a convenient place for this 00678 * workaround since this is included by every single file before the 00679 * #if defined(MBEDTLS_xxx_C) that results in emtpy translation units. 00680 */ 00681 typedef int mbedtls_iso_c_forbids_empty_translation_units; 00682 00683 #endif /* MBEDTLS_CHECK_CONFIG_H */
Generated on Tue Aug 9 2022 00:37:04 by
1.7.2