check_config.h
limits.h
config.h
check_config.h
limits.h
aes.h
aesni.h
arc4.h
aria.h
asn1.h
asn1write.h
base64.h
bignum.h
blowfish.h
bn_mul.h
camellia.h
ccm.h
certs.h
chacha20.h
chachapoly.h
check_config.h
cipher.h
cmac.h
compat-1.3.h
config.h
ctr_drbg.h
debug.h
des.h
dhm.h
ecdh.h
ecdsa.h
ecjpake.h
ecp.h
entropy.h
entropy_poll.h
error.h
gcm.h
havege.h
hkdf.h
hmac_drbg.h
md.h
md2.h
md4.h
md5.h
memory_buffer_alloc.h
net.h
net_sockets.h
nist_kw.h
oid.h
padlock.h
pem.h
pk.h
pkcs11.h
pkcs12.h
pkcs5.h
platform.h
platform_time.h
platform_util.h
poly1305.h
psa_util.h
ripemd160.h
rsa.h
sha1.h
sha256.h
sha512.h
ssl.h
ssl_cache.h
ssl_ciphersuites.h
ssl_cookie.h
ssl_ticket.h
threading.h
timing.h
version.h
x509.h
x509_crl.h
x509_crt.h
x509_csr.h
xtea.h
crypto.h
crypto_builtin_composites.h
crypto_builtin_primitives.h
crypto_driver_common.h
crypto_driver_contexts_composites.h
crypto_driver_contexts_primitives.h
crypto_extra.h
crypto_platform.h
crypto_se_driver.h
crypto_sizes.h
crypto_struct.h
crypto_types.h
int typedef int mbedtls_iso_c_forbids_empty_translation_units mbedtls_iso_c_forbids_empty_translation_units

