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