STM32L4 | FreeRTOS|LWIP | MQTTS | x509 | MBEDTLS | Getting Error : mbedtls_ssl_handshake failed: -17168(-0x4310)

Hi ,

I trying to implement MQTTS over LWIP using MBEDTLS on STM32L4(FreeRTOS)platform with WFM200 wifi chip.
Solution For MQtt over LWIP works fine but now I required to implement secure Mqtt (X509).

After Implementation MBEDTLS , I am Getting Below Error While Connecting with MQTT Broker.

if possible also share documentation for MbedTLS config Settings for LWIP and FreeRtos.

Any Data missing or required please Let me know…

Debug Logs

FMAC Driver version    3.3.1
WF200 Firmware version 3.12.1
WF200 initialization successful
Waiting for the Wi-Fi connection...
Connected
IP address : 199.199.50.98
Connecting to MQTT broker (199.199.50.111)...
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:6869: 0x200347c8: => handshake
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 0
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 1
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:0789: 0x200347c8: => write client hello
./Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2879: 0x200347c8: => write record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2604: 0x200347c8: message length: 366, out_left: 366
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2611: 0x200347c8: ssl->f_send() returned 366 (-0xfffffe92)
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2638: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3037: 0x200347c8: <= write record
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:1112: 0x200347c8: <= write client hello
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 2
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/Mbery/ssl_tls.c:2370: 0x200347c8: => fetch input
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2527: 0x200347c8: in_left: 0, nb_want: 5
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2551: 0x200347c8: in_left: 0, nb_want: 5
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:6879: 0x200347c8: <= handshake
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:6869: 0x200347c8: => handshake
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 2
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:1505: 0x200347c8: => parse server hello
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3923: 0x200347c8: => read record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2370: 0x200347c8: => fetch input
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2527: 0x200347c8: in_left: 0, nb_want: 5
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2551: 0x200347c8: in_left: 0, nb_want: 5
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2553: 0x200347c8: ssl->f_recv(_timeout)() returned 5 (-0xfffffffb)
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2573: 0x200347c8: <= fetch input
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2370: 0x200347c8: => fetch input
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2527: 0x200347c8: in_left: 5, nb_want: 2291
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2551: 0x200347c8: in_left: 5, nb_want: 2291
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2553: 0x200347c8: ssl->f_recv(_timeout)() returned 1455 (-0xfffffa51)
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2551: 0x200347c8: in_left: 1460, nb_want: 2291
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:6879: 0x200347c8: <= han
> flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:1505: 0x200347c8: => parse server hello
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3923: 0x200347c8: => read record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2370: 0x200347c8: => fetch input
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2527: 0x200347c8: in_left: 1460, nb_want: 5
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2573: 0x200347c8: <= fetch input
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2370: 0x200347c8: => fetch input
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2527: 0x200347c8: in_left: 1460, nb_want: 2291
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2551: 0x200347c8: in_left: 1460, nb_want: 2291
../Middlewares/Third_Party/MbedTLS/library/ssl_tliddlewares/Third_Party/MbedTLS/library/ssl_cli.c:1787: 0x200347c8: server hello, total extension length: 9
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:1976: 0x200347c8: <= parse server hello
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 3
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:4532: 0x200347c8: => parse certificate
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3923: 0x200347c8: => read record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3956: 0x200347c8: <= read record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:4902: 0x200347c8: <= parse certificate
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 4
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2323: 0x200347c8: => parse server key exchange
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3923: 0x200347c8: => read record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3956: 0x200347c8: <= read record
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2036: 0x200347c8: ECDH curve: secp384r1
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2265: 0x200347c8: Server used SignatureAlgorithm 1
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2266: 0x200347c8: Server used HashAlgorithm 6
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2624: 0x200347c8: <= parse server key exchange
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 5
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2657: 0x200347c8: => parse certificate request
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3923: 0x200347c8: => read record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3956: 0x200347c8: <= read record
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2806: 0x200347c8: <= parse certificate request
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 6
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2816: 0x200347c8: => parse server hello done
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3923: 0x200347c8: => read record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3956: 0x200347c8: <= read record
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2846: 0x200347c8: <= parse server hello done
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 7
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:4415: 0x200347c8: => write certificate
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2879: 0x200347c8: => write record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2604: 0x200347c8: message length: 1392, out_left: 1392
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2611: 0x200347c8: ssl->f_send() returned 1392 (-0xfffffa90)
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2638: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3037: 0x200347c8: <= write record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:4519: 0x200347c8: <= write certificate
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 8
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:2858: 0x200347c8: => write client key exchange
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2879: 0x200347c8: => write record
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2604: 0x200347c8: message length: 107, out_left: 107
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2611: 0x200347c8: ssl->f_send() returned 107 (-0xffffff95)
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2638: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:3037: 0x200347c8: <= write record
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3100: 0x200347c8: <= write client key exchange
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3412: 0x200347c8: client state: 9
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2586: 0x200347c8: => flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:2598: 0x200347c8: <= flush output
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3151: 0x200347c8: => write certificate verify
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:0525: 0x200347c8: => derive keys
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:1107: 0x200347c8: => calc verify sha384
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:1113: 0x200347c8: <= calc verify
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:0997: 0x200347c8: <= derive keys
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:1107: 0x200347c8: => calc verify sha384
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:1113: 0x200347c8: <= calc verify
../Middlewares/Third_Party/MbedTLS/library/ssl_cli.c:3266: 0x200347c8: mbedtls_pk_sign() returned -17168 (-0x4310)
../Middlewares/Third_Party/MbedTLS/library/ssl_tls.c:6879: 0x200347c8: <= handshake
mbedtls_ssl_handshake failed: -17168
Disconnection(256)

