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-2015, 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_ECDH_C) && !defined(MBEDTLS_ECP_C) 00081 #error "MBEDTLS_ECDH_C defined, but not all prerequisites" 00082 #endif 00083 00084 #if defined(MBEDTLS_ECDSA_C) && \ 00085 ( !defined(MBEDTLS_ECP_C) || \ 00086 !defined(MBEDTLS_ASN1_PARSE_C) || \ 00087 !defined(MBEDTLS_ASN1_WRITE_C) ) 00088 #error "MBEDTLS_ECDSA_C defined, but not all prerequisites" 00089 #endif 00090 00091 #if defined(MBEDTLS_ECJPAKE_C) && \ 00092 ( !defined(MBEDTLS_ECP_C) || !defined(MBEDTLS_MD_C) ) 00093 #error "MBEDTLS_ECJPAKE_C defined, but not all prerequisites" 00094 #endif 00095 00096 #if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C) 00097 #error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites" 00098 #endif 00099 00100 #if defined(MBEDTLS_ECP_C) && ( !defined(MBEDTLS_BIGNUM_C) || ( \ 00101 !defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) && \ 00102 !defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) && \ 00103 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && \ 00104 !defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) && \ 00105 !defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) && \ 00106 !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) && \ 00107 !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) && \ 00108 !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) && \ 00109 !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) && \ 00110 !defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) && \ 00111 !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) ) ) 00112 #error "MBEDTLS_ECP_C defined, but not all prerequisites" 00113 #endif 00114 00115 #if defined(MBEDTLS_ENTROPY_C) && (!defined(MBEDTLS_SHA512_C) && \ 00116 !defined(MBEDTLS_SHA256_C)) 00117 #error "MBEDTLS_ENTROPY_C defined, but not all prerequisites" 00118 #endif 00119 #if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_SHA512_C) && \ 00120 defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 64) 00121 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high" 00122 #endif 00123 #if defined(MBEDTLS_ENTROPY_C) && \ 00124 ( !defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_ENTROPY_FORCE_SHA256) ) \ 00125 && defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 32) 00126 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high" 00127 #endif 00128 #if defined(MBEDTLS_ENTROPY_C) && \ 00129 defined(MBEDTLS_ENTROPY_FORCE_SHA256) && !defined(MBEDTLS_SHA256_C) 00130 #error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites" 00131 #endif 00132 00133 #if defined(MBEDTLS_GCM_C) && ( \ 00134 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) ) 00135 #error "MBEDTLS_GCM_C defined, but not all prerequisites" 00136 #endif 00137 00138 #if defined(MBEDTLS_HAVEGE_C) && !defined(MBEDTLS_TIMING_C) 00139 #error "MBEDTLS_HAVEGE_C defined, but not all prerequisites" 00140 #endif 00141 00142 #if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C) 00143 #error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites" 00144 #endif 00145 00146 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \ 00147 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00148 #error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites" 00149 #endif 00150 00151 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \ 00152 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00153 #error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites" 00154 #endif 00155 00156 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(MBEDTLS_DHM_C) 00157 #error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites" 00158 #endif 00159 00160 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \ 00161 !defined(MBEDTLS_ECDH_C) 00162 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites" 00163 #endif 00164 00165 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) && \ 00166 ( !defined(MBEDTLS_DHM_C) || !defined(MBEDTLS_RSA_C) || \ 00167 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 00168 #error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites" 00169 #endif 00170 00171 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \ 00172 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \ 00173 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 00174 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites" 00175 #endif 00176 00177 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \ 00178 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \ 00179 !defined(MBEDTLS_X509_CRT_PARSE_C) ) 00180 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites" 00181 #endif 00182 00183 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) && \ 00184 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 00185 !defined(MBEDTLS_PKCS1_V15) ) 00186 #error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites" 00187 #endif 00188 00189 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) && \ 00190 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 00191 !defined(MBEDTLS_PKCS1_V15) ) 00192 #error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites" 00193 #endif 00194 00195 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ 00196 ( !defined(MBEDTLS_ECJPAKE_C) || !defined(MBEDTLS_SHA256_C) || \ 00197 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ) 00198 #error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites" 00199 #endif 00200 00201 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ 00202 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00203 #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" 00204 #endif 00205 00206 #if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM) 00207 #error "MBEDTLS_PADLOCK_C defined, but not all prerequisites" 00208 #endif 00209 00210 #if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C) 00211 #error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites" 00212 #endif 00213 00214 #if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C) 00215 #error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites" 00216 #endif 00217 00218 #if defined(MBEDTLS_PK_C) && \ 00219 ( !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_ECP_C) ) 00220 #error "MBEDTLS_PK_C defined, but not all prerequisites" 00221 #endif 00222 00223 #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_PK_C) 00224 #error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites" 00225 #endif 00226 00227 #if defined(MBEDTLS_PK_WRITE_C) && !defined(MBEDTLS_PK_C) 00228 #error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites" 00229 #endif 00230 00231 #if defined(MBEDTLS_PKCS11_C) && !defined(MBEDTLS_PK_C) 00232 #error "MBEDTLS_PKCS11_C defined, but not all prerequisites" 00233 #endif 00234 00235 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C) 00236 #error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites" 00237 #endif 00238 00239 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00240 #error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites" 00241 #endif 00242 00243 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\ 00244 ( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\ 00245 defined(MBEDTLS_PLATFORM_EXIT_ALT) ) 00246 #error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously" 00247 #endif 00248 00249 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00250 #error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites" 00251 #endif 00252 00253 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00254 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites" 00255 #endif 00256 00257 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\ 00258 ( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\ 00259 defined(MBEDTLS_PLATFORM_FPRINTF_ALT) ) 00260 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously" 00261 #endif 00262 00263 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 00264 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00265 #error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites" 00266 #endif 00267 00268 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 00269 defined(MBEDTLS_PLATFORM_STD_FREE) 00270 #error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously" 00271 #endif 00272 00273 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 00274 #error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is" 00275 #endif 00276 00277 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 00278 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 00279 #error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites" 00280 #endif 00281 00282 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 00283 defined(MBEDTLS_PLATFORM_STD_CALLOC) 00284 #error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously" 00285 #endif 00286 00287 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO) 00288 #error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is" 00289 #endif 00290 00291 #if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C) 00292 #error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites" 00293 #endif 00294 00295 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00296 #error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites" 00297 #endif 00298 00299 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00300 #error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites" 00301 #endif 00302 00303 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\ 00304 ( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\ 00305 defined(MBEDTLS_PLATFORM_PRINTF_ALT) ) 00306 #error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously" 00307 #endif 00308 00309 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 00310 #error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites" 00311 #endif 00312 00313 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 00314 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites" 00315 #endif 00316 00317 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\ 00318 ( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\ 00319 defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) ) 00320 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously" 00321 #endif 00322 00323 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\ 00324 !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 00325 #error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites" 00326 #endif 00327 00328 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY) 00329 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites" 00330 #endif 00331 00332 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY) 00333 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites" 00334 #endif 00335 00336 #if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY) 00337 #error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites" 00338 #endif 00339 00340 #if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\ 00341 !defined(MBEDTLS_PLATFORM_EXIT_ALT) 00342 #error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites" 00343 #endif 00344 00345 #if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\ 00346 !defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 00347 #error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites" 00348 #endif 00349 00350 #if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\ 00351 !defined(MBEDTLS_PLATFORM_PRINTF_ALT) 00352 #error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites" 00353 #endif 00354 00355 #if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\ 00356 !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 00357 #error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites" 00358 #endif 00359 00360 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00361 !defined(MBEDTLS_OID_C) ) 00362 #error "MBEDTLS_RSA_C defined, but not all prerequisites" 00363 #endif 00364 00365 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ 00366 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_PKCS1_V21) ) 00367 #error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites" 00368 #endif 00369 00370 #if defined(MBEDTLS_SSL_PROTO_SSL3) && ( !defined(MBEDTLS_MD5_C) || \ 00371 !defined(MBEDTLS_SHA1_C) ) 00372 #error "MBEDTLS_SSL_PROTO_SSL3 defined, but not all prerequisites" 00373 #endif 00374 00375 #if defined(MBEDTLS_SSL_PROTO_TLS1) && ( !defined(MBEDTLS_MD5_C) || \ 00376 !defined(MBEDTLS_SHA1_C) ) 00377 #error "MBEDTLS_SSL_PROTO_TLS1 defined, but not all prerequisites" 00378 #endif 00379 00380 #if defined(MBEDTLS_SSL_PROTO_TLS1_1) && ( !defined(MBEDTLS_MD5_C) || \ 00381 !defined(MBEDTLS_SHA1_C) ) 00382 #error "MBEDTLS_SSL_PROTO_TLS1_1 defined, but not all prerequisites" 00383 #endif 00384 00385 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && ( !defined(MBEDTLS_SHA1_C) && \ 00386 !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) ) 00387 #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" 00388 #endif 00389 00390 #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ 00391 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00392 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00393 #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites" 00394 #endif 00395 00396 #if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C) 00397 #error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites" 00398 #endif 00399 00400 #if defined(MBEDTLS_SSL_TLS_C) && ( !defined(MBEDTLS_CIPHER_C) || \ 00401 !defined(MBEDTLS_MD_C) ) 00402 #error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites" 00403 #endif 00404 00405 #if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C) 00406 #error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites" 00407 #endif 00408 00409 #if defined(MBEDTLS_SSL_TLS_C) && (!defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00410 !defined(MBEDTLS_SSL_PROTO_TLS1) && !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00411 !defined(MBEDTLS_SSL_PROTO_TLS1_2)) 00412 #error "MBEDTLS_SSL_TLS_C defined, but no protocols are active" 00413 #endif 00414 00415 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00416 defined(MBEDTLS_SSL_PROTO_TLS1_1) && !defined(MBEDTLS_SSL_PROTO_TLS1)) 00417 #error "Illegal protocol selection" 00418 #endif 00419 00420 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00421 defined(MBEDTLS_SSL_PROTO_TLS1_2) && !defined(MBEDTLS_SSL_PROTO_TLS1_1)) 00422 #error "Illegal protocol selection" 00423 #endif 00424 00425 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 00426 defined(MBEDTLS_SSL_PROTO_TLS1_2) && (!defined(MBEDTLS_SSL_PROTO_TLS1) || \ 00427 !defined(MBEDTLS_SSL_PROTO_TLS1_1))) 00428 #error "Illegal protocol selection" 00429 #endif 00430 00431 #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS) 00432 #error "MBEDTLS_SSL_DTLS_HELLO_VERIFY defined, but not all prerequisites" 00433 #endif 00434 00435 #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \ 00436 !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) 00437 #error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE defined, but not all prerequisites" 00438 #endif 00439 00440 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) && \ 00441 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 00442 #error "MBEDTLS_SSL_DTLS_ANTI_REPLAY defined, but not all prerequisites" 00443 #endif 00444 00445 #if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT) && \ 00446 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 00447 #error "MBEDTLS_SSL_DTLS_BADMAC_LIMIT defined, but not all prerequisites" 00448 #endif 00449 00450 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ 00451 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00452 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00453 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00454 #error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequsites" 00455 #endif 00456 00457 #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \ 00458 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 00459 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 00460 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 00461 #error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequsites" 00462 #endif 00463 00464 #if defined(MBEDTLS_SSL_TICKET_C) && !defined(MBEDTLS_CIPHER_C) 00465 #error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" 00466 #endif 00467 00468 #if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING) && \ 00469 !defined(MBEDTLS_SSL_PROTO_SSL3) && !defined(MBEDTLS_SSL_PROTO_TLS1) 00470 #error "MBEDTLS_SSL_CBC_RECORD_SPLITTING defined, but not all prerequisites" 00471 #endif 00472 00473 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ 00474 !defined(MBEDTLS_X509_CRT_PARSE_C) 00475 #error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites" 00476 #endif 00477 00478 #if defined(MBEDTLS_THREADING_PTHREAD) 00479 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 00480 #error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites" 00481 #endif 00482 #define MBEDTLS_THREADING_IMPL 00483 #endif 00484 00485 #if defined(MBEDTLS_THREADING_ALT) 00486 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 00487 #error "MBEDTLS_THREADING_ALT defined, but not all prerequisites" 00488 #endif 00489 #define MBEDTLS_THREADING_IMPL 00490 #endif 00491 00492 #if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL) 00493 #error "MBEDTLS_THREADING_C defined, single threading implementation required" 00494 #endif 00495 #undef MBEDTLS_THREADING_IMPL 00496 00497 #if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C) 00498 #error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites" 00499 #endif 00500 00501 #if defined(MBEDTLS_X509_USE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00502 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_PARSE_C) || \ 00503 !defined(MBEDTLS_PK_PARSE_C) ) 00504 #error "MBEDTLS_X509_USE_C defined, but not all prerequisites" 00505 #endif 00506 00507 #if defined(MBEDTLS_X509_CREATE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 00508 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_WRITE_C) || \ 00509 !defined(MBEDTLS_PK_WRITE_C) ) 00510 #error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites" 00511 #endif 00512 00513 #if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00514 #error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites" 00515 #endif 00516 00517 #if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00518 #error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites" 00519 #endif 00520 00521 #if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 00522 #error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites" 00523 #endif 00524 00525 #if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 00526 #error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites" 00527 #endif 00528 00529 #if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 00530 #error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites" 00531 #endif 00532 00533 /* 00534 * Avoid warning from -pedantic. This is a convenient place for this 00535 * workaround since this is included by every single file before the 00536 * #if defined(MBEDTLS_xxx_C) that results in emtpy translation units. 00537 */ 00538 typedef int mbedtls_iso_c_forbids_empty_translation_units; 00539 00540 #endif /* MBEDTLS_CHECK_CONFIG_H */
Generated on Tue Jul 12 2022 12:52:42 by
