00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 #ifndef MBEDTLS_CHECK_CONFIG_H
00056 #define MBEDTLS_CHECK_CONFIG_H
00057
00058
00059
00060
00061
00062 #include <limits.h>
00063 #if CHAR_BIT != 8
00064 #error "mbed TLS requires a platform with 8-bit chars"
00065 #endif
00066
00067 #if defined(_WIN32)
00068 #if !defined(MBEDTLS_PLATFORM_C)
00069 #error "MBEDTLS_PLATFORM_C is required on Windows"
00070 #endif
00071
00072
00073
00074 #if !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && \
00075 !defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
00076 #define MBEDTLS_PLATFORM_SNPRINTF_ALT
00077 #endif
00078 #endif
00079
00080 #if defined(TARGET_LIKE_MBED) && \
00081 ( defined(MBEDTLS_NET_C) || defined(MBEDTLS_TIMING_C) )
00082 #error "The NET and TIMING modules are not available for mbed OS - please use the network and timing functions provided by mbed OS"
00083 #endif
00084
00085 #if defined(MBEDTLS_DEPRECATED_WARNING) && \
00086 !defined(__GNUC__) && !defined(__clang__)
00087 #error "MBEDTLS_DEPRECATED_WARNING only works with GCC and Clang"
00088 #endif
00089
00090 #if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_HAVE_TIME)
00091 #error "MBEDTLS_HAVE_TIME_DATE without MBEDTLS_HAVE_TIME does not make sense"
00092 #endif
00093
00094 #if defined(MBEDTLS_AESNI_C) && !defined(MBEDTLS_HAVE_ASM)
00095 #error "MBEDTLS_AESNI_C defined, but not all prerequisites"
00096 #endif
00097
00098 #if defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_AES_C)
00099 #error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites"
00100 #endif
00101
00102 #if defined(MBEDTLS_DHM_C) && !defined(MBEDTLS_BIGNUM_C)
00103 #error "MBEDTLS_DHM_C defined, but not all prerequisites"
00104 #endif
00105
00106 #if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT) && !defined(MBEDTLS_SSL_TRUNCATED_HMAC)
00107 #error "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT defined, but not all prerequisites"
00108 #endif
00109
00110 #if defined(MBEDTLS_CMAC_C) && \
00111 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_DES_C)
00112 #error "MBEDTLS_CMAC_C defined, but not all prerequisites"
00113 #endif
00114
00115 #if defined(MBEDTLS_ECDH_C) && !defined(MBEDTLS_ECP_C)
00116 #error "MBEDTLS_ECDH_C defined, but not all prerequisites"
00117 #endif
00118
00119 #if defined(MBEDTLS_ECDSA_C) && \
00120 ( !defined(MBEDTLS_ECP_C) || \
00121 !defined(MBEDTLS_ASN1_PARSE_C) || \
00122 !defined(MBEDTLS_ASN1_WRITE_C) )
00123 #error "MBEDTLS_ECDSA_C defined, but not all prerequisites"
00124 #endif
00125
00126 #if defined(MBEDTLS_ECJPAKE_C) && \
00127 ( !defined(MBEDTLS_ECP_C) || !defined(MBEDTLS_MD_C) )
00128 #error "MBEDTLS_ECJPAKE_C defined, but not all prerequisites"
00129 #endif
00130
00131 #if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C)
00132 #error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites"
00133 #endif
00134
00135 #if defined(MBEDTLS_ECP_C) && ( !defined(MBEDTLS_BIGNUM_C) || ( \
00136 !defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) && \
00137 !defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) && \
00138 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && \
00139 !defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) && \
00140 !defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) && \
00141 !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) && \
00142 !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) && \
00143 !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) && \
00144 !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) && \
00145 !defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) && \
00146 !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) && \
00147 !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) ) )
00148 #error "MBEDTLS_ECP_C defined, but not all prerequisites"
00149 #endif
00150
00151 #if defined(MBEDTLS_ECP_C) && !( \
00152 defined(MBEDTLS_ECP_ALT) || \
00153 defined(MBEDTLS_CTR_DRBG_C) || \
00154 defined(MBEDTLS_HMAC_DRBG_C) || \
00155 defined(MBEDTLS_SHA512_C) || \
00156 defined(MBEDTLS_SHA256_C) || \
00157 defined(MBEDTLS_ECP_NO_INTERNAL_RNG))
00158 #error "MBEDTLS_ECP_C requires a DRBG or SHA-2 module unless MBEDTLS_ECP_NO_INTERNAL_RNG is defined or an alternative implementation is used"
00159 #endif
00160
00161 #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_ASN1_PARSE_C)
00162 #error "MBEDTLS_PK_PARSE_C defined, but not all prerequesites"
00163 #endif
00164
00165 #if defined(MBEDTLS_ENTROPY_C) && (!defined(MBEDTLS_SHA512_C) && \
00166 !defined(MBEDTLS_SHA256_C))
00167 #error "MBEDTLS_ENTROPY_C defined, but not all prerequisites"
00168 #endif
00169 #if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_SHA512_C) && \
00170 defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 64)
00171 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
00172 #endif
00173 #if defined(MBEDTLS_ENTROPY_C) && \
00174 ( !defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_ENTROPY_FORCE_SHA256) ) \
00175 && defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 32)
00176 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
00177 #endif
00178 #if defined(MBEDTLS_ENTROPY_C) && \
00179 defined(MBEDTLS_ENTROPY_FORCE_SHA256) && !defined(MBEDTLS_SHA256_C)
00180 #error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites"
00181 #endif
00182
00183 #if defined(__has_feature)
00184 #if __has_feature(memory_sanitizer)
00185 #define MBEDTLS_HAS_MEMSAN
00186 #endif
00187 #endif
00188 #if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) && !defined(MBEDTLS_HAS_MEMSAN)
00189 #error "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN requires building with MemorySanitizer"
00190 #endif
00191 #undef MBEDTLS_HAS_MEMSAN
00192
00193 #if defined(MBEDTLS_TEST_NULL_ENTROPY) && \
00194 ( !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) )
00195 #error "MBEDTLS_TEST_NULL_ENTROPY defined, but not all prerequisites"
00196 #endif
00197 #if defined(MBEDTLS_TEST_NULL_ENTROPY) && \
00198 ( defined(MBEDTLS_ENTROPY_NV_SEED) || defined(MBEDTLS_ENTROPY_HARDWARE_ALT) || \
00199 defined(MBEDTLS_HAVEGE_C) )
00200 #error "MBEDTLS_TEST_NULL_ENTROPY defined, but entropy sources too"
00201 #endif
00202
00203 #if defined(MBEDTLS_GCM_C) && ( \
00204 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) )
00205 #error "MBEDTLS_GCM_C defined, but not all prerequisites"
00206 #endif
00207
00208 #if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00209 #error "MBEDTLS_ECP_RANDOMIZE_JAC_ALT defined, but not all prerequisites"
00210 #endif
00211
00212 #if defined(MBEDTLS_ECP_ADD_MIXED_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00213 #error "MBEDTLS_ECP_ADD_MIXED_ALT defined, but not all prerequisites"
00214 #endif
00215
00216 #if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00217 #error "MBEDTLS_ECP_DOUBLE_JAC_ALT defined, but not all prerequisites"
00218 #endif
00219
00220 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00221 #error "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT defined, but not all prerequisites"
00222 #endif
00223
00224 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00225 #error "MBEDTLS_ECP_NORMALIZE_JAC_ALT defined, but not all prerequisites"
00226 #endif
00227
00228 #if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00229 #error "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT defined, but not all prerequisites"
00230 #endif
00231
00232 #if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00233 #error "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT defined, but not all prerequisites"
00234 #endif
00235
00236 #if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
00237 #error "MBEDTLS_ECP_NORMALIZE_MXZ_ALT defined, but not all prerequisites"
00238 #endif
00239
00240 #if defined(MBEDTLS_HAVEGE_C) && !defined(MBEDTLS_TIMING_C)
00241 #error "MBEDTLS_HAVEGE_C defined, but not all prerequisites"
00242 #endif
00243
00244 #if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C)
00245 #error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites"
00246 #endif
00247
00248 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \
00249 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) )
00250 #error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites"
00251 #endif
00252
00253 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \
00254 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) )
00255 #error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites"
00256 #endif
00257
00258 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(MBEDTLS_DHM_C)
00259 #error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites"
00260 #endif
00261
00262 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \
00263 !defined(MBEDTLS_ECDH_C)
00264 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites"
00265 #endif
00266
00267 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) && \
00268 ( !defined(MBEDTLS_DHM_C) || !defined(MBEDTLS_RSA_C) || \
00269 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) )
00270 #error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites"
00271 #endif
00272
00273 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \
00274 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \
00275 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) )
00276 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites"
00277 #endif
00278
00279 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \
00280 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \
00281 !defined(MBEDTLS_X509_CRT_PARSE_C) )
00282 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites"
00283 #endif
00284
00285 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) && \
00286 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
00287 !defined(MBEDTLS_PKCS1_V15) )
00288 #error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites"
00289 #endif
00290
00291 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) && \
00292 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
00293 !defined(MBEDTLS_PKCS1_V15) )
00294 #error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites"
00295 #endif
00296
00297 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \
00298 ( !defined(MBEDTLS_ECJPAKE_C) || !defined(MBEDTLS_SHA256_C) || \
00299 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) )
00300 #error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites"
00301 #endif
00302
00303 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \
00304 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
00305 #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
00306 #endif
00307
00308 #if defined(MBEDTLS_MEMORY_BACKTRACE) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
00309 #error "MBEDTLS_MEMORY_BACKTRACE defined, but not all prerequesites"
00310 #endif
00311
00312 #if defined(MBEDTLS_MEMORY_DEBUG) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
00313 #error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequesites"
00314 #endif
00315
00316 #if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM)
00317 #error "MBEDTLS_PADLOCK_C defined, but not all prerequisites"
00318 #endif
00319
00320 #if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C)
00321 #error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites"
00322 #endif
00323
00324 #if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C)
00325 #error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites"
00326 #endif
00327
00328 #if defined(MBEDTLS_PK_C) && \
00329 ( !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_ECP_C) )
00330 #error "MBEDTLS_PK_C defined, but not all prerequisites"
00331 #endif
00332
00333 #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_PK_C)
00334 #error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites"
00335 #endif
00336
00337 #if defined(MBEDTLS_PK_WRITE_C) && !defined(MBEDTLS_PK_C)
00338 #error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites"
00339 #endif
00340
00341 #if defined(MBEDTLS_PKCS11_C) && !defined(MBEDTLS_PK_C)
00342 #error "MBEDTLS_PKCS11_C defined, but not all prerequisites"
00343 #endif
00344
00345 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C)
00346 #error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites"
00347 #endif
00348
00349 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C)
00350 #error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites"
00351 #endif
00352
00353 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\
00354 ( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\
00355 defined(MBEDTLS_PLATFORM_EXIT_ALT) )
00356 #error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously"
00357 #endif
00358
00359 #if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\
00360 ( !defined(MBEDTLS_PLATFORM_C) ||\
00361 !defined(MBEDTLS_HAVE_TIME) )
00362 #error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites"
00363 #endif
00364
00365 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
00366 ( !defined(MBEDTLS_PLATFORM_C) ||\
00367 !defined(MBEDTLS_HAVE_TIME) )
00368 #error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites"
00369 #endif
00370
00371 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
00372 ( !defined(MBEDTLS_PLATFORM_C) ||\
00373 !defined(MBEDTLS_HAVE_TIME) )
00374 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites"
00375 #endif
00376
00377 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
00378 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
00379 defined(MBEDTLS_PLATFORM_TIME_ALT) )
00380 #error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
00381 #endif
00382
00383 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
00384 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
00385 defined(MBEDTLS_PLATFORM_TIME_ALT) )
00386 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
00387 #endif
00388
00389 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
00390 #error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites"
00391 #endif
00392
00393 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
00394 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites"
00395 #endif
00396
00397 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\
00398 ( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\
00399 defined(MBEDTLS_PLATFORM_FPRINTF_ALT) )
00400 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously"
00401 #endif
00402
00403 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
00404 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
00405 #error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites"
00406 #endif
00407
00408 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
00409 defined(MBEDTLS_PLATFORM_STD_FREE)
00410 #error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously"
00411 #endif
00412
00413 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
00414 #error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is"
00415 #endif
00416
00417 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
00418 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
00419 #error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites"
00420 #endif
00421
00422 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
00423 defined(MBEDTLS_PLATFORM_STD_CALLOC)
00424 #error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously"
00425 #endif
00426
00427 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO)
00428 #error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is"
00429 #endif
00430
00431 #if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C)
00432 #error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites"
00433 #endif
00434
00435 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
00436 #error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites"
00437 #endif
00438
00439 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
00440 #error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites"
00441 #endif
00442
00443 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\
00444 ( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\
00445 defined(MBEDTLS_PLATFORM_PRINTF_ALT) )
00446 #error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously"
00447 #endif
00448
00449 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
00450 #error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites"
00451 #endif
00452
00453 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
00454 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites"
00455 #endif
00456
00457 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\
00458 ( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\
00459 defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) )
00460 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously"
00461 #endif
00462
00463 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\
00464 !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
00465 #error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites"
00466 #endif
00467
00468 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY)
00469 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites"
00470 #endif
00471
00472 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY)
00473 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites"
00474 #endif
00475
00476 #if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY)
00477 #error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites"
00478 #endif
00479
00480 #if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\
00481 !defined(MBEDTLS_PLATFORM_EXIT_ALT)
00482 #error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites"
00483 #endif
00484
00485 #if defined(MBEDTLS_PLATFORM_STD_TIME) &&\
00486 ( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\
00487 !defined(MBEDTLS_HAVE_TIME) )
00488 #error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites"
00489 #endif
00490
00491 #if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\
00492 !defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
00493 #error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites"
00494 #endif
00495
00496 #if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\
00497 !defined(MBEDTLS_PLATFORM_PRINTF_ALT)
00498 #error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites"
00499 #endif
00500
00501 #if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\
00502 !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
00503 #error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites"
00504 #endif
00505
00506 #if defined(MBEDTLS_ENTROPY_NV_SEED) &&\
00507 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_ENTROPY_C) )
00508 #error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites"
00509 #endif
00510
00511 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\
00512 !defined(MBEDTLS_ENTROPY_NV_SEED)
00513 #error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites"
00514 #endif
00515
00516 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\
00517 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
00518 #error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites"
00519 #endif
00520
00521 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\
00522 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
00523 #error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites"
00524 #endif
00525
00526 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\
00527 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\
00528 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
00529 #error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously"
00530 #endif
00531
00532 #if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\
00533 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\
00534 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
00535 #error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously"
00536 #endif
00537
00538 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) || \
00539 !defined(MBEDTLS_OID_C) )
00540 #error "MBEDTLS_RSA_C defined, but not all prerequisites"
00541 #endif
00542
00543 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_PKCS1_V21) && \
00544 !defined(MBEDTLS_PKCS1_V15) )
00545 #error "MBEDTLS_RSA_C defined, but none of the PKCS1 versions enabled"
00546 #endif
00547
00548 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \
00549 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_PKCS1_V21) )
00550 #error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites"
00551 #endif
00552
00553 #if defined(MBEDTLS_SSL_PROTO_SSL3) && ( !defined(MBEDTLS_MD5_C) || \
00554 !defined(MBEDTLS_SHA1_C) )
00555 #error "MBEDTLS_SSL_PROTO_SSL3 defined, but not all prerequisites"
00556 #endif
00557
00558 #if defined(MBEDTLS_SSL_PROTO_TLS1) && ( !defined(MBEDTLS_MD5_C) || \
00559 !defined(MBEDTLS_SHA1_C) )
00560 #error "MBEDTLS_SSL_PROTO_TLS1 defined, but not all prerequisites"
00561 #endif
00562
00563 #if defined(MBEDTLS_SSL_PROTO_TLS1_1) && ( !defined(MBEDTLS_MD5_C) || \
00564 !defined(MBEDTLS_SHA1_C) )
00565 #error "MBEDTLS_SSL_PROTO_TLS1_1 defined, but not all prerequisites"
00566 #endif
00567
00568 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && ( !defined(MBEDTLS_SHA1_C) && \
00569 !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) )
00570 #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites"
00571 #endif
00572
00573 #if (defined(MBEDTLS_SSL_PROTO_SSL3) || defined(MBEDTLS_SSL_PROTO_TLS1) || \
00574 defined(MBEDTLS_SSL_PROTO_TLS1_1) || defined(MBEDTLS_SSL_PROTO_TLS1_2)) && \
00575 !(defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \
00576 defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \
00577 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \
00578 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \
00579 defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
00580 defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) || \
00581 defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) || \
00582 defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) || \
00583 defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) || \
00584 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \
00585 defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) )
00586 #error "One or more versions of the TLS protocol are enabled " \
00587 "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx"
00588 #endif
00589
00590 #if defined(MBEDTLS_SSL_PROTO_DTLS) && \
00591 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
00592 !defined(MBEDTLS_SSL_PROTO_TLS1_2)
00593 #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites"
00594 #endif
00595
00596 #if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C)
00597 #error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites"
00598 #endif
00599
00600 #if defined(MBEDTLS_SSL_TLS_C) && ( !defined(MBEDTLS_CIPHER_C) || \
00601 !defined(MBEDTLS_MD_C) )
00602 #error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites"
00603 #endif
00604
00605 #if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C)
00606 #error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites"
00607 #endif
00608
00609 #if defined(MBEDTLS_SSL_TLS_C) && (!defined(MBEDTLS_SSL_PROTO_SSL3) && \
00610 !defined(MBEDTLS_SSL_PROTO_TLS1) && !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
00611 !defined(MBEDTLS_SSL_PROTO_TLS1_2))
00612 #error "MBEDTLS_SSL_TLS_C defined, but no protocols are active"
00613 #endif
00614
00615 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \
00616 defined(MBEDTLS_SSL_PROTO_TLS1_1) && !defined(MBEDTLS_SSL_PROTO_TLS1))
00617 #error "Illegal protocol selection"
00618 #endif
00619
00620 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_TLS1) && \
00621 defined(MBEDTLS_SSL_PROTO_TLS1_2) && !defined(MBEDTLS_SSL_PROTO_TLS1_1))
00622 #error "Illegal protocol selection"
00623 #endif
00624
00625 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \
00626 defined(MBEDTLS_SSL_PROTO_TLS1_2) && (!defined(MBEDTLS_SSL_PROTO_TLS1) || \
00627 !defined(MBEDTLS_SSL_PROTO_TLS1_1)))
00628 #error "Illegal protocol selection"
00629 #endif
00630
00631 #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS)
00632 #error "MBEDTLS_SSL_DTLS_HELLO_VERIFY defined, but not all prerequisites"
00633 #endif
00634
00635 #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \
00636 !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
00637 #error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE defined, but not all prerequisites"
00638 #endif
00639
00640 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) && \
00641 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
00642 #error "MBEDTLS_SSL_DTLS_ANTI_REPLAY defined, but not all prerequisites"
00643 #endif
00644
00645 #if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT) && \
00646 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
00647 #error "MBEDTLS_SSL_DTLS_BADMAC_LIMIT defined, but not all prerequisites"
00648 #endif
00649
00650 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \
00651 !defined(MBEDTLS_SSL_PROTO_TLS1) && \
00652 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
00653 !defined(MBEDTLS_SSL_PROTO_TLS1_2)
00654 #error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequsites"
00655 #endif
00656
00657 #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \
00658 !defined(MBEDTLS_SSL_PROTO_TLS1) && \
00659 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
00660 !defined(MBEDTLS_SSL_PROTO_TLS1_2)
00661 #error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequsites"
00662 #endif
00663
00664 #if defined(MBEDTLS_SSL_TICKET_C) && !defined(MBEDTLS_CIPHER_C)
00665 #error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites"
00666 #endif
00667
00668 #if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING) && \
00669 !defined(MBEDTLS_SSL_PROTO_SSL3) && !defined(MBEDTLS_SSL_PROTO_TLS1)
00670 #error "MBEDTLS_SSL_CBC_RECORD_SPLITTING defined, but not all prerequisites"
00671 #endif
00672
00673 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \
00674 !defined(MBEDTLS_X509_CRT_PARSE_C)
00675 #error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites"
00676 #endif
00677
00678 #if defined(MBEDTLS_THREADING_PTHREAD)
00679 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
00680 #error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites"
00681 #endif
00682 #define MBEDTLS_THREADING_IMPL
00683 #endif
00684
00685 #if defined(MBEDTLS_THREADING_ALT)
00686 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
00687 #error "MBEDTLS_THREADING_ALT defined, but not all prerequisites"
00688 #endif
00689 #define MBEDTLS_THREADING_IMPL
00690 #endif
00691
00692 #if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL)
00693 #error "MBEDTLS_THREADING_C defined, single threading implementation required"
00694 #endif
00695 #undef MBEDTLS_THREADING_IMPL
00696
00697 #if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C)
00698 #error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites"
00699 #endif
00700
00701 #if defined(MBEDTLS_X509_USE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \
00702 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_PARSE_C) || \
00703 !defined(MBEDTLS_PK_PARSE_C) )
00704 #error "MBEDTLS_X509_USE_C defined, but not all prerequisites"
00705 #endif
00706
00707 #if defined(MBEDTLS_X509_CREATE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \
00708 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_WRITE_C) || \
00709 !defined(MBEDTLS_PK_WRITE_C) )
00710 #error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites"
00711 #endif
00712
00713 #if defined(MBEDTLS_CERTS_C) && !defined(MBEDTLS_X509_USE_C)
00714 #error "MBEDTLS_CERTS_C defined, but not all prerequisites"
00715 #endif
00716
00717 #if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
00718 #error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites"
00719 #endif
00720
00721 #if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
00722 #error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites"
00723 #endif
00724
00725 #if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
00726 #error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites"
00727 #endif
00728
00729 #if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
00730 #error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites"
00731 #endif
00732
00733 #if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
00734 #error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites"
00735 #endif
00736
00737 #if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64)
00738 #error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously"
00739 #endif
00740
00741 #if ( defined(MBEDTLS_HAVE_INT32) || defined(MBEDTLS_HAVE_INT64) ) && \
00742 defined(MBEDTLS_HAVE_ASM)
00743 #error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously"
00744 #endif
00745
00746
00747
00748
00749
00750
00751 typedef int mbedtls_iso_c_forbids_empty_translation_units;
00752
00753 #endif