Please Find Config File

#ifndef MBEDTLS_CONFIG_FREERTOS_H
#define MBEDTLS_CONFIG_FREERTOS_H

#include “mbedtls_config.h”

/* Add FreeRTOS support */
#define MBEDTLS_THREADING_ALT
#define MBEDTLS_THREADING_C
#define MBEDTLS_FREERTOS
#undef MBEDTLS_NET_C
#undef MBEDTLS_TIMING_C
#undef MBEDTLS_FS_IO
#define MBEDTLS_NO_PLATFORM_ENTROPY
#define HAL_RNG_MODULE_ENABLED
#if defined(HAL_RNG_MODULE_ENABLED)
//#define MBEDTLS_TRNG_C
#define MBEDTLS_ENTROPY_HARDWARE_ALT
#endif

#endif //MBEDTLS_CONFIG_FREERTOS_H

Please Find mbedtls_config.h Configuration

#define MBEDTLS_HAVE_ASM
//#define MBEDTLS_HAVE_SSE2
//#define MBEDTLS_HAVE_TIME
//#define MBEDTLS_HAVE_TIME_DATE
//#define MBEDTLS_PLATFORM_MEMORY
//#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
//#define MBEDTLS_PLATFORM_EXIT_ALT
//#define MBEDTLS_PLATFORM_FPRINTF_ALT
//#define MBEDTLS_PLATFORM_PRINTF_ALT
//#define MBEDTLS_PLATFORM_SNPRINTF_ALT
//#define MBEDTLS_DEPRECATED_WARNING
//#define MBEDTLS_DEPRECATED_REMOVED
//#define MBEDTLS_TIMING_ALT
//#define MBEDTLS_AES_ALT
//#define MBEDTLS_ARC4_ALT
//#define MBEDTLS_BLOWFISH_ALT
//#define MBEDTLS_CAMELLIA_ALT
//#define MBEDTLS_DES_ALT
//#define MBEDTLS_XTEA_ALT
//#define MBEDTLS_MD2_ALT
//#define MBEDTLS_MD4_ALT
//#define MBEDTLS_MD5_ALT
//#define MBEDTLS_RIPEMD160_ALT
//#define MBEDTLS_SHA1_ALT
//#define MBEDTLS_SHA256_ALT
//#define MBEDTLS_SHA512_ALT
//#define MBEDTLS_MD2_PROCESS_ALT
//#define MBEDTLS_MD4_PROCESS_ALT
//#define MBEDTLS_MD5_PROCESS_ALT
//#define MBEDTLS_RIPEMD160_PROCESS_ALT
//#define MBEDTLS_SHA1_PROCESS_ALT
//#define MBEDTLS_SHA256_PROCESS_ALT
//#define MBEDTLS_SHA512_PROCESS_ALT
//#define MBEDTLS_DES_SETKEY_ALT
//#define MBEDTLS_DES_CRYPT_ECB_ALT
//#define MBEDTLS_DES3_CRYPT_ECB_ALT
//#define MBEDTLS_AES_SETKEY_ENC_ALT
//#define MBEDTLS_AES_SETKEY_DEC_ALT
//#define MBEDTLS_AES_ENCRYPT_ALT
//#define MBEDTLS_AES_DECRYPT_ALT
#define MBEDTLS_ENTROPY_HARDWARE_ALT
//#define MBEDTLS_AES_ROM_TABLES
//#define MBEDTLS_CAMELLIA_SMALL_MEMORY
#define MBEDTLS_CIPHER_MODE_CBC
#define MBEDTLS_CIPHER_MODE_CFB
#define MBEDTLS_CIPHER_MODE_CTR
//#define MBEDTLS_CIPHER_NULL_CIPHER
#define MBEDTLS_CIPHER_PADDING_PKCS7
#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
#define MBEDTLS_CIPHER_PADDING_ZEROS
//#define MBEDTLS_ENABLE_WEAK_CIPHERSUITES
#define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
#define MBEDTLS_ECP_DP_SECP384R1_ENABLED

