28 #ifndef MBEDTLS_CHECK_CONFIG_H 29 #define MBEDTLS_CHECK_CONFIG_H 38 #error "Mbed TLS requires a platform with 8-bit chars" 42 #if !defined(MBEDTLS_PLATFORM_C) 43 #error "MBEDTLS_PLATFORM_C is required on Windows" 48 #if !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && \ 49 !defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) 50 #define MBEDTLS_PLATFORM_SNPRINTF_ALT 53 #if !defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && \ 54 !defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) 55 #define MBEDTLS_PLATFORM_VSNPRINTF_ALT 59 #if defined(TARGET_LIKE_MBED) && defined(MBEDTLS_NET_C) 60 #error "The NET module is not available for mbed OS - please use the network functions provided by Mbed OS" 63 #if defined(MBEDTLS_DEPRECATED_WARNING) && \ 64 !defined(__GNUC__) && !defined(__clang__) 65 #error "MBEDTLS_DEPRECATED_WARNING only works with GCC and Clang" 68 #if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_HAVE_TIME) 69 #error "MBEDTLS_HAVE_TIME_DATE without MBEDTLS_HAVE_TIME does not make sense" 72 #if defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_AES_C) 73 #error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites" 76 #if defined(MBEDTLS_DHM_C) && !defined(MBEDTLS_BIGNUM_C) 77 #error "MBEDTLS_DHM_C defined, but not all prerequisites" 80 #if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT) && !defined(MBEDTLS_SSL_TRUNCATED_HMAC) 81 #error "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT defined, but not all prerequisites" 84 #if defined(MBEDTLS_CMAC_C) && \ 85 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_DES_C) 86 #error "MBEDTLS_CMAC_C defined, but not all prerequisites" 89 #if defined(MBEDTLS_NIST_KW_C) && \ 90 ( !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_CIPHER_C) ) 91 #error "MBEDTLS_NIST_KW_C defined, but not all prerequisites" 94 #if defined(MBEDTLS_ECDH_C) && !defined(MBEDTLS_ECP_C) 95 #error "MBEDTLS_ECDH_C defined, but not all prerequisites" 98 #if defined(MBEDTLS_ECDSA_C) && \ 99 ( !defined(MBEDTLS_ECP_C) || \ 100 !( defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \ 101 defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ 102 defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ 103 defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \ 104 defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \ 105 defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \ 106 defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \ 107 defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || \ 108 defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || \ 109 defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || \ 110 defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) ) || \ 111 !defined(MBEDTLS_ASN1_PARSE_C) || \ 112 !defined(MBEDTLS_ASN1_WRITE_C) ) 113 #error "MBEDTLS_ECDSA_C defined, but not all prerequisites" 116 #if defined(MBEDTLS_ECJPAKE_C) && \ 117 ( !defined(MBEDTLS_ECP_C) || !defined(MBEDTLS_MD_C) ) 118 #error "MBEDTLS_ECJPAKE_C defined, but not all prerequisites" 121 #if defined(MBEDTLS_ECP_RESTARTABLE) && \ 122 ( defined(MBEDTLS_USE_PSA_CRYPTO) || \ 123 defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) || \ 124 defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) || \ 125 defined(MBEDTLS_ECDSA_SIGN_ALT) || \ 126 defined(MBEDTLS_ECDSA_VERIFY_ALT) || \ 127 defined(MBEDTLS_ECDSA_GENKEY_ALT) || \ 128 defined(MBEDTLS_ECP_INTERNAL_ALT) || \ 129 defined(MBEDTLS_ECP_ALT) ) 130 #error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative or PSA-based ECP implementation" 133 #if defined(MBEDTLS_ECP_RESTARTABLE) && \ 134 ! defined(MBEDTLS_ECDH_LEGACY_CONTEXT) 135 #error "MBEDTLS_ECP_RESTARTABLE defined, but not MBEDTLS_ECDH_LEGACY_CONTEXT" 138 #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) && \ 139 defined(MBEDTLS_ECDH_LEGACY_CONTEXT) 140 #error "MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED defined, but MBEDTLS_ECDH_LEGACY_CONTEXT not disabled" 143 #if defined(MBEDTLS_ECP_RESTARTABLE) && \ 144 !defined(MBEDTLS_ECP_C) 145 #error "MBEDTLS_ECP_RESTARTABLE defined, but not all prerequisites" 148 #if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C) 149 #error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites" 152 #if defined(MBEDTLS_ECP_C) && ( !defined(MBEDTLS_BIGNUM_C) || ( \ 153 !defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) && \ 154 !defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) && \ 155 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && \ 156 !defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) && \ 157 !defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) && \ 158 !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) && \ 159 !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) && \ 160 !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) && \ 161 !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) && \ 162 !defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) && \ 163 !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) && \ 164 !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) && \ 165 !defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) ) ) 166 #error "MBEDTLS_ECP_C defined, but not all prerequisites" 169 #if defined(MBEDTLS_ECP_C) && !( \ 170 defined(MBEDTLS_ECP_ALT) || \ 171 defined(MBEDTLS_CTR_DRBG_C) || \ 172 defined(MBEDTLS_HMAC_DRBG_C) || \ 173 defined(MBEDTLS_ECP_NO_INTERNAL_RNG)) 174 #error "MBEDTLS_ECP_C requires a DRBG module unless MBEDTLS_ECP_NO_INTERNAL_RNG is defined or an alternative implementation is used" 177 #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_ASN1_PARSE_C) 178 #error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites" 181 #if defined(MBEDTLS_PKCS5_C) && !defined(MBEDTLS_MD_C) 182 #error "MBEDTLS_PKCS5_C defined, but not all prerequisites" 185 #if defined(MBEDTLS_ENTROPY_C) && (!defined(MBEDTLS_SHA512_C) && \ 186 !defined(MBEDTLS_SHA256_C)) 187 #error "MBEDTLS_ENTROPY_C defined, but not all prerequisites" 189 #if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_SHA512_C) && \ 190 defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 64) 191 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high" 193 #if defined(MBEDTLS_ENTROPY_C) && \ 194 ( !defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_ENTROPY_FORCE_SHA256) ) \ 195 && defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 32) 196 #error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high" 198 #if defined(MBEDTLS_ENTROPY_C) && \ 199 defined(MBEDTLS_ENTROPY_FORCE_SHA256) && !defined(MBEDTLS_SHA256_C) 200 #error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites" 203 #if defined(__has_feature) 204 #if __has_feature(memory_sanitizer) 205 #define MBEDTLS_HAS_MEMSAN 208 #if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) && !defined(MBEDTLS_HAS_MEMSAN) 209 #error "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN requires building with MemorySanitizer" 211 #undef MBEDTLS_HAS_MEMSAN 213 #if defined(MBEDTLS_TEST_NULL_ENTROPY) && \ 214 ( !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) ) 215 #error "MBEDTLS_TEST_NULL_ENTROPY defined, but not all prerequisites" 217 #if defined(MBEDTLS_TEST_NULL_ENTROPY) && \ 218 ( defined(MBEDTLS_ENTROPY_NV_SEED) || defined(MBEDTLS_ENTROPY_HARDWARE_ALT) || \ 219 defined(MBEDTLS_HAVEGE_C) ) 220 #error "MBEDTLS_TEST_NULL_ENTROPY defined, but entropy sources too" 223 #if defined(MBEDTLS_CCM_C) && ( \ 224 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) && !defined(MBEDTLS_ARIA_C) ) 225 #error "MBEDTLS_CCM_C defined, but not all prerequisites" 228 #if defined(MBEDTLS_CCM_C) && !defined(MBEDTLS_CIPHER_C) 229 #error "MBEDTLS_CCM_C defined, but not all prerequisites" 232 #if defined(MBEDTLS_GCM_C) && ( \ 233 !defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) && !defined(MBEDTLS_ARIA_C) ) 234 #error "MBEDTLS_GCM_C defined, but not all prerequisites" 237 #if defined(MBEDTLS_GCM_C) && !defined(MBEDTLS_CIPHER_C) 238 #error "MBEDTLS_GCM_C defined, but not all prerequisites" 241 #if defined(MBEDTLS_CHACHAPOLY_C) && !defined(MBEDTLS_CHACHA20_C) 242 #error "MBEDTLS_CHACHAPOLY_C defined, but not all prerequisites" 245 #if defined(MBEDTLS_CHACHAPOLY_C) && !defined(MBEDTLS_POLY1305_C) 246 #error "MBEDTLS_CHACHAPOLY_C defined, but not all prerequisites" 249 #if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 250 #error "MBEDTLS_ECP_RANDOMIZE_JAC_ALT defined, but not all prerequisites" 253 #if defined(MBEDTLS_ECP_ADD_MIXED_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 254 #error "MBEDTLS_ECP_ADD_MIXED_ALT defined, but not all prerequisites" 257 #if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 258 #error "MBEDTLS_ECP_DOUBLE_JAC_ALT defined, but not all prerequisites" 261 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 262 #error "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT defined, but not all prerequisites" 265 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 266 #error "MBEDTLS_ECP_NORMALIZE_JAC_ALT defined, but not all prerequisites" 269 #if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 270 #error "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT defined, but not all prerequisites" 273 #if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 274 #error "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT defined, but not all prerequisites" 277 #if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 278 #error "MBEDTLS_ECP_NORMALIZE_MXZ_ALT defined, but not all prerequisites" 281 #if defined(MBEDTLS_ECP_NO_FALLBACK) && !defined(MBEDTLS_ECP_INTERNAL_ALT) 282 #error "MBEDTLS_ECP_NO_FALLBACK defined, but no alternative implementation enabled" 285 #if defined(MBEDTLS_HAVEGE_C) && !defined(MBEDTLS_TIMING_C) 286 #error "MBEDTLS_HAVEGE_C defined, but not all prerequisites" 289 #if defined(MBEDTLS_HKDF_C) && !defined(MBEDTLS_MD_C) 290 #error "MBEDTLS_HKDF_C defined, but not all prerequisites" 293 #if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C) 294 #error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites" 297 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \ 298 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \ 299 !defined(MBEDTLS_X509_CRT_PARSE_C) ) 300 #error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites" 303 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \ 304 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \ 305 !defined(MBEDTLS_X509_CRT_PARSE_C) ) 306 #error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites" 309 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(MBEDTLS_DHM_C) 310 #error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites" 313 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \ 314 !defined(MBEDTLS_ECDH_C) 315 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites" 318 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) && \ 319 ( !defined(MBEDTLS_DHM_C) || !defined(MBEDTLS_RSA_C) || \ 320 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 321 #error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites" 324 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \ 325 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \ 326 !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) ) 327 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites" 330 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \ 331 ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \ 332 !defined(MBEDTLS_X509_CRT_PARSE_C) ) 333 #error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites" 336 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) && \ 337 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 338 !defined(MBEDTLS_PKCS1_V15) ) 339 #error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites" 342 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) && \ 343 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ 344 !defined(MBEDTLS_PKCS1_V15) ) 345 #error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites" 348 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ 349 ( !defined(MBEDTLS_ECJPAKE_C) || !defined(MBEDTLS_SHA256_C) || \ 350 !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ) 351 #error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites" 354 #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && \ 355 !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) && \ 356 ( !defined(MBEDTLS_SHA256_C) && \ 357 !defined(MBEDTLS_SHA512_C) && \ 358 !defined(MBEDTLS_SHA1_C) ) 359 #error "!MBEDTLS_SSL_KEEP_PEER_CERTIFICATE requires MBEDTLS_SHA512_C, MBEDTLS_SHA256_C or MBEDTLS_SHA1_C" 362 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ 363 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 364 #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" 367 #if defined(MBEDTLS_MEMORY_BACKTRACE) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) 368 #error "MBEDTLS_MEMORY_BACKTRACE defined, but not all prerequisites" 371 #if defined(MBEDTLS_MEMORY_DEBUG) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) 372 #error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequisites" 375 #if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM) 376 #error "MBEDTLS_PADLOCK_C defined, but not all prerequisites" 379 #if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C) 380 #error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites" 383 #if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C) 384 #error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites" 387 #if defined(MBEDTLS_PK_C) && \ 388 ( !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_ECP_C) ) 389 #error "MBEDTLS_PK_C defined, but not all prerequisites" 392 #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_PK_C) 393 #error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites" 396 #if defined(MBEDTLS_PK_WRITE_C) && !defined(MBEDTLS_PK_C) 397 #error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites" 400 #if defined(MBEDTLS_PKCS11_C) && !defined(MBEDTLS_PK_C) 401 #error "MBEDTLS_PKCS11_C defined, but not all prerequisites" 404 #if defined(MBEDTLS_PKCS11_C) 405 #if defined(MBEDTLS_DEPRECATED_REMOVED) 406 #error "MBEDTLS_PKCS11_C is deprecated and will be removed in a future version of Mbed TLS" 407 #elif defined(MBEDTLS_DEPRECATED_WARNING) 408 #warning "MBEDTLS_PKCS11_C is deprecated and will be removed in a future version of Mbed TLS" 412 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C) 413 #error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites" 416 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C) 417 #error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites" 420 #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\ 421 ( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\ 422 defined(MBEDTLS_PLATFORM_EXIT_ALT) ) 423 #error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously" 426 #if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\ 427 ( !defined(MBEDTLS_PLATFORM_C) ||\ 428 !defined(MBEDTLS_HAVE_TIME) ) 429 #error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites" 432 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\ 433 ( !defined(MBEDTLS_PLATFORM_C) ||\ 434 !defined(MBEDTLS_HAVE_TIME) ) 435 #error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites" 438 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\ 439 ( !defined(MBEDTLS_PLATFORM_C) ||\ 440 !defined(MBEDTLS_HAVE_TIME) ) 441 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites" 444 #if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\ 445 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\ 446 defined(MBEDTLS_PLATFORM_TIME_ALT) ) 447 #error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously" 450 #if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\ 451 ( defined(MBEDTLS_PLATFORM_STD_TIME) ||\ 452 defined(MBEDTLS_PLATFORM_TIME_ALT) ) 453 #error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously" 456 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 457 #error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites" 460 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 461 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites" 464 #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\ 465 ( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\ 466 defined(MBEDTLS_PLATFORM_FPRINTF_ALT) ) 467 #error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously" 470 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 471 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 472 #error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites" 475 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\ 476 defined(MBEDTLS_PLATFORM_STD_FREE) 477 #error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously" 480 #if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO) 481 #error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is" 484 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 485 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) 486 #error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites" 489 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\ 490 defined(MBEDTLS_PLATFORM_STD_CALLOC) 491 #error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously" 494 #if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO) 495 #error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is" 498 #if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C) 499 #error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites" 502 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 503 #error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites" 506 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 507 #error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites" 510 #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\ 511 ( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\ 512 defined(MBEDTLS_PLATFORM_PRINTF_ALT) ) 513 #error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously" 516 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 517 #error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites" 520 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 521 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites" 524 #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\ 525 ( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\ 526 defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) ) 527 #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously" 530 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) 531 #error "MBEDTLS_PLATFORM_VSNPRINTF_ALT defined, but not all prerequisites" 534 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) 535 #error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO defined, but not all prerequisites" 538 #if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) &&\ 539 ( defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) ||\ 540 defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) ) 541 #error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_VSNPRINTF/MBEDTLS_PLATFORM_VSNPRINTF_ALT cannot be defined simultaneously" 544 #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\ 545 !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 546 #error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites" 549 #if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY) 550 #error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites" 553 #if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY) 554 #error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites" 557 #if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\ 558 !defined(MBEDTLS_PLATFORM_EXIT_ALT) 559 #error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites" 562 #if defined(MBEDTLS_PLATFORM_STD_TIME) &&\ 563 ( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\ 564 !defined(MBEDTLS_HAVE_TIME) ) 565 #error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites" 568 #if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\ 569 !defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 570 #error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites" 573 #if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\ 574 !defined(MBEDTLS_PLATFORM_PRINTF_ALT) 575 #error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites" 578 #if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\ 579 !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 580 #error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites" 583 #if defined(MBEDTLS_ENTROPY_NV_SEED) &&\ 584 ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_ENTROPY_C) ) 585 #error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites" 588 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\ 589 !defined(MBEDTLS_ENTROPY_NV_SEED) 590 #error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites" 593 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\ 594 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 595 #error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites" 598 #if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\ 599 !defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 600 #error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites" 603 #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\ 604 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\ 605 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) ) 606 #error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously" 609 #if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\ 610 ( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\ 611 defined(MBEDTLS_PLATFORM_NV_SEED_ALT) ) 612 #error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously" 615 #if defined(MBEDTLS_PSA_CRYPTO_C) && \ 616 !( ( ( defined(MBEDTLS_CTR_DRBG_C) || defined(MBEDTLS_HMAC_DRBG_C) ) && \ 617 defined(MBEDTLS_ENTROPY_C) ) || \ 618 defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) ) 619 #error "MBEDTLS_PSA_CRYPTO_C defined, but not all prerequisites (missing RNG)" 622 #if defined(MBEDTLS_PSA_CRYPTO_SPM) && !defined(MBEDTLS_PSA_CRYPTO_C) 623 #error "MBEDTLS_PSA_CRYPTO_SPM defined, but not all prerequisites" 626 #if defined(MBEDTLS_PSA_CRYPTO_SE_C) && \ 627 ! ( defined(MBEDTLS_PSA_CRYPTO_C) && \ 628 defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) ) 629 #error "MBEDTLS_PSA_CRYPTO_SE_C defined, but not all prerequisites" 632 #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && \ 633 ! defined(MBEDTLS_PSA_CRYPTO_C) 634 #error "MBEDTLS_PSA_CRYPTO_STORAGE_C defined, but not all prerequisites" 637 #if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \ 638 !( defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && \ 639 defined(MBEDTLS_ENTROPY_NV_SEED) ) 640 #error "MBEDTLS_PSA_INJECT_ENTROPY defined, but not all prerequisites" 643 #if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \ 644 !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) 645 #error "MBEDTLS_PSA_INJECT_ENTROPY is not compatible with actual entropy sources" 648 #if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \ 649 defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) 650 #error "MBEDTLS_PSA_INJECT_ENTROPY is not compatible with MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG" 653 #if defined(MBEDTLS_PSA_ITS_FILE_C) && \ 654 !defined(MBEDTLS_FS_IO) 655 #error "MBEDTLS_PSA_ITS_FILE_C defined, but not all prerequisites" 658 #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) && \ 659 defined(MBEDTLS_USE_PSA_CRYPTO) 660 #error "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined, but it cannot coexist with MBEDTLS_USE_PSA_CRYPTO." 663 #if defined(MBEDTLS_PK_C) && defined(MBEDTLS_USE_PSA_CRYPTO) && \ 664 !defined(MBEDTLS_PK_WRITE_C) && defined(MBEDTLS_ECDSA_C) 665 #error "MBEDTLS_PK_C in configuration with MBEDTLS_USE_PSA_CRYPTO and \ 666 MBEDTLS_ECDSA_C requires MBEDTLS_PK_WRITE_C to be defined." 669 #if defined(MBEDTLS_PSA_CRYPTO_C) && defined(MBEDTLS_RSA_C) && \ 670 !( defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_PK_WRITE_C) ) 671 #error "MBEDTLS_PSA_CRYPTO_C with MBEDTLS_RSA_C requires MBEDTLS_PK_PARSE_C and MBEDTLS_PK_WRITE_C" 674 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 675 !defined(MBEDTLS_OID_C) ) 676 #error "MBEDTLS_RSA_C defined, but not all prerequisites" 679 #if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_PKCS1_V21) && \ 680 !defined(MBEDTLS_PKCS1_V15) ) 681 #error "MBEDTLS_RSA_C defined, but none of the PKCS1 versions enabled" 684 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ 685 ( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_PKCS1_V21) ) 686 #error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites" 689 #if defined(MBEDTLS_SHA512_NO_SHA384) && !defined(MBEDTLS_SHA512_C) 690 #error "MBEDTLS_SHA512_NO_SHA384 defined without MBEDTLS_SHA512_C" 693 #if defined(MBEDTLS_SSL_PROTO_SSL3) && ( !defined(MBEDTLS_MD5_C) || \ 694 !defined(MBEDTLS_SHA1_C) ) 695 #error "MBEDTLS_SSL_PROTO_SSL3 defined, but not all prerequisites" 698 #if defined(MBEDTLS_SSL_PROTO_TLS1) && ( !defined(MBEDTLS_MD5_C) || \ 699 !defined(MBEDTLS_SHA1_C) ) 700 #error "MBEDTLS_SSL_PROTO_TLS1 defined, but not all prerequisites" 703 #if defined(MBEDTLS_SSL_PROTO_TLS1_1) && ( !defined(MBEDTLS_MD5_C) || \ 704 !defined(MBEDTLS_SHA1_C) ) 705 #error "MBEDTLS_SSL_PROTO_TLS1_1 defined, but not all prerequisites" 708 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && ( !defined(MBEDTLS_SHA1_C) && \ 709 !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) ) 710 #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" 713 #if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) && ( !defined(MBEDTLS_HKDF_C) && \ 714 !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) ) 715 #error "MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL defined, but not all prerequisites" 718 #if (defined(MBEDTLS_SSL_PROTO_SSL3) || defined(MBEDTLS_SSL_PROTO_TLS1) || \ 719 defined(MBEDTLS_SSL_PROTO_TLS1_1) || defined(MBEDTLS_SSL_PROTO_TLS1_2)) && \ 720 !(defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \ 721 defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ 722 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ 723 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \ 724 defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ 725 defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) || \ 726 defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) || \ 727 defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) || \ 728 defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) || \ 729 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ 730 defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) ) 731 #error "One or more versions of the TLS protocol are enabled " \ 732 "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx" 735 #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ 736 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 737 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 738 #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites" 741 #if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C) 742 #error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites" 745 #if defined(MBEDTLS_SSL_TLS_C) && ( !defined(MBEDTLS_CIPHER_C) || \ 746 !defined(MBEDTLS_MD_C) ) 747 #error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites" 750 #if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C) 751 #error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites" 754 #if defined(MBEDTLS_SSL_TLS_C) && (!defined(MBEDTLS_SSL_PROTO_SSL3) && \ 755 !defined(MBEDTLS_SSL_PROTO_TLS1) && !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 756 !defined(MBEDTLS_SSL_PROTO_TLS1_2)) 757 #error "MBEDTLS_SSL_TLS_C defined, but no protocols are active" 760 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 761 defined(MBEDTLS_SSL_PROTO_TLS1_1) && !defined(MBEDTLS_SSL_PROTO_TLS1)) 762 #error "Illegal protocol selection" 765 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_TLS1) && \ 766 defined(MBEDTLS_SSL_PROTO_TLS1_2) && !defined(MBEDTLS_SSL_PROTO_TLS1_1)) 767 #error "Illegal protocol selection" 770 #if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \ 771 defined(MBEDTLS_SSL_PROTO_TLS1_2) && (!defined(MBEDTLS_SSL_PROTO_TLS1) || \ 772 !defined(MBEDTLS_SSL_PROTO_TLS1_1))) 773 #error "Illegal protocol selection" 776 #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS) 777 #error "MBEDTLS_SSL_DTLS_HELLO_VERIFY defined, but not all prerequisites" 780 #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \ 781 !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) 782 #error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE defined, but not all prerequisites" 785 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) && \ 786 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 787 #error "MBEDTLS_SSL_DTLS_ANTI_REPLAY defined, but not all prerequisites" 790 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ 791 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 792 #error "MBEDTLS_SSL_DTLS_CONNECTION_ID defined, but not all prerequisites" 795 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ 796 defined(MBEDTLS_SSL_CID_IN_LEN_MAX) && \ 797 MBEDTLS_SSL_CID_IN_LEN_MAX > 255 798 #error "MBEDTLS_SSL_CID_IN_LEN_MAX too large (max 255)" 801 #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ 802 defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) && \ 803 MBEDTLS_SSL_CID_OUT_LEN_MAX > 255 804 #error "MBEDTLS_SSL_CID_OUT_LEN_MAX too large (max 255)" 807 #if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT) && \ 808 ( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) ) 809 #error "MBEDTLS_SSL_DTLS_BADMAC_LIMIT defined, but not all prerequisites" 812 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ 813 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 814 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 815 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 816 #error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequisites" 819 #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \ 820 !defined(MBEDTLS_SSL_PROTO_TLS1) && \ 821 !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \ 822 !defined(MBEDTLS_SSL_PROTO_TLS1_2) 823 #error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequisites" 826 #if defined(MBEDTLS_SSL_TICKET_C) && !defined(MBEDTLS_CIPHER_C) 827 #error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" 830 #if defined(MBEDTLS_SSL_TICKET_C) && \ 831 !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) 832 #error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites" 835 #if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING) && \ 836 !defined(MBEDTLS_SSL_PROTO_SSL3) && !defined(MBEDTLS_SSL_PROTO_TLS1) 837 #error "MBEDTLS_SSL_CBC_RECORD_SPLITTING defined, but not all prerequisites" 840 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ 841 !defined(MBEDTLS_X509_CRT_PARSE_C) 842 #error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites" 845 #if defined(MBEDTLS_THREADING_PTHREAD) 846 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 847 #error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites" 849 #define MBEDTLS_THREADING_IMPL 852 #if defined(MBEDTLS_THREADING_ALT) 853 #if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL) 854 #error "MBEDTLS_THREADING_ALT defined, but not all prerequisites" 856 #define MBEDTLS_THREADING_IMPL 859 #if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL) 860 #error "MBEDTLS_THREADING_C defined, single threading implementation required" 862 #undef MBEDTLS_THREADING_IMPL 864 #if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_PSA_CRYPTO_C) 865 #error "MBEDTLS_USE_PSA_CRYPTO defined, but not all prerequisites" 868 #if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C) 869 #error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites" 872 #if defined(MBEDTLS_X509_USE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 873 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_PARSE_C) || \ 874 !defined(MBEDTLS_PK_PARSE_C) ) 875 #error "MBEDTLS_X509_USE_C defined, but not all prerequisites" 878 #if defined(MBEDTLS_X509_CREATE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \ 879 !defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_WRITE_C) || \ 880 !defined(MBEDTLS_PK_WRITE_C) ) 881 #error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites" 884 #if defined(MBEDTLS_CERTS_C) && !defined(MBEDTLS_X509_USE_C) 885 #error "MBEDTLS_CERTS_C defined, but not all prerequisites" 888 #if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 889 #error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites" 892 #if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 893 #error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites" 896 #if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) ) 897 #error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites" 900 #if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 901 #error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites" 904 #if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) ) 905 #error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites" 908 #if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64) 909 #error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously" 912 #if ( defined(MBEDTLS_HAVE_INT32) || defined(MBEDTLS_HAVE_INT64) ) && \ 913 defined(MBEDTLS_HAVE_ASM) 914 #error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously" 917 #if defined(MBEDTLS_SSL_PROTO_SSL3) 918 #if defined(MBEDTLS_DEPRECATED_REMOVED) 919 #error "MBEDTLS_SSL_PROTO_SSL3 is deprecated and will be removed in a future version of Mbed TLS" 920 #elif defined(MBEDTLS_DEPRECATED_WARNING) 921 #warning "MBEDTLS_SSL_PROTO_SSL3 is deprecated and will be removed in a future version of Mbed TLS" 925 #if defined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO) 926 #if defined(MBEDTLS_DEPRECATED_REMOVED) 927 #error "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO is deprecated and will be removed in a future version of Mbed TLS" 928 #elif defined(MBEDTLS_DEPRECATED_WARNING) 929 #warning "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO is deprecated and will be removed in a future version of Mbed TLS" 933 #if defined(MBEDTLS_SSL_HW_RECORD_ACCEL) 934 #if defined(MBEDTLS_DEPRECATED_REMOVED) 935 #error "MBEDTLS_SSL_HW_RECORD_ACCEL is deprecated and will be removed in a future version of Mbed TLS" 936 #elif defined(MBEDTLS_DEPRECATED_WARNING) 937 #warning "MBEDTLS_SSL_HW_RECORD_ACCEL is deprecated and will be removed in a future version of Mbed TLS" 941 #if defined(MBEDTLS_SSL_DTLS_SRTP) && ( !defined(MBEDTLS_SSL_PROTO_DTLS) ) 942 #error "MBEDTLS_SSL_DTLS_SRTP defined, but not all prerequisites" 945 #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) && ( !defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) ) 946 #error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites" 949 #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) ) 950 #error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites" int mbedtls_iso_c_forbids_empty_translation_units