check_config.h
limits.h
stdint.h
build_info.h
check_config.h
limits.h
stdint.h
aes.h
aria.h
asn1.h
asn1write.h
base64.h
bignum.h
block_cipher.h
build_info.h
camellia.h
ccm.h
chacha20.h
chachapoly.h
check_config.h
cipher.h
cmac.h
ctr_drbg.h
debug.h
des.h
dhm.h
ecdh.h
ecdsa.h
ecjpake.h
ecp.h
entropy.h
error.h
gcm.h
hkdf.h
hmac_drbg.h
lms.h
md.h
md5.h
memory_buffer_alloc.h
net_sockets.h
nist_kw.h
oid.h
pem.h
pk.h
pkcs12.h
pkcs5.h
pkcs7.h
platform.h
platform_time.h
platform_util.h
poly1305.h
psa_util.h
ripemd160.h
rsa.h
sha1.h
sha256.h
sha3.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
build_info.h
crypto.h
crypto_builtin_composites.h
crypto_builtin_key_derivation.h
crypto_builtin_primitives.h
crypto_driver_common.h
crypto_driver_contexts_composites.h
crypto_driver_contexts_key_derivation.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
chachapoly_alt.h
int typedef int mbedtls_iso_c_forbids_empty_translation_units mbedtls_iso_c_forbids_empty_translation_units

Consistency checks for configuration options.

This is an internal header. Do not include it directly.