//#ifndef MBEDTLS_FREESCALE_LTC_PKHA /* PKHA suports only <=512 */
//#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
//#endif

//#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
//#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
//#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
//#define MBEDTLS_ECP_DP_BP256R1_ENABLED
//#define MBEDTLS_ECP_DP_BP384R1_ENABLED
//#define MBEDTLS_ECP_DP_BP512R1_ENABLED
//#define MBEDTLS_ECP_DP_CURVE25519_ENABLED

#define MBEDTLS_ECP_NIST_OPTIM
#define MBEDTLS_ECDSA_DETERMINISTIC
#define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
#define MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
#define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
#define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
#define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
//#define MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
#define MBEDTLS_PK_PARSE_EC_EXTENDED
#define MBEDTLS_ERROR_STRERROR_DUMMY
#define MBEDTLS_GENPRIME
//#define MBEDTLS_FS_IO
//#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
#define MBEDTLS_NO_PLATFORM_ENTROPY
//#define MBEDTLS_ENTROPY_FORCE_SHA256
//#define MBEDTLS_MEMORY_DEBUG
//#define MBEDTLS_MEMORY_BACKTRACE
#define MBEDTLS_PK_RSA_ALT_SUPPORT
#define MBEDTLS_PKCS1_V15
#define MBEDTLS_PKCS1_V21
//#define MBEDTLS_RSA_NO_CRT
#define MBEDTLS_SELF_TEST
//#define MBEDTLS_SHA256_SMALLER
//#define MBEDTLS_SSL_AEAD_RANDOM_IV
#define MBEDTLS_SSL_ALL_ALERT_MESSAGES
//#define MBEDTLS_SSL_DEBUG_ALL
#define MBEDTLS_SSL_ENCRYPT_THEN_MAC
#define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
#define MBEDTLS_SSL_FALLBACK_SCSV
//#define MBEDTLS_SSL_HW_RECORD_ACCEL
#define MBEDTLS_SSL_CBC_RECORD_SPLITTING
#define MBEDTLS_SSL_RENEGOTIATION
//#define MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
//#define MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE
#define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
#define MBEDTLS_SSL_PROTO_SSL3
#define MBEDTLS_SSL_PROTO_TLS1
#define MBEDTLS_SSL_PROTO_TLS1_1
#define MBEDTLS_SSL_PROTO_TLS1_2
#define MBEDTLS_SSL_PROTO_DTLS
#define MBEDTLS_SSL_ALPN
#define MBEDTLS_SSL_DTLS_ANTI_REPLAY
#define MBEDTLS_SSL_DTLS_HELLO_VERIFY
#define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
#define MBEDTLS_SSL_DTLS_BADMAC_LIMIT
#define MBEDTLS_SSL_SESSION_TICKETS
#define MBEDTLS_SSL_EXPORT_KEYS
#define MBEDTLS_SSL_SERVER_NAME_INDICATION
#define MBEDTLS_SSL_TRUNCATED_HMAC
//#define MBEDTLS_THREADING_ALT
//#define MBEDTLS_THREADING_PTHREAD
//#define MBEDTLS_VERSION_FEATURES
//#define MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
//#define MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
#define MBEDTLS_X509_CHECK_KEY_USAGE
#define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
//#define MBEDTLS_ZLIB_SUPPORT
#define MBEDTLS_AESNI_C
#define MBEDTLS_AES_C
//#define MBEDTLS_ARC4_C
#define MBEDTLS_ASN1_PARSE_C
#define MBEDTLS_ASN1_WRITE_C
#define MBEDTLS_BASE64_C
#define MBEDTLS_BIGNUM_C
//#define MBEDTLS_BLOWFISH_C
#define MBEDTLS_CAMELLIA_C
#define MBEDTLS_CCM_C
#define MBEDTLS_CERTS_C
#define MBEDTLS_CIPHER_C

