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