Consistency checks for configuration options.

    /*
    *CopyrightTheMbedTLSContributors
    *SPDX-License-Identifier:Apache-2.0ORGPL-2.0-or-later
    */

    /*
    *Itisrecommendedtoincludethisfilefromyourconfig.h
    *inordertocatchdependencyissuesearly.
    */

    #ifndefMBEDTLS_CHECK_CONFIG_H
    #defineMBEDTLS_CHECK_CONFIG_H

    /**INDENT-OFF**/
    /*
    *WeassumeCHAR_BITis8inmanyplaces.Inpractice,thisistrueonour
    *targetplatforms,sonotanissue,butlet'sjustbeextrasure.
    */
    #include<limits.h>
    #ifCHAR_BIT!=8
    #error"MbedTLSrequiresaplatformwith8-bitchars"
    #endif

    #ifdefined(_WIN32)
    #if!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_CisrequiredonWindows"
    #endif

    /*Fixtheconfighere.Notconvenienttoputan#ifdef_WIN32inconfig.has
    *itwouldconfuseconfig.py.*/
    #if!defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)&&\
    !defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
    #defineMBEDTLS_PLATFORM_SNPRINTF_ALT
    #endif

    #if!defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT)&&\
    !defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO)
    #defineMBEDTLS_PLATFORM_VSNPRINTF_ALT
    #endif
    #endif/*_WIN32*/

    #ifdefined(TARGET_LIKE_MBED)&&defined(MBEDTLS_NET_C)
    #error"TheNETmoduleisnotavailableformbedOS-pleaseusethenetworkfunctionsprovidedbyMbedOS"
    #endif

    #ifdefined(MBEDTLS_DEPRECATED_WARNING)&&\
    !defined(__GNUC__)&&!defined(__clang__)
    #error"MBEDTLS_DEPRECATED_WARNINGonlyworkswithGCCandClang"
    #endif

    #ifdefined(MBEDTLS_HAVE_TIME_DATE)&&!defined(MBEDTLS_HAVE_TIME)
    #error"MBEDTLS_HAVE_TIME_DATEwithoutMBEDTLS_HAVE_TIMEdoesnotmakesense"
    #endif

    #ifdefined(MBEDTLS_CTR_DRBG_C)&&!defined(MBEDTLS_AES_C)
    #error"MBEDTLS_CTR_DRBG_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_DHM_C)&&!defined(MBEDTLS_BIGNUM_C)
    #error"MBEDTLS_DHM_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT)&&!defined(MBEDTLS_SSL_TRUNCATED_HMAC)
    #error"MBEDTLS_SSL_TRUNCATED_HMAC_COMPATdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_CMAC_C)&&\
    !defined(MBEDTLS_AES_C)&&!defined(MBEDTLS_DES_C)
    #error"MBEDTLS_CMAC_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_NIST_KW_C)&&\
    (!defined(MBEDTLS_AES_C)||!defined(MBEDTLS_CIPHER_C))
    #error"MBEDTLS_NIST_KW_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECDH_C)&&!defined(MBEDTLS_ECP_C)
    #error"MBEDTLS_ECDH_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECDSA_C)&&\
    (!defined(MBEDTLS_ECP_C)||\
    !(defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)||\
    defined(MBEDTLS_ECP_DP_BP512R1_ENABLED))||\
    !defined(MBEDTLS_ASN1_PARSE_C)||\
    !defined(MBEDTLS_ASN1_WRITE_C))
    #error"MBEDTLS_ECDSA_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECJPAKE_C)&&\
    (!defined(MBEDTLS_ECP_C)||!defined(MBEDTLS_MD_C))
    #error"MBEDTLS_ECJPAKE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_RESTARTABLE)&&\
    (defined(MBEDTLS_USE_PSA_CRYPTO)||\
    defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)||\
    defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)||\
    defined(MBEDTLS_ECDSA_SIGN_ALT)||\
    defined(MBEDTLS_ECDSA_VERIFY_ALT)||\
    defined(MBEDTLS_ECDSA_GENKEY_ALT)||\
    defined(MBEDTLS_ECP_INTERNAL_ALT)||\
    defined(MBEDTLS_ECP_ALT))
    #error"MBEDTLS_ECP_RESTARTABLEdefined,butitcannotcoexistwithanalternativeorPSA-basedECPimplementation"
    #endif

    #ifdefined(MBEDTLS_ECP_RESTARTABLE)&&\
    !defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
    #error"MBEDTLS_ECP_RESTARTABLEdefined,butnotMBEDTLS_ECDH_LEGACY_CONTEXT"
    #endif

    #ifdefined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)&&\
    defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
    #error"MBEDTLS_ECDH_VARIANT_EVEREST_ENABLEDdefined,butMBEDTLS_ECDH_LEGACY_CONTEXTnotdisabled"
    #endif

    #ifdefined(MBEDTLS_ECP_RESTARTABLE)&&\
    !defined(MBEDTLS_ECP_C)
    #error"MBEDTLS_ECP_RESTARTABLEdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECDSA_DETERMINISTIC)&&!defined(MBEDTLS_HMAC_DRBG_C)
    #error"MBEDTLS_ECDSA_DETERMINISTICdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_C)&&(!defined(MBEDTLS_BIGNUM_C)||(\
    !defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)&&\
    !defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)))
    #error"MBEDTLS_ECP_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_C)&&!(\
    defined(MBEDTLS_ECP_ALT)||\
    defined(MBEDTLS_CTR_DRBG_C)||\
    defined(MBEDTLS_HMAC_DRBG_C)||\
    defined(MBEDTLS_ECP_NO_INTERNAL_RNG))
    #error"MBEDTLS_ECP_CrequiresaDRBGmoduleunlessMBEDTLS_ECP_NO_INTERNAL_RNGisdefinedoranalternativeimplementationisused"
    #endif

    #ifdefined(MBEDTLS_PK_PARSE_C)&&!defined(MBEDTLS_ASN1_PARSE_C)
    #error"MBEDTLS_PK_PARSE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PKCS5_C)&&!defined(MBEDTLS_MD_C)
    #error"MBEDTLS_PKCS5_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ENTROPY_C)&&(!defined(MBEDTLS_SHA512_C)&&\
    !defined(MBEDTLS_SHA256_C))
    #error"MBEDTLS_ENTROPY_Cdefined,butnotallprerequisites"
    #endif
    #ifdefined(MBEDTLS_ENTROPY_C)&&defined(MBEDTLS_SHA512_C)&&\
    defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN)&&(MBEDTLS_CTR_DRBG_ENTROPY_LEN>64)
    #error"MBEDTLS_CTR_DRBG_ENTROPY_LENvaluetoohigh"
    #endif
    #ifdefined(MBEDTLS_ENTROPY_C)&&\
    (!defined(MBEDTLS_SHA512_C)||defined(MBEDTLS_ENTROPY_FORCE_SHA256))\
    &&defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN)&&(MBEDTLS_CTR_DRBG_ENTROPY_LEN>32)
    #error"MBEDTLS_CTR_DRBG_ENTROPY_LENvaluetoohigh"
    #endif
    #ifdefined(MBEDTLS_ENTROPY_C)&&\
    defined(MBEDTLS_ENTROPY_FORCE_SHA256)&&!defined(MBEDTLS_SHA256_C)
    #error"MBEDTLS_ENTROPY_FORCE_SHA256defined,butnotallprerequisites"
    #endif

    #ifdefined(__has_feature)
    #if__has_feature(memory_sanitizer)
    #defineMBEDTLS_HAS_MEMSAN
    #endif
    #endif
    #ifdefined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN)&&!defined(MBEDTLS_HAS_MEMSAN)
    #error"MBEDTLS_TEST_CONSTANT_FLOW_MEMSANrequiresbuildingwithMemorySanitizer"
    #endif
    #undefMBEDTLS_HAS_MEMSAN

    #ifdefined(MBEDTLS_TEST_NULL_ENTROPY)&&\
    (!defined(MBEDTLS_ENTROPY_C)||!defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES))
    #error"MBEDTLS_TEST_NULL_ENTROPYdefined,butnotallprerequisites"
    #endif
    #ifdefined(MBEDTLS_TEST_NULL_ENTROPY)&&\
    (defined(MBEDTLS_ENTROPY_NV_SEED)||defined(MBEDTLS_ENTROPY_HARDWARE_ALT)||\
    defined(MBEDTLS_HAVEGE_C))
    #error"MBEDTLS_TEST_NULL_ENTROPYdefined,butentropysourcestoo"
    #endif

    #ifdefined(MBEDTLS_CCM_C)&&(\
    !defined(MBEDTLS_AES_C)&&!defined(MBEDTLS_CAMELLIA_C)&&!defined(MBEDTLS_ARIA_C))
    #error"MBEDTLS_CCM_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_CCM_C)&&!defined(MBEDTLS_CIPHER_C)
    #error"MBEDTLS_CCM_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_GCM_C)&&(\
    !defined(MBEDTLS_AES_C)&&!defined(MBEDTLS_CAMELLIA_C)&&!defined(MBEDTLS_ARIA_C))
    #error"MBEDTLS_GCM_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_GCM_C)&&!defined(MBEDTLS_CIPHER_C)
    #error"MBEDTLS_GCM_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_CHACHAPOLY_C)&&!defined(MBEDTLS_CHACHA20_C)
    #error"MBEDTLS_CHACHAPOLY_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_CHACHAPOLY_C)&&!defined(MBEDTLS_POLY1305_C)
    #error"MBEDTLS_CHACHAPOLY_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_RANDOMIZE_JAC_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_ADD_MIXED_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_ADD_MIXED_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_DOUBLE_JAC_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_DOUBLE_JAC_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_NORMALIZE_JAC_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_RANDOMIZE_MXZ_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_NORMALIZE_MXZ_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ECP_NO_FALLBACK)&&!defined(MBEDTLS_ECP_INTERNAL_ALT)
    #error"MBEDTLS_ECP_NO_FALLBACKdefined,butnoalternativeimplementationenabled"
    #endif

    #ifdefined(MBEDTLS_HAVEGE_C)&&!defined(MBEDTLS_TIMING_C)
    #error"MBEDTLS_HAVEGE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_HKDF_C)&&!defined(MBEDTLS_MD_C)
    #error"MBEDTLS_HKDF_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_HMAC_DRBG_C)&&!defined(MBEDTLS_MD_C)
    #error"MBEDTLS_HMAC_DRBG_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)&&\
    (!defined(MBEDTLS_ECDH_C)||!defined(MBEDTLS_ECDSA_C)||\
    !defined(MBEDTLS_X509_CRT_PARSE_C))
    #error"MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)&&\
    (!defined(MBEDTLS_ECDH_C)||!defined(MBEDTLS_RSA_C)||\
    !defined(MBEDTLS_X509_CRT_PARSE_C))
    #error"MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)&&!defined(MBEDTLS_DHM_C)
    #error"MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)&&\
    !defined(MBEDTLS_ECDH_C)
    #error"MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)&&\
    (!defined(MBEDTLS_DHM_C)||!defined(MBEDTLS_RSA_C)||\
    !defined(MBEDTLS_X509_CRT_PARSE_C)||!defined(MBEDTLS_PKCS1_V15))
    #error"MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)&&\
    (!defined(MBEDTLS_ECDH_C)||!defined(MBEDTLS_RSA_C)||\
    !defined(MBEDTLS_X509_CRT_PARSE_C)||!defined(MBEDTLS_PKCS1_V15))
    #error"MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)&&\
    (!defined(MBEDTLS_ECDH_C)||!defined(MBEDTLS_ECDSA_C)||\
    !defined(MBEDTLS_X509_CRT_PARSE_C))
    #error"MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)&&\
    (!defined(MBEDTLS_RSA_C)||!defined(MBEDTLS_X509_CRT_PARSE_C)||\
    !defined(MBEDTLS_PKCS1_V15))
    #error"MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)&&\
    (!defined(MBEDTLS_RSA_C)||!defined(MBEDTLS_X509_CRT_PARSE_C)||\
    !defined(MBEDTLS_PKCS1_V15))
    #error"MBEDTLS_KEY_EXCHANGE_RSA_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)&&\
    (!defined(MBEDTLS_ECJPAKE_C)||!defined(MBEDTLS_SHA256_C)||\
    !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED))
    #error"MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)&&\
    !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)&&\
    (!defined(MBEDTLS_SHA256_C)&&\
    !defined(MBEDTLS_SHA512_C)&&\
    !defined(MBEDTLS_SHA1_C))
    #error"!MBEDTLS_SSL_KEEP_PEER_CERTIFICATErequiresMBEDTLS_SHA512_C,MBEDTLS_SHA256_CorMBEDTLS_SHA1_C"
    #endif

    #ifdefined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)&&\
    (!defined(MBEDTLS_PLATFORM_C)||!defined(MBEDTLS_PLATFORM_MEMORY))
    #error"MBEDTLS_MEMORY_BUFFER_ALLOC_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_MEMORY_BACKTRACE)&&!defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
    #error"MBEDTLS_MEMORY_BACKTRACEdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_MEMORY_DEBUG)&&!defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
    #error"MBEDTLS_MEMORY_DEBUGdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PADLOCK_C)&&!defined(MBEDTLS_HAVE_ASM)
    #error"MBEDTLS_PADLOCK_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PEM_PARSE_C)&&!defined(MBEDTLS_BASE64_C)
    #error"MBEDTLS_PEM_PARSE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PEM_WRITE_C)&&!defined(MBEDTLS_BASE64_C)
    #error"MBEDTLS_PEM_WRITE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PK_C)&&\
    (!defined(MBEDTLS_RSA_C)&&!defined(MBEDTLS_ECP_C))
    #error"MBEDTLS_PK_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PK_PARSE_C)&&!defined(MBEDTLS_PK_C)
    #error"MBEDTLS_PK_PARSE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PK_WRITE_C)&&!defined(MBEDTLS_PK_C)
    #error"MBEDTLS_PK_WRITE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PKCS11_C)&&!defined(MBEDTLS_PK_C)
    #error"MBEDTLS_PKCS11_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PKCS11_C)
    #ifdefined(MBEDTLS_DEPRECATED_REMOVED)
    #error"MBEDTLS_PKCS11_CisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #elifdefined(MBEDTLS_DEPRECATED_WARNING)
    #warning"MBEDTLS_PKCS11_CisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #endif
    #endif/*MBEDTLS_PKCS11_C*/

    #ifdefined(MBEDTLS_PLATFORM_EXIT_ALT)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_EXIT_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_EXIT_MACRO)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_EXIT_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_EXIT_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_EXIT)||\
    defined(MBEDTLS_PLATFORM_EXIT_ALT))
    #error"MBEDTLS_PLATFORM_EXIT_MACROandMBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALTcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_TIME_ALT)&&\
    (!defined(MBEDTLS_PLATFORM_C)||\
    !defined(MBEDTLS_HAVE_TIME))
    #error"MBEDTLS_PLATFORM_TIME_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_TIME_MACRO)&&\
    (!defined(MBEDTLS_PLATFORM_C)||\
    !defined(MBEDTLS_HAVE_TIME))
    #error"MBEDTLS_PLATFORM_TIME_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO)&&\
    (!defined(MBEDTLS_PLATFORM_C)||\
    !defined(MBEDTLS_HAVE_TIME))
    #error"MBEDTLS_PLATFORM_TIME_TYPE_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_TIME_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_TIME)||\
    defined(MBEDTLS_PLATFORM_TIME_ALT))
    #error"MBEDTLS_PLATFORM_TIME_MACROandMBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALTcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_TIME)||\
    defined(MBEDTLS_PLATFORM_TIME_ALT))
    #error"MBEDTLS_PLATFORM_TIME_TYPE_MACROandMBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALTcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_FPRINTF_ALT)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_FPRINTF_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_FPRINTF_MACRO)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_FPRINTF_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_FPRINTF_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_FPRINTF)||\
    defined(MBEDTLS_PLATFORM_FPRINTF_ALT))
    #error"MBEDTLS_PLATFORM_FPRINTF_MACROandMBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALTcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_FREE_MACRO)&&\
    (!defined(MBEDTLS_PLATFORM_C)||!defined(MBEDTLS_PLATFORM_MEMORY))
    #error"MBEDTLS_PLATFORM_FREE_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_FREE_MACRO)&&\
    defined(MBEDTLS_PLATFORM_STD_FREE)
    #error"MBEDTLS_PLATFORM_FREE_MACROandMBEDTLS_PLATFORM_STD_FREEcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_FREE_MACRO)&&!defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
    #error"MBEDTLS_PLATFORM_CALLOC_MACROmustbedefinedifMBEDTLS_PLATFORM_FREE_MACROis"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_CALLOC_MACRO)&&\
    (!defined(MBEDTLS_PLATFORM_C)||!defined(MBEDTLS_PLATFORM_MEMORY))
    #error"MBEDTLS_PLATFORM_CALLOC_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_CALLOC_MACRO)&&\
    defined(MBEDTLS_PLATFORM_STD_CALLOC)
    #error"MBEDTLS_PLATFORM_CALLOC_MACROandMBEDTLS_PLATFORM_STD_CALLOCcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_CALLOC_MACRO)&&!defined(MBEDTLS_PLATFORM_FREE_MACRO)
    #error"MBEDTLS_PLATFORM_FREE_MACROmustbedefinedifMBEDTLS_PLATFORM_CALLOC_MACROis"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_MEMORY)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_MEMORYdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_PRINTF_ALT)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_PRINTF_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_PRINTF_MACRO)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_PRINTF_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_PRINTF_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_PRINTF)||\
    defined(MBEDTLS_PLATFORM_PRINTF_ALT))
    #error"MBEDTLS_PLATFORM_PRINTF_MACROandMBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALTcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_SNPRINTF_ALT)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_SNPRINTF_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_SNPRINTF_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_SNPRINTF)||\
    defined(MBEDTLS_PLATFORM_SNPRINTF_ALT))
    #error"MBEDTLS_PLATFORM_SNPRINTF_MACROandMBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALTcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_VSNPRINTF_ALT)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_VSNPRINTF_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_VSNPRINTF_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_VSNPRINTF)||\
    defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT))
    #error"MBEDTLS_PLATFORM_VSNPRINTF_MACROandMBEDTLS_PLATFORM_STD_VSNPRINTF/MBEDTLS_PLATFORM_VSNPRINTF_ALTcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_MEM_HDR)&&\
    !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
    #error"MBEDTLS_PLATFORM_STD_MEM_HDRdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_CALLOC)&&!defined(MBEDTLS_PLATFORM_MEMORY)
    #error"MBEDTLS_PLATFORM_STD_CALLOCdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_FREE)&&!defined(MBEDTLS_PLATFORM_MEMORY)
    #error"MBEDTLS_PLATFORM_STD_FREEdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_EXIT)&&\
    !defined(MBEDTLS_PLATFORM_EXIT_ALT)
    #error"MBEDTLS_PLATFORM_STD_EXITdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_TIME)&&\
    (!defined(MBEDTLS_PLATFORM_TIME_ALT)||\
    !defined(MBEDTLS_HAVE_TIME))
    #error"MBEDTLS_PLATFORM_STD_TIMEdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_FPRINTF)&&\
    !defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
    #error"MBEDTLS_PLATFORM_STD_FPRINTFdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_PRINTF)&&\
    !defined(MBEDTLS_PLATFORM_PRINTF_ALT)
    #error"MBEDTLS_PLATFORM_STD_PRINTFdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_SNPRINTF)&&\
    !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
    #error"MBEDTLS_PLATFORM_STD_SNPRINTFdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ENTROPY_NV_SEED)&&\
    (!defined(MBEDTLS_PLATFORM_C)||!defined(MBEDTLS_ENTROPY_C))
    #error"MBEDTLS_ENTROPY_NV_SEEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_NV_SEED_ALT)&&\
    !defined(MBEDTLS_ENTROPY_NV_SEED)
    #error"MBEDTLS_PLATFORM_NV_SEED_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_NV_SEED_READ)&&\
    !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
    #error"MBEDTLS_PLATFORM_STD_NV_SEED_READdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE)&&\
    !defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
    #error"MBEDTLS_PLATFORM_STD_NV_SEED_WRITEdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ)||\
    defined(MBEDTLS_PLATFORM_NV_SEED_ALT))
    #error"MBEDTLS_PLATFORM_NV_SEED_READ_MACROandMBEDTLS_PLATFORM_STD_NV_SEED_READcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE)||\
    defined(MBEDTLS_PLATFORM_NV_SEED_ALT))
    #error"MBEDTLS_PLATFORM_NV_SEED_WRITE_MACROandMBEDTLS_PLATFORM_STD_NV_SEED_WRITEcannotbedefinedsimultaneously"
    #endif

    #ifdefined(MBEDTLS_PSA_CRYPTO_C)&&\
    !(((defined(MBEDTLS_CTR_DRBG_C)||defined(MBEDTLS_HMAC_DRBG_C))&&\
    defined(MBEDTLS_ENTROPY_C))||\
    defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG))
    #error"MBEDTLS_PSA_CRYPTO_Cdefined,butnotallprerequisites(missingRNG)"
    #endif

    #ifdefined(MBEDTLS_PSA_CRYPTO_SPM)&&!defined(MBEDTLS_PSA_CRYPTO_C)
    #error"MBEDTLS_PSA_CRYPTO_SPMdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PSA_CRYPTO_SE_C)&&\
    !(defined(MBEDTLS_PSA_CRYPTO_C)&&\
    defined(MBEDTLS_PSA_CRYPTO_STORAGE_C))
    #error"MBEDTLS_PSA_CRYPTO_SE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PSA_CRYPTO_STORAGE_C)&&\
    !defined(MBEDTLS_PSA_CRYPTO_C)
    #error"MBEDTLS_PSA_CRYPTO_STORAGE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PSA_INJECT_ENTROPY)&&\
    !(defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)&&\
    defined(MBEDTLS_ENTROPY_NV_SEED))
    #error"MBEDTLS_PSA_INJECT_ENTROPYdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PSA_INJECT_ENTROPY)&&\
    !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
    #error"MBEDTLS_PSA_INJECT_ENTROPYisnotcompatiblewithactualentropysources"
    #endif

    #ifdefined(MBEDTLS_PSA_INJECT_ENTROPY)&&\
    defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
    #error"MBEDTLS_PSA_INJECT_ENTROPYisnotcompatiblewithMBEDTLS_PSA_CRYPTO_EXTERNAL_RNG"
    #endif

    #ifdefined(MBEDTLS_PSA_ITS_FILE_C)&&\
    !defined(MBEDTLS_FS_IO)
    #error"MBEDTLS_PSA_ITS_FILE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)&&\
    defined(MBEDTLS_USE_PSA_CRYPTO)
    #error"MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNERdefined,butitcannotcoexistwithMBEDTLS_USE_PSA_CRYPTO."
    #endif

    #ifdefined(MBEDTLS_PK_C)&&defined(MBEDTLS_USE_PSA_CRYPTO)&&\
    !defined(MBEDTLS_PK_WRITE_C)&&defined(MBEDTLS_ECDSA_C)
    #error"MBEDTLS_PK_CinconfigurationwithMBEDTLS_USE_PSA_CRYPTOand\
    MBEDTLS_ECDSA_CrequiresMBEDTLS_PK_WRITE_Ctobedefined."
    #endif

    #ifdefined(MBEDTLS_PSA_CRYPTO_C)&&defined(MBEDTLS_RSA_C)&&\
    !(defined(MBEDTLS_PK_PARSE_C)&&defined(MBEDTLS_PK_WRITE_C))
    #error"MBEDTLS_PSA_CRYPTO_CwithMBEDTLS_RSA_CrequiresMBEDTLS_PK_PARSE_CandMBEDTLS_PK_WRITE_C"
    #endif

    #ifdefined(MBEDTLS_RSA_C)&&(!defined(MBEDTLS_BIGNUM_C)||\
    !defined(MBEDTLS_OID_C))
    #error"MBEDTLS_RSA_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_RSA_C)&&(!defined(MBEDTLS_PKCS1_V21)&&\
    !defined(MBEDTLS_PKCS1_V15))
    #error"MBEDTLS_RSA_Cdefined,butnoneofthePKCS1versionsenabled"
    #endif

    #ifdefined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)&&\
    (!defined(MBEDTLS_RSA_C)||!defined(MBEDTLS_PKCS1_V21))
    #error"MBEDTLS_X509_RSASSA_PSS_SUPPORTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SHA512_NO_SHA384)&&!defined(MBEDTLS_SHA512_C)
    #error"MBEDTLS_SHA512_NO_SHA384definedwithoutMBEDTLS_SHA512_C"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_SSL3)&&(!defined(MBEDTLS_MD5_C)||\
    !defined(MBEDTLS_SHA1_C))
    #error"MBEDTLS_SSL_PROTO_SSL3defined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_TLS1)&&(!defined(MBEDTLS_MD5_C)||\
    !defined(MBEDTLS_SHA1_C))
    #error"MBEDTLS_SSL_PROTO_TLS1defined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_TLS1_1)&&(!defined(MBEDTLS_MD5_C)||\
    !defined(MBEDTLS_SHA1_C))
    #error"MBEDTLS_SSL_PROTO_TLS1_1defined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_TLS1_2)&&(!defined(MBEDTLS_SHA1_C)&&\
    !defined(MBEDTLS_SHA256_C)&&!defined(MBEDTLS_SHA512_C))
    #error"MBEDTLS_SSL_PROTO_TLS1_2defined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL)&&(!defined(MBEDTLS_HKDF_C)&&\
    !defined(MBEDTLS_SHA256_C)&&!defined(MBEDTLS_SHA512_C))
    #error"MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTALdefined,butnotallprerequisites"
    #endif

    #if(defined(MBEDTLS_SSL_PROTO_SSL3)||defined(MBEDTLS_SSL_PROTO_TLS1)||\
    defined(MBEDTLS_SSL_PROTO_TLS1_1)||defined(MBEDTLS_SSL_PROTO_TLS1_2))&&\
    !(defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)||\
    defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED))
    #error"OneormoreversionsoftheTLSprotocolareenabled"\
    "butnokeyexchangemethodsdefinedwithMBEDTLS_KEY_EXCHANGE_xxxx"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_DTLS)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_1)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
    #error"MBEDTLS_SSL_PROTO_DTLSdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_CLI_C)&&!defined(MBEDTLS_SSL_TLS_C)
    #error"MBEDTLS_SSL_CLI_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS_C)&&(!defined(MBEDTLS_CIPHER_C)||\
    !defined(MBEDTLS_MD_C))
    #error"MBEDTLS_SSL_TLS_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_SRV_C)&&!defined(MBEDTLS_SSL_TLS_C)
    #error"MBEDTLS_SSL_SRV_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS_C)&&(!defined(MBEDTLS_SSL_PROTO_SSL3)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1)&&!defined(MBEDTLS_SSL_PROTO_TLS1_1)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_2))
    #error"MBEDTLS_SSL_TLS_Cdefined,butnoprotocolsareactive"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS_C)&&(defined(MBEDTLS_SSL_PROTO_SSL3)&&\
    defined(MBEDTLS_SSL_PROTO_TLS1_1)&&!defined(MBEDTLS_SSL_PROTO_TLS1))
    #error"Illegalprotocolselection"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS_C)&&(defined(MBEDTLS_SSL_PROTO_TLS1)&&\
    defined(MBEDTLS_SSL_PROTO_TLS1_2)&&!defined(MBEDTLS_SSL_PROTO_TLS1_1))
    #error"Illegalprotocolselection"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS_C)&&(defined(MBEDTLS_SSL_PROTO_SSL3)&&\
    defined(MBEDTLS_SSL_PROTO_TLS1_2)&&(!defined(MBEDTLS_SSL_PROTO_TLS1)||\
    !defined(MBEDTLS_SSL_PROTO_TLS1_1)))
    #error"Illegalprotocolselection"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)&&!defined(MBEDTLS_SSL_PROTO_DTLS)
    #error"MBEDTLS_SSL_DTLS_HELLO_VERIFYdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE)&&\
    !defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
    #error"MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSEdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)&&\
    (!defined(MBEDTLS_SSL_TLS_C)||!defined(MBEDTLS_SSL_PROTO_DTLS))
    #error"MBEDTLS_SSL_DTLS_ANTI_REPLAYdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_CONNECTION_ID)&&\
    (!defined(MBEDTLS_SSL_TLS_C)||!defined(MBEDTLS_SSL_PROTO_DTLS))
    #error"MBEDTLS_SSL_DTLS_CONNECTION_IDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_CONNECTION_ID)&&\
    defined(MBEDTLS_SSL_CID_IN_LEN_MAX)&&\
    MBEDTLS_SSL_CID_IN_LEN_MAX>255
    #error"MBEDTLS_SSL_CID_IN_LEN_MAXtoolarge(max255)"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_CONNECTION_ID)&&\
    defined(MBEDTLS_SSL_CID_OUT_LEN_MAX)&&\
    MBEDTLS_SSL_CID_OUT_LEN_MAX>255
    #error"MBEDTLS_SSL_CID_OUT_LEN_MAXtoolarge(max255)"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT)&&\
    (!defined(MBEDTLS_SSL_TLS_C)||!defined(MBEDTLS_SSL_PROTO_DTLS))
    #error"MBEDTLS_SSL_DTLS_BADMAC_LIMITdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_1)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
    #error"MBEDTLS_SSL_ENCRYPT_THEN_MACdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_1)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
    #error"MBEDTLS_SSL_EXTENDED_MASTER_SECRETdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_TICKET_C)&&!defined(MBEDTLS_CIPHER_C)
    #error"MBEDTLS_SSL_TICKET_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_TICKET_C)&&\
    !(defined(MBEDTLS_GCM_C)||defined(MBEDTLS_CCM_C)||defined(MBEDTLS_CHACHAPOLY_C))
    #error"MBEDTLS_SSL_TICKET_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_CBC_RECORD_SPLITTING)&&\
    !defined(MBEDTLS_SSL_PROTO_SSL3)&&!defined(MBEDTLS_SSL_PROTO_TLS1)
    #error"MBEDTLS_SSL_CBC_RECORD_SPLITTINGdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_SERVER_NAME_INDICATION)&&\
    !defined(MBEDTLS_X509_CRT_PARSE_C)
    #error"MBEDTLS_SSL_SERVER_NAME_INDICATIONdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_THREADING_PTHREAD)
    #if!defined(MBEDTLS_THREADING_C)||defined(MBEDTLS_THREADING_IMPL)
    #error"MBEDTLS_THREADING_PTHREADdefined,butnotallprerequisites"
    #endif
    #defineMBEDTLS_THREADING_IMPL
    #endif

    #ifdefined(MBEDTLS_THREADING_ALT)
    #if!defined(MBEDTLS_THREADING_C)||defined(MBEDTLS_THREADING_IMPL)
    #error"MBEDTLS_THREADING_ALTdefined,butnotallprerequisites"
    #endif
    #defineMBEDTLS_THREADING_IMPL
    #endif

    #ifdefined(MBEDTLS_THREADING_C)&&!defined(MBEDTLS_THREADING_IMPL)
    #error"MBEDTLS_THREADING_Cdefined,singlethreadingimplementationrequired"
    #endif
    #undefMBEDTLS_THREADING_IMPL

    #ifdefined(MBEDTLS_USE_PSA_CRYPTO)&&!defined(MBEDTLS_PSA_CRYPTO_C)
    #error"MBEDTLS_USE_PSA_CRYPTOdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_VERSION_FEATURES)&&!defined(MBEDTLS_VERSION_C)
    #error"MBEDTLS_VERSION_FEATURESdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_USE_C)&&(!defined(MBEDTLS_BIGNUM_C)||\
    !defined(MBEDTLS_OID_C)||!defined(MBEDTLS_ASN1_PARSE_C)||\
    !defined(MBEDTLS_PK_PARSE_C))
    #error"MBEDTLS_X509_USE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_CREATE_C)&&(!defined(MBEDTLS_BIGNUM_C)||\
    !defined(MBEDTLS_OID_C)||!defined(MBEDTLS_ASN1_WRITE_C)||\
    !defined(MBEDTLS_PK_WRITE_C))
    #error"MBEDTLS_X509_CREATE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_CERTS_C)&&!defined(MBEDTLS_X509_USE_C)
    #error"MBEDTLS_CERTS_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_CRT_PARSE_C)&&(!defined(MBEDTLS_X509_USE_C))
    #error"MBEDTLS_X509_CRT_PARSE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_CRL_PARSE_C)&&(!defined(MBEDTLS_X509_USE_C))
    #error"MBEDTLS_X509_CRL_PARSE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_CSR_PARSE_C)&&(!defined(MBEDTLS_X509_USE_C))
    #error"MBEDTLS_X509_CSR_PARSE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_CRT_WRITE_C)&&(!defined(MBEDTLS_X509_CREATE_C))
    #error"MBEDTLS_X509_CRT_WRITE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_CSR_WRITE_C)&&(!defined(MBEDTLS_X509_CREATE_C))
    #error"MBEDTLS_X509_CSR_WRITE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_HAVE_INT32)&&defined(MBEDTLS_HAVE_INT64)
    #error"MBEDTLS_HAVE_INT32andMBEDTLS_HAVE_INT64cannotbedefinedsimultaneously"
    #endif/*MBEDTLS_HAVE_INT32&&MBEDTLS_HAVE_INT64*/

    #if(defined(MBEDTLS_HAVE_INT32)||defined(MBEDTLS_HAVE_INT64))&&\
    defined(MBEDTLS_HAVE_ASM)
    #error"MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64andMBEDTLS_HAVE_ASMcannotbedefinedsimultaneously"
    #endif/*(MBEDTLS_HAVE_INT32||MBEDTLS_HAVE_INT64)&&MBEDTLS_HAVE_ASM*/

    #ifdefined(MBEDTLS_SSL_PROTO_SSL3)
    #ifdefined(MBEDTLS_DEPRECATED_REMOVED)
    #error"MBEDTLS_SSL_PROTO_SSL3isdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #elifdefined(MBEDTLS_DEPRECATED_WARNING)
    #warning"MBEDTLS_SSL_PROTO_SSL3isdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #endif
    #endif/*MBEDTLS_SSL_PROTO_SSL3*/

    #ifdefined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO)
    #ifdefined(MBEDTLS_DEPRECATED_REMOVED)
    #error"MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLOisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #elifdefined(MBEDTLS_DEPRECATED_WARNING)
    #warning"MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLOisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #endif
    #endif/*MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO*/

    #ifdefined(MBEDTLS_SSL_HW_RECORD_ACCEL)
    #ifdefined(MBEDTLS_DEPRECATED_REMOVED)
    #error"MBEDTLS_SSL_HW_RECORD_ACCELisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #elifdefined(MBEDTLS_DEPRECATED_WARNING)
    #warning"MBEDTLS_SSL_HW_RECORD_ACCELisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #endif/*MBEDTLS_DEPRECATED_REMOVED*/
    #endif/*MBEDTLS_SSL_HW_RECORD_ACCEL*/

    #ifdefined(MBEDTLS_SSL_DTLS_SRTP)&&(!defined(MBEDTLS_SSL_PROTO_DTLS))
    #error"MBEDTLS_SSL_DTLS_SRTPdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH)&&(!defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH))
    #error"MBEDTLS_SSL_VARIABLE_BUFFER_LENGTHdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)&&!(defined(MBEDTLS_GCM_C)||defined(MBEDTLS_CCM_C)||defined(MBEDTLS_CHACHAPOLY_C))
    #error"MBEDTLS_SSL_CONTEXT_SERIALIZATIONdefined,butnotallprerequisites"
    #endif

    /*
    *Avoidwarningfrom-pedantic.Thisisaconvenientplaceforthis
    *workaroundsincethisisincludedbyeverysinglefilebeforethe
    *#ifdefined(MBEDTLS_xxx_C)thatresultsinemptytranslationunits.
    */
    typedefintmbedtls_iso_c_forbids_empty_translation_units;

    /**INDENT-ON**/
    #endif/*MBEDTLS_CHECK_CONFIG_H*/