#if !(defined(MBEDTLS_AES_ENCRYPT_ALT) && defined(MBEDTLS_AES_ALT_NO_256))
#define MBEDTLS_CTR_DRBG_C
#endif

#define MBEDTLS_DEBUG_C
#define MBEDTLS_DES_C
#define MBEDTLS_DHM_C
#define MBEDTLS_ECDH_C
#define MBEDTLS_ECDSA_C
//#define MBEDTLS_ECJPAKE_C
#define MBEDTLS_ECP_C
#define MBEDTLS_ENTROPY_C
#define MBEDTLS_ERROR_C
#define MBEDTLS_GCM_C
//#define MBEDTLS_HAVEGE_C
#define MBEDTLS_HMAC_DRBG_C
#define MBEDTLS_MD_C
//#define MBEDTLS_MD2_C
//#define MBEDTLS_MD4_C
#define MBEDTLS_MD5_C
//#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
#define MBEDTLS_NET_C
#define MBEDTLS_OID_C
#define MBEDTLS_PADLOCK_C
#define MBEDTLS_PEM_PARSE_C
#define MBEDTLS_PEM_WRITE_C
#define MBEDTLS_PK_C
#define MBEDTLS_PK_PARSE_C
#define MBEDTLS_PK_WRITE_C
#define MBEDTLS_PKCS5_C
//#define MBEDTLS_PKCS11_C
#define MBEDTLS_PKCS12_C
#define MBEDTLS_PLATFORM_C
//#define MBEDTLS_RIPEMD160_C
#define MBEDTLS_RSA_C
#define MBEDTLS_SHA1_C
#define MBEDTLS_SHA256_C
#define MBEDTLS_SHA512_C
#define MBEDTLS_SSL_CACHE_C
#define MBEDTLS_SSL_COOKIE_C
#define MBEDTLS_SSL_TICKET_C
#define MBEDTLS_SSL_CLI_C
#define MBEDTLS_SSL_SRV_C
#define MBEDTLS_SSL_TLS_C
//#define MBEDTLS_THREADING_C
//#define MBEDTLS_TIMING_C
#define MBEDTLS_VERSION_C
#define MBEDTLS_X509_USE_C
#define MBEDTLS_X509_CRT_PARSE_C
#define MBEDTLS_X509_CRL_PARSE_C
#define MBEDTLS_X509_CSR_PARSE_C
#define MBEDTLS_X509_CREATE_C
#define MBEDTLS_X509_CRT_WRITE_C
#define MBEDTLS_X509_CSR_WRITE_C
#define MBEDTLS_XTEA_C






#if 1
unsigned CLS1_printf(const char *fmt, ...);
#define MBEDTLS_PLATFORM_PRINTF_MACRO      CLS1_printf
#else
#define MBEDTLS_PLATFORM_PRINTF_MACRO        PRINTF /**< Default printf macro to use, can be undefined */
#endif


#if defined(TARGET_LIKE_MBED)
#include "mbedtls/target_config.h"
#endif

#if defined(YOTTA_CFG_MBEDTLS_USER_CONFIG_FILE)
#include YOTTA_CFG_MBEDTLS_USER_CONFIG_FILE
#elif defined(MBEDTLS_USER_CONFIG_FILE)
#include MBEDTLS_USER_CONFIG_FILE
#endif

#include "mbedtls/check_config.h"

Thanks And Regards,
Maulin