This header is included automatically by all public Mbed TLS headers (via mbedtls/build_info.h). Do not include it directly in a configuration file such as mbedtls/mbedtls_config.h or #MBEDTLS_USER_CONFIG_FILE! It would run at the wrong time due to missing derived symbols.

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

    #ifndefMBEDTLS_CHECK_CONFIG_H
    #defineMBEDTLS_CHECK_CONFIG_H

    /**INDENT-OFF**/

    #if!defined(MBEDTLS_CONFIG_IS_FINALIZED)
    #warning"Donotincludembedtls/check_config.hmanually!"\
    "Thismaycausespuriouserrors."\
    "ItisincludedautomaticallyattherightpointsinceMbedTLS3.0."
    #endif/*!MBEDTLS_CONFIG_IS_FINALIZED*/

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

    #include<stdint.h>

    #ifdefined(__MINGW32__)||(defined(_MSC_VER)&&_MSC_VER<=1900)
    #if!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_CisrequiredonWindows"
    #endif
    /*Seeauto-enablingSNPRINTF_ALTandVSNPRINTF_ALT
    *in*config_adjust_legacy_crypto.h*/
    #endif/*_MINGW32__||(_MSC_VER&&(_MSC_VER<=1900))*/

    #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

    /*LimitationsonECCkeytypesacceleration:ifwehaveanyof`PUBLIC_KEY`,
    *`KEY_PAIR_BASIC`,`KEY_PAIR_IMPORT`,`KEY_PAIR_EXPORT`thenwemusthave
    *all4ofthem.
    */
    #ifdefined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)||\
    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC)||\
    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT)||\
    defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
    #if!defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)||\
    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_BASIC)||\
    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT)||\
    !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT)
    #error"UnsupportedpartialsupportforECCkeytypeacceleration,seedocs/driver-only-builds.md"
    #endif/*notallofpublic,basic,import,export*/
    #endif/*oneofpublic,basic,import,export*/

    /*LimitationsonECCcurvesacceleration:partialcurveaccelerationisonly
    *supportedwithcryptoexcludingPK,X.509orTLS.
    *Note:noneedtocheckX.509asitdependsonPK.*/
    #ifdefined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_192)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_224)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)||\
    defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
    #ifdefined(MBEDTLS_PSA_ECC_ACCEL_INCOMPLETE_CURVES)
    #ifdefined(MBEDTLS_PK_C)||\
    defined(MBEDTLS_SSL_TLS_C)
    #error"UnsupportedpartialsupportforECCcurvesacceleration,seedocs/driver-only-builds.md"
    #endif/*modulesbeyondwhat'ssupported*/
    #endif/*notallcurvesaccelerated*/
    #endif/*somecurveaccelerated*/

    #ifdefined(MBEDTLS_CTR_DRBG_C)&&!(defined(MBEDTLS_AES_C)||\
    (defined(MBEDTLS_PSA_CRYPTO_CLIENT)&&defined(PSA_WANT_KEY_TYPE_AES)&&\
    defined(PSA_WANT_ALG_ECB_NO_PADDING)))
    #error"MBEDTLS_CTR_DRBG_Cdefined,butnotallprerequisites"
    #endif

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

    #ifdefined(MBEDTLS_CMAC_C)&&\
    (!defined(MBEDTLS_CIPHER_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_BLOCK_CIPHER_NO_DECRYPT)&&defined(MBEDTLS_PSA_CRYPTO_CONFIG)
    #ifdefined(PSA_WANT_ALG_CBC_NO_PADDING)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandPSA_WANT_ALG_CBC_NO_PADDINGcannotbedefinedsimultaneously"
    #endif
    #ifdefined(PSA_WANT_ALG_CBC_PKCS7)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandPSA_WANT_ALG_CBC_PKCS7cannotbedefinedsimultaneously"
    #endif
    #ifdefined(PSA_WANT_ALG_ECB_NO_PADDING)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandPSA_WANT_ALG_ECB_NO_PADDINGcannotbedefinedsimultaneously"
    #endif
    #ifdefined(PSA_WANT_KEY_TYPE_DES)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandPSA_WANT_KEY_TYPE_DEScannotbedefinedsimultaneously"
    #endif
    #endif

    #ifdefined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
    #ifdefined(MBEDTLS_CIPHER_MODE_CBC)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandMBEDTLS_CIPHER_MODE_CBCcannotbedefinedsimultaneously"
    #endif
    #ifdefined(MBEDTLS_CIPHER_MODE_XTS)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandMBEDTLS_CIPHER_MODE_XTScannotbedefinedsimultaneously"
    #endif
    #ifdefined(MBEDTLS_DES_C)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandMBEDTLS_DES_Ccannotbedefinedsimultaneously"
    #endif
    #ifdefined(MBEDTLS_NIST_KW_C)
    #error"MBEDTLS_BLOCK_CIPHER_NO_DECRYPTandMBEDTLS_NIST_KW_Ccannotbedefinedsimultaneously"
    #endif
    #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_PK_C)&&defined(MBEDTLS_USE_PSA_CRYPTO)
    #ifdefined(MBEDTLS_PK_CAN_ECDSA_SIGN)&&!defined(MBEDTLS_ASN1_WRITE_C)
    #error"MBEDTLS_PK_CwithMBEDTLS_USE_PSA_CRYPTOneedsMBEDTLS_ASN1_WRITE_CforECDSAsignature"
    #endif
    #ifdefined(MBEDTLS_PK_CAN_ECDSA_VERIFY)&&!defined(MBEDTLS_ASN1_PARSE_C)
    #error"MBEDTLS_PK_CwithMBEDTLS_USE_PSA_CRYPTOneedsMBEDTLS_ASN1_PARSE_CforECDSAverification"
    #endif
    #endif/*MBEDTLS_PK_C&&MBEDTLS_USE_PSA_CRYPTO*/

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

    #ifdefined(MBEDTLS_ECP_RESTARTABLE)&&\
    (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,butitcannotcoexistwithanalternativeECPimplementation"
    #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_LIGHT)&&(!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(orasubsetenabled),butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_ENTROPY_C)&&\
    !(defined(MBEDTLS_MD_CAN_SHA512)||defined(MBEDTLS_MD_CAN_SHA256))
    #error"MBEDTLS_ENTROPY_Cdefined,butnotallprerequisites"
    #endif
    #ifdefined(MBEDTLS_ENTROPY_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_ENTROPY_FORCE_SHA256)||!defined(MBEDTLS_MD_CAN_SHA512))\
    &&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_MD_CAN_SHA256)
    #error"MBEDTLS_ENTROPY_FORCE_SHA256defined,butnotallprerequisites"
    #endif

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

    #ifdefined(MBEDTLS_CCM_C)&&\
    !(defined(MBEDTLS_CCM_GCM_CAN_AES)||defined(MBEDTLS_CCM_GCM_CAN_ARIA)||\
    defined(MBEDTLS_CCM_GCM_CAN_CAMELLIA))
    #error"MBEDTLS_CCM_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_GCM_C)&&\
    !(defined(MBEDTLS_CCM_GCM_CAN_AES)||defined(MBEDTLS_CCM_GCM_CAN_ARIA)||\
    defined(MBEDTLS_CCM_GCM_CAN_CAMELLIA))
    #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_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_CAN_ECDH)||\
    !defined(MBEDTLS_PK_CAN_ECDSA_SIGN)||\
    !defined(MBEDTLS_X509_CRT_PARSE_C))
    #error"MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)&&\
    (!defined(MBEDTLS_CAN_ECDH)||!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_CAN_ECDH)
    #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_CAN_ECDH)||!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_CAN_ECDH)||\
    !defined(MBEDTLS_PK_CAN_ECDSA_SIGN)||\
    !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_USE_PSA_CRYPTO)
    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)&&\
    (!defined(PSA_WANT_ALG_JPAKE)||\
    !defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC)||\
    !defined(PSA_WANT_ECC_SECP_R1_256))
    #error"MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLEDdefined,butnotallprerequisites"
    #endif
    #else/*MBEDTLS_USE_PSA_CRYPTO*/
    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)&&\
    (!defined(MBEDTLS_ECJPAKE_C)||\
    !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED))
    #error"MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLEDdefined,butnotallprerequisites"
    #endif
    #endif/*MBEDTLS_USE_PSA_CRYPTO*/

    /*UseofECJ-PAKEinTLSrequiresSHA-256.*/
    #ifdefined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)&&\
    !defined(MBEDTLS_MD_CAN_SHA256)
    #error"MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLEDdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)&&\
    !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)&&\
    !defined(MBEDTLS_MD_CAN_SHA256)&&\
    !defined(MBEDTLS_MD_CAN_SHA512)&&\
    !defined(MBEDTLS_MD_CAN_SHA1)
    #error"!MBEDTLS_SSL_KEEP_PEER_CERTIFICATErequiresSHA-512,SHA-256orSHA-1".
    #endif

    #ifdefined(MBEDTLS_MD_C)&&\
    !defined(MBEDTLS_MD_CAN_MD5)&&\
    !defined(MBEDTLS_MD_CAN_RIPEMD160)&&\
    !defined(MBEDTLS_MD_CAN_SHA1)&&\
    !defined(MBEDTLS_MD_CAN_SHA224)&&\
    !defined(MBEDTLS_MD_CAN_SHA256)&&\
    !defined(MBEDTLS_MD_CAN_SHA384)&&\
    !defined(MBEDTLS_MD_CAN_SHA512)&&\
    !defined(MBEDTLS_MD_CAN_SHA3_224)&&\
    !defined(MBEDTLS_MD_CAN_SHA3_256)&&\
    !defined(MBEDTLS_MD_CAN_SHA3_384)&&\
    !defined(MBEDTLS_MD_CAN_SHA3_512)
    #error"MBEDTLS_MD_Cdefined,butnohashalgorithm"
    #endif

    #ifdefined(MBEDTLS_LMS_C)&&\
    !(defined(MBEDTLS_PSA_CRYPTO_CLIENT)&&defined(PSA_WANT_ALG_SHA_256))
    #error"MBEDTLS_LMS_CrequiresMBEDTLS_PSA_CRYPTO_CandPSA_WANT_ALG_SHA_256"
    #endif

    #ifdefined(MBEDTLS_LMS_PRIVATE)&&\
    (!defined(MBEDTLS_LMS_C))
    #error"MBEDTLS_LMS_PRIVATErequiresMBEDTLS_LMS_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_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_PK_HAVE_ECC_KEYS)
    #error"MBEDTLS_PK_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PK_PARSE_C)&&\
    (!defined(MBEDTLS_ASN1_PARSE_C)||\
    !defined(MBEDTLS_OID_C)||\
    !defined(MBEDTLS_PK_C))
    #error"MBEDTLS_PK_PARSE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PK_WRITE_C)&&\
    (!defined(MBEDTLS_ASN1_WRITE_C)||\
    !defined(MBEDTLS_OID_C)||\
    !defined(MBEDTLS_PK_C))
    #error"MBEDTLS_PK_WRITE_Cdefined,butnotallprerequisites"
    #endif

    #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_SETBUF_ALT)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_SETBUF_ALTdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_SETBUF_MACRO)&&!defined(MBEDTLS_PLATFORM_C)
    #error"MBEDTLS_PLATFORM_SETBUF_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_SETBUF_MACRO)&&\
    (defined(MBEDTLS_PLATFORM_STD_SETBUF)||\
    defined(MBEDTLS_PLATFORM_SETBUF_ALT))
    #error"MBEDTLS_PLATFORM_SETBUF_MACROandMBEDTLS_PLATFORM_STD_SETBUF/MBEDTLS_PLATFORM_SETBUF_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_MS_TIME_TYPE_MACRO)&&\
    (!defined(MBEDTLS_PLATFORM_C)||!defined(MBEDTLS_HAVE_TIME))
    #error"MBEDTLS_PLATFORM_MS_TIME_TYPE_MACROdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_PLATFORM_MS_TIME_ALT)&&\
    (!defined(MBEDTLS_PLATFORM_C)||!defined(MBEDTLS_HAVE_TIME))
    #error"MBEDTLS_PLATFORM_MS_TIME_ALTdefined,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_C)&&defined(PSA_HAVE_SOFT_BLOCK_MODE)&&\
    defined(PSA_HAVE_SOFT_BLOCK_CIPHER)&&!defined(MBEDTLS_CIPHER_C)
    #error"MBEDTLS_PSA_CRYPTO_Cdefined,butnotallprerequisites"
    #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_SE_C)
    #ifdefined(MBEDTLS_DEPRECATED_REMOVED)
    #error"MBEDTLS_PSA_CRYPTO_SE_CisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #elifdefined(MBEDTLS_DEPRECATED_WARNING)
    #warning"MBEDTLS_PSA_CRYPTO_SE_CisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #endif
    #endif/*MBEDTLS_PSA_CRYPTO_SE_C*/

    #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_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_USE_A64_CRYPTO_IF_PRESENT)&&\
    defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
    #error"MustonlydefineoneofMBEDTLS_SHA512_USE_A64_CRYPTO_*"
    #endif

    #ifdefined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT)||\
    defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
    #if!defined(MBEDTLS_SHA512_C)
    #error"MBEDTLS_SHA512_USE_A64_CRYPTO_*definedwithoutMBEDTLS_SHA512_C"
    #endif
    #ifdefined(MBEDTLS_SHA512_ALT)||defined(MBEDTLS_SHA512_PROCESS_ALT)
    #error"MBEDTLS_SHA512_*ALTcan'tbeusedwithMBEDTLS_SHA512_USE_A64_CRYPTO_*"
    #endif

    #endif/*MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT||MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY*/

    #ifdefined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)&&!defined(__aarch64__)
    #error"MBEDTLS_SHA512_USE_A64_CRYPTO_ONLYdefinedonnon-Aarch64system"
    #endif

    #ifdefined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT)&&\
    defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
    #error"MustonlydefineoneofMBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_*"
    #endif

    #ifdefined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT)||\
    defined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)
    #if!defined(MBEDTLS_SHA256_C)
    #error"MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_*definedwithoutMBEDTLS_SHA256_C"
    #endif
    #ifdefined(MBEDTLS_SHA256_ALT)||defined(MBEDTLS_SHA256_PROCESS_ALT)
    #error"MBEDTLS_SHA256_*ALTcan'tbeusedwithMBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_*"
    #endif

    #endif

    #ifdefined(MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY)&&!defined(MBEDTLS_ARCH_IS_ARMV8_A)
    #error"MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLYdefinedonnon-Armv8-Asystem"
    #endif

    /*TLS1.3requiresseparateHKDFpartsfromPSA,
    *andatleastoneciphersuite,soatleastSHA-256orSHA-384
    *fromPSAtousewithHKDF.
    *
    *Note:fordependenciescommonwithTLS1.2(runninghandshakehash),
    *seeMBEDTLS_SSL_TLS_C.*/
    #ifdefined(MBEDTLS_SSL_PROTO_TLS1_3)&&\
    !(defined(MBEDTLS_PSA_CRYPTO_CLIENT)&&\
    defined(PSA_WANT_ALG_HKDF_EXTRACT)&&\
    defined(PSA_WANT_ALG_HKDF_EXPAND)&&\
    (defined(PSA_WANT_ALG_SHA_256)||defined(PSA_WANT_ALG_SHA_384)))
    #error"MBEDTLS_SSL_PROTO_TLS1_3defined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED)
    #if!((defined(PSA_WANT_ALG_ECDH)||defined(PSA_WANT_ALG_FFDH))&&\
    defined(MBEDTLS_X509_CRT_PARSE_C)&&\
    (defined(MBEDTLS_PK_CAN_ECDSA_SIGN)||defined(MBEDTLS_PKCS1_V21)))
    #error"MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLEDdefined,butnotallprerequisites"
    #endif
    #endif

    #ifdefined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)
    #if!(defined(PSA_WANT_ALG_ECDH)||defined(PSA_WANT_ALG_FFDH))
    #error"MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLEDdefined,butnotallprerequisites"
    #endif
    #endif

    /*
    *ThecurrentimplementationofTLS1.3requiresMBEDTLS_SSL_KEEP_PEER_CERTIFICATE.
    */
    #ifdefined(MBEDTLS_SSL_PROTO_TLS1_3)&&!defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
    #error"MBEDTLS_SSL_PROTO_TLS1_3definedwithoutMBEDTLS_SSL_KEEP_PEER_CERTIFICATE"
    #endif

    #ifdefined(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_EARLY_DATA)&&\
    (!defined(MBEDTLS_SSL_SESSION_TICKETS)||\
    (!defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED)&&\
    !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)))
    #error"MBEDTLS_SSL_EARLY_DATAdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_EARLY_DATA)&&defined(MBEDTLS_SSL_SRV_C)&&\
    defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE)&&\
    ((MBEDTLS_SSL_MAX_EARLY_DATA_SIZE<0)||\
    (MBEDTLS_SSL_MAX_EARLY_DATA_SIZE>UINT32_MAX))
    #error"MBEDTLS_SSL_MAX_EARLY_DATA_SIZEmustbeintherange(0..UINT32_MAX)"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_DTLS)&&\
    !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_ASYNC_PRIVATE)&&!defined(MBEDTLS_X509_CRT_PARSE_C)
    #error"MBEDTLS_SSL_ASYNC_PRIVATEdefined,butnotallprerequisites"
    #endif

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

    /*TLS1.2and1.3requireSHA-256orSHA-384(runninghandshakehash)*/
    #ifdefined(MBEDTLS_SSL_TLS_C)
    #ifdefined(MBEDTLS_USE_PSA_CRYPTO)
    #if!(defined(PSA_WANT_ALG_SHA_256)||defined(PSA_WANT_ALG_SHA_384))
    #error"MBEDTLS_SSL_TLS_Cdefined,butnotallprerequisites"
    #endif
    #else/*MBEDTLS_USE_PSA_CRYPTO*/
    #if!defined(MBEDTLS_MD_C)||\
    !(defined(MBEDTLS_MD_CAN_SHA256)||defined(MBEDTLS_MD_CAN_SHA384))
    #error"MBEDTLS_SSL_TLS_Cdefined,butnotallprerequisites"
    #endif
    #endif/*MBEDTLS_USE_PSA_CRYPTO*/
    #endif/*MBEDTLS_SSL_TLS_C*/

    #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_TLS1_2)||defined(MBEDTLS_SSL_PROTO_TLS1_3))
    #error"MBEDTLS_SSL_TLS_Cdefined,butnoprotocolsareactive"
    #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_CONNECTION_ID_COMPAT)&&\
    !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
    #error"MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPATdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT)&&MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT!=0
    #ifdefined(MBEDTLS_DEPRECATED_REMOVED)
    #error"MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPATisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #elifdefined(MBEDTLS_DEPRECATED_WARNING)
    #warning"MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPATisdeprecatedandwillberemovedinafutureversionofMbedTLS"
    #endif
    #endif/*MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT&&MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT!=0*/

    #ifdefined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)&&\
    !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_2)
    #error"MBEDTLS_SSL_EXTENDED_MASTER_SECRETdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_RENEGOTIATION)&&\
    !defined(MBEDTLS_SSL_PROTO_TLS1_2)
    #error"MBEDTLS_SSL_RENEGOTIATIONdefined,butnotallprerequisites"
    #endif

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

    #ifdefined(MBEDTLS_SSL_TICKET_C)&&\
    !(defined(MBEDTLS_SSL_HAVE_CCM)||defined(MBEDTLS_SSL_HAVE_GCM)||\
    defined(MBEDTLS_SSL_HAVE_CHACHAPOLY))
    #error"MBEDTLS_SSL_TICKET_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH)&&\
    MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH>=256
    #error"MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTHmustbelessthan256"
    #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//undefattheendofthisparagraph
    #endif
    #ifdefined(MBEDTLS_THREADING_ALT)
    #if!defined(MBEDTLS_THREADING_C)||defined(MBEDTLS_THREADING_IMPL)
    #error"MBEDTLS_THREADING_ALTdefined,butnotallprerequisites"
    #endif
    #defineMBEDTLS_THREADING_IMPL//undefattheendofthisparagraph
    #endif
    #ifdefined(MBEDTLS_THREADING_C)&&!defined(MBEDTLS_THREADING_IMPL)
    #error"MBEDTLS_THREADING_Cdefined,singlethreadingimplementationrequired"
    #endif
    #undefMBEDTLS_THREADING_IMPL//temporarymacrodefinedabove

    #ifdefined(MBEDTLS_USE_PSA_CRYPTO)&&!defined(MBEDTLS_PSA_CRYPTO_CLIENT)
    #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_OID_C)||!defined(MBEDTLS_ASN1_PARSE_C)||\
    !defined(MBEDTLS_PK_PARSE_C)||\
    (!defined(MBEDTLS_MD_C)&&!defined(MBEDTLS_USE_PSA_CRYPTO)))
    #error"MBEDTLS_X509_USE_Cdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_X509_CREATE_C)&&\
    (!defined(MBEDTLS_OID_C)||!defined(MBEDTLS_ASN1_WRITE_C)||\
    !defined(MBEDTLS_PK_PARSE_C)||\
    (!defined(MBEDTLS_MD_C)&&!defined(MBEDTLS_USE_PSA_CRYPTO)))
    #error"MBEDTLS_X509_CREATE_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_X509_TRUSTED_CERTIFICATE_CALLBACK)&&\
    (!defined(MBEDTLS_X509_CRT_PARSE_C))
    #error"MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACKdefined,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_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_RECORD_SIZE_LIMIT)&&(!defined(MBEDTLS_SSL_PROTO_TLS1_3))
    #error"MBEDTLS_SSL_RECORD_SIZE_LIMITdefined,butnotallprerequisites"
    #endif

    #ifdefined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)&&\
    !(defined(MBEDTLS_SSL_HAVE_CCM)||defined(MBEDTLS_SSL_HAVE_GCM)||\
    defined(MBEDTLS_SSL_HAVE_CHACHAPOLY))
    #error"MBEDTLS_SSL_CONTEXT_SERIALIZATIONdefined,butnotallprerequisites"
    #endif

    /*Rejectattemptstoenableoptionsthathavebeenremovedandthatcould
    *causeabuildtosucceedbutwithfeaturesremoved.*/

    #ifdefined(MBEDTLS_HAVEGE_C)//no-check-names
    #error"MBEDTLS_HAVEGE_CwasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/2599"
    #endif

    #ifdefined(MBEDTLS_SSL_HW_RECORD_ACCEL)//no-check-names
    #error"MBEDTLS_SSL_HW_RECORD_ACCELwasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4031"
    #endif

    #ifdefined(MBEDTLS_SSL_PROTO_SSL3)//no-check-names
    #error"MBEDTLS_SSL_PROTO_SSL3(SSLv3.0support)wasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4031"
    #endif

    #ifdefined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO)//no-check-names
    #error"MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO(SSLv2ClientHellosupport)wasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4031"
    #endif

    #ifdefined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT)//no-check-names
    #error"MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT(compatibilitywiththebuggyimplementationoftruncatedHMACinMbedTLSupto2.7)wasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4031"
    #endif

    #ifdefined(MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATES)//no-check-names
    #error"MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_CERTIFICATESwasremovedinMbedTLS3.0.SeetheChangeLogentryifyoureallyneedSHA-1-signedcertificates."
    #endif

    #ifdefined(MBEDTLS_ZLIB_SUPPORT)//no-check-names
    #error"MBEDTLS_ZLIB_SUPPORTwasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4031"
    #endif

    #ifdefined(MBEDTLS_CHECK_PARAMS)//no-check-names
    #error"MBEDTLS_CHECK_PARAMSwasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4313"
    #endif

    #ifdefined(MBEDTLS_SSL_CID_PADDING_GRANULARITY)//no-check-names
    #error"MBEDTLS_SSL_CID_PADDING_GRANULARITYwasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4335"
    #endif

    #ifdefined(MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY)//no-check-names
    #error"MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITYwasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4335"
    #endif

    #ifdefined(MBEDTLS_SSL_TRUNCATED_HMAC)//no-check-names
    #error"MBEDTLS_SSL_TRUNCATED_HMACwasremovedinMbedTLS3.0.Seehttps://github.com/Mbed-TLS/mbedtls/issues/4341"
    #endif

    #ifdefined(MBEDTLS_PKCS7_C)&&((!defined(MBEDTLS_ASN1_PARSE_C))||\
    (!defined(MBEDTLS_OID_C))||(!defined(MBEDTLS_PK_PARSE_C))||\
    (!defined(MBEDTLS_X509_CRT_PARSE_C))||\
    (!defined(MBEDTLS_X509_CRL_PARSE_C))||\
    (!defined(MBEDTLS_MD_C)))
    #error"MBEDTLS_PKCS7_Cisdefined,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*/