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