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 mbed-os 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_HAVEGE_C) && !defined(MBEDTLS_TIMING_C) 00154 #error "MBEDTLS_HAVEGE_C defined, but not all prerequisites" 00155 #endif 00156 00157 #if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C) 00158 #error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites" 00159 #endif 00160 00161 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \ 00162 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00163 #error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites" 00164 #endif 00165 00166 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \ 00167 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00168 #error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites" 00169 #endif 00170 00171 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(MBEDTLS_DHM_C) 00172 #error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites" 00173 #endif 00174 00175 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \ 00176 !defined(MBEDTLS_ECDH_C) 00177 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites" 00178 #endif 00179 00180 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) && \ 00181 ( !defined(MBEDTLS_DHM_C) || !defined(MBEDTLS_RSA_C) || \ 00182 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 00183 #error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites" 00184 #endif 00185 00186 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \ 00187 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \ 00188 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 00189 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites" 00190 #endif 00191 00192 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \ 00193 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \ 00194 !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00195 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites" 00196 #endif 00197 00198 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) && \ 00199 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 00200 !defined(MBEDTLS_PKCS1_V15) ) 00201 #error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites" 00202 #endif 00203 00204 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) && \ 00205 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 00206 !defined(MBEDTLS_PKCS1_V15) ) 00207 #error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites" 00208 #endif 00209 00210 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ 00211 ( !defined(MBEDTLS_ECJPAKE_C) || !defined(MBEDTLS_SHA256_C) || \ 00212 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ) 00213 #error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites" 00214 #endif 00215 00216 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ 00217 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00218 #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" 00219 #endif 00220 00221 #if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM) 00222 #error "MBEDTLS_PADLOCK_C defined, but not all prerequisites" 00223 #endif 00224 00225 #if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C) 00226 #error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites" 00227 #endif 00228 00229 #if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C) 00230 #error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites" 00231 #endif 00232 00233 #if defined(MBEDTLS_PK_C) && \ 00234 ( !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_ECP_C) ) 00235 #error "MBEDTLS_PK_C defined, but not all prerequisites" 00236 #endif 00237 00238 #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_PK_C) 00239 #error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites" 00240 #endif 00241 00242 #if defined(MBEDTLS_PK_WRITE_C) && !defined(MBEDTLS_PK_C) 00243 #error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites" 00244 #endif 00245 00246 #if defined(MBEDTLS_PKCS11_C) && !defined(MBEDTLS_PK_C) 00247 #error "MBEDTLS_PKCS11_C defined, but not all prerequisites" 00248 #endif 00249 00250 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C) 00251 #error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites" 00252 #endif 00253 00254 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00255 #error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites" 00256 #endif 00257 00258 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\ 00259 ( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\ 00260 defined(MBEDTLS_PLATFORM_EXIT_ALT) ) 00261 #error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously" 00262 #endif 00263 00264 #if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\ 00265 ( !defined(MBEDTLS_PLATFORM_C) ||\ 00266 !defined(MBEDTLS_HAVE_TIME) ) 00267 #error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites" 00268 #endif 00269 00270 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\ 00271 ( !defined(MBEDTLS_PLATFORM_C) ||\ 00272 !defined(MBEDTLS_HAVE_TIME) ) 00273 #error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites" 00274 #endif 00275 00276 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\ 00277 ( !defined(MBEDTLS_PLATFORM_C) ||\ 00278 !defined(MBEDTLS_HAVE_TIME) ) 00279 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites" 00280 #endif 00281 00282 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\ 00283 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\ 00284 defined(MBEDTLS_PLATFORM_TIME_ALT) ) 00285 #error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously" 00286 #endif 00287 00288 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\ 00289 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\ 00290 defined(MBEDTLS_PLATFORM_TIME_ALT) ) 00291 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously" 00292 #endif 00293 00294 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00295 #error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites" 00296 #endif 00297 00298 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00299 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites" 00300 #endif 00301 00302 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\ 00303 ( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\ 00304 defined(MBEDTLS_PLATFORM_FPRINTF_ALT) ) 00305 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously" 00306 #endif 00307 00308 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 00309 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00310 #error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites" 00311 #endif 00312 00313 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 00314 defined(MBEDTLS_PLATFORM_STD_FREE) 00315 #error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously" 00316 #endif 00317 00318 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 00319 #error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is" 00320 #endif 00321 00322 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 00323 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00324 #error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites" 00325 #endif 00326 00327 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 00328 defined(MBEDTLS_PLATFORM_STD_CALLOC) 00329 #error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously" 00330 #endif 00331 00332 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO) 00333 #error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is" 00334 #endif 00335 00336 #if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C) 00337 #error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites" 00338 #endif 00339 00340 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00341 #error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites" 00342 #endif 00343 00344 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00345 #error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites" 00346 #endif 00347 00348 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\ 00349 ( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\ 00350 defined(MBEDTLS_PLATFORM_PRINTF_ALT) ) 00351 #error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously" 00352 #endif 00353 00354 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00355 #error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites" 00356 #endif 00357 00358 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00359 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites" 00360 #endif 00361 00362 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\ 00363 ( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\ 00364 defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) ) 00365 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously" 00366 #endif 00367 00368 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\ 00369 !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 00370 #error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites" 00371 #endif 00372 00373 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY) 00374 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites" 00375 #endif 00376 00377 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY) 00378 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites" 00379 #endif 00380 00381 #if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY) 00382 #error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites" 00383 #endif 00384 00385 #if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\ 00386 !defined(MBEDTLS_PLATFORM_EXIT_ALT) 00387 #error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites" 00388 #endif 00389 00390 #if defined(MBEDTLS_PLATFORM_STD_TIME) &&\ 00391 ( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\ 00392 !defined(MBEDTLS_HAVE_TIME) ) 00393 #error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites" 00394 #endif 00395 00396 #if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\ 00397 !defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 00398 #error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites" 00399 #endif 00400 00401 #if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\ 00402 !defined(MBEDTLS_PLATFORM_PRINTF_ALT) 00403 #error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites" 00404 #endif 00405 00406 #if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\ 00407 !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 00408 #error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites" 00409 #endif 00410 00411 #if defined(MBEDTLS_ENTROPY_NV_SEED) &&\ 00412 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_ENTROPY_C) ) 00413 #error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites" 00414 #endif 00415 00416 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\ 00417 !defined(MBEDTLS_ENTROPY_NV_SEED) 00418 #error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites" 00419 #endif 00420 00421 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\ 00422 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 00423 #error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites" 00424 #endif 00425 00426 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\ 00427 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 00428 #error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites" 00429 #endif 00430 00431 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\ 00432 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\ 00433 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) ) 00434 #error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously" 00435 #endif 00436 00437 #if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\ 00438 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\ 00439 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) ) 00440 #error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously" 00441 #endif 00442 00443 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00444 !defined(MBEDTLS_OID_C) ) 00445 #error "MBEDTLS_RSA_C defined, but not all prerequisites" 00446 #endif 00447 00448 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_PKCS1_V21) && \ 00449 !defined(MBEDTLS_PKCS1_V15) ) 00450 #error "MBEDTLS_RSA_C defined, but none of the PKCS1 versions enabled" 00451 #endif 00452 00453 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ 00454 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_PKCS1_V21) ) 00455 #error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites" 00456 #endif 00457 00458 #if defined(MBEDTLS_SSL_PROTO_SSL3) && ( !defined(MBEDTLS_MD5_C) || \ 00459 !defined(MBEDTLS_SHA1_C) ) 00460 #error "MBEDTLS_SSL_PROTO_SSL3 defined, but not all prerequisites" 00461 #endif 00462 00463 #if defined(MBEDTLS_SSL_PROTO_TLS1) && ( !defined(MBEDTLS_MD5_C) || \ 00464 !defined(MBEDTLS_SHA1_C) ) 00465 #error "MBEDTLS_SSL_PROTO_TLS1 defined, but not all prerequisites" 00466 #endif 00467 00468 #if defined(MBEDTLS_SSL_PROTO_TLS1_1) && ( !defined(MBEDTLS_MD5_C) || \ 00469 !defined(MBEDTLS_SHA1_C) ) 00470 #error "MBEDTLS_SSL_PROTO_TLS1_1 defined, but not all prerequisites" 00471 #endif 00472 00473 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && ( !defined(MBEDTLS_SHA1_C) && \ 00474 !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) ) 00475 #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" 00476 #endif 00477 00478 #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ 00479 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00480 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00481 #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites" 00482 #endif 00483 00484 #if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C) 00485 #error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites" 00486 #endif 00487 00488 #if defined(MBEDTLS_SSL_TLS_C) && ( !defined(MBEDTLS_CIPHER_C) || \ 00489 !defined(MBEDTLS_MD_C) ) 00490 #error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites" 00491 #endif 00492 00493 #if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C) 00494 #error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites" 00495 #endif 00496 00497 #if defined(MBEDTLS_SSL_TLS_C) && (!defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00498 !defined(MBEDTLS_SSL_PROTO_TLS1) && !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00499 !defined(MBEDTLS_SSL_PROTO_TLS1_2)) 00500 #error "MBEDTLS_SSL_TLS_C defined, but no protocols are active" 00501 #endif 00502 00503 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00504 defined(MBEDTLS_SSL_PROTO_TLS1_1) && !defined(MBEDTLS_SSL_PROTO_TLS1)) 00505 #error "Illegal protocol selection" 00506 #endif 00507 00508 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00509 defined(MBEDTLS_SSL_PROTO_TLS1_2) && !defined(MBEDTLS_SSL_PROTO_TLS1_1)) 00510 #error "Illegal protocol selection" 00511 #endif 00512 00513 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00514 defined(MBEDTLS_SSL_PROTO_TLS1_2) && (!defined(MBEDTLS_SSL_PROTO_TLS1) || \ 00515 !defined(MBEDTLS_SSL_PROTO_TLS1_1))) 00516 #error "Illegal protocol selection" 00517 #endif 00518 00519 #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS) 00520 #error "MBEDTLS_SSL_DTLS_HELLO_VERIFY defined, but not all prerequisites" 00521 #endif 00522 00523 #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \ 00524 !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) 00525 #error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE defined, but not all prerequisites" 00526 #endif 00527 00528 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) && \ 00529 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 00530 #error "MBEDTLS_SSL_DTLS_ANTI_REPLAY defined, but not all prerequisites" 00531 #endif 00532 00533 #if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT) && \ 00534 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 00535 #error "MBEDTLS_SSL_DTLS_BADMAC_LIMIT defined, but not all prerequisites" 00536 #endif 00537 00538 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ 00539 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00540 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00541 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00542 #error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequsites" 00543 #endif 00544 00545 #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \ 00546 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00547 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00548 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00549 #error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequsites" 00550 #endif 00551 00552 #if defined(MBEDTLS_SSL_TICKET_C) && !defined(MBEDTLS_CIPHER_C) 00553 #error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" 00554 #endif 00555 00556 #if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING) && \ 00557 !defined(MBEDTLS_SSL_PROTO_SSL3) && !defined(MBEDTLS_SSL_PROTO_TLS1) 00558 #error "MBEDTLS_SSL_CBC_RECORD_SPLITTING defined, but not all prerequisites" 00559 #endif 00560 00561 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ 00562 !defined(MBEDTLS_X509_CRT_PARSE_C) 00563 #error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites" 00564 #endif 00565 00566 #if defined(MBEDTLS_THREADING_PTHREAD) 00567 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 00568 #error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites" 00569 #endif 00570 #define MBEDTLS_THREADING_IMPL 00571 #endif 00572 00573 #if defined(MBEDTLS_THREADING_ALT) 00574 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 00575 #error "MBEDTLS_THREADING_ALT defined, but not all prerequisites" 00576 #endif 00577 #define MBEDTLS_THREADING_IMPL 00578 #endif 00579 00580 #if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL) 00581 #error "MBEDTLS_THREADING_C defined, single threading implementation required" 00582 #endif 00583 #undef MBEDTLS_THREADING_IMPL 00584 00585 #if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C) 00586 #error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites" 00587 #endif 00588 00589 #if defined(MBEDTLS_X509_USE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00590 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_PARSE_C) || \ 00591 !defined(MBEDTLS_PK_PARSE_C) ) 00592 #error "MBEDTLS_X509_USE_C defined, but not all prerequisites" 00593 #endif 00594 00595 #if defined(MBEDTLS_X509_CREATE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00596 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_WRITE_C) || \ 00597 !defined(MBEDTLS_PK_WRITE_C) ) 00598 #error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites" 00599 #endif 00600 00601 #if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00602 #error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites" 00603 #endif 00604 00605 #if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00606 #error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites" 00607 #endif 00608 00609 #if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00610 #error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites" 00611 #endif 00612 00613 #if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 00614 #error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites" 00615 #endif 00616 00617 #if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 00618 #error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites" 00619 #endif 00620 00621 /* 00622 * Avoid warning from -pedantic. This is a convenient place for this 00623 * workaround since this is included by every single file before the 00624 * #if defined(MBEDTLS_xxx_C) that results in emtpy translation units. 00625 */ 00626 typedef int mbedtls_iso_c_forbids_empty_translation_units; 00627 00628 #endif /* MBEDTLS_CHECK_CONFIG_H */
Generated on Tue Jul 12 2022 13:15:34 by
