Topic: PIC32/FreeRTOS handshake failure TLS 1.3
wolfSSL v4.7.0
FreeRTOS 10.3.1
I'm adding a web server to an embedded product which uses the Microchip PIC32 processor. This is my first project with an embedded web server and the associated TLS. Using Microchips Harmony 3 I added the server and encryption and got it compiling and not crashing when making a browser request to the web server after increasing the heap size.
The problem is that whatever I do now I keep getting a Handshake Failure (40) when trying to connect to the server. I've attached a screenshot of the wireshark capture and the wolfSSL config. Any pointers would be greatly appreciated.
#define TCPIP_HTTP_NET_MALLOC_FUNC pvPortMalloc
#define TCPIP_HTTP_NET_FREE_FUNC vPortFree
#define WOLFSSL_ALT_NAMES
#define WOLFSSL_DER_LOAD
#define KEEP_OUR_CERT
#define KEEP_PEER_CERT
#define HAVE_CRL_IO
#define HAVE_IO_TIMEOUT
#define TFM_NO_ASM
#define WOLFSSL_NO_ASM
#define SIZEOF_LONG_LONG 8
#define WOLFSSL_USER_IO
#define NO_WRITEV
#define MICROCHIP_TCPIP
#define HAVE_FFDHE_2048
#define WOLFSSL_DTLS
#define NO_PWDBASED
#define HAVE_TLS_EXTENSIONS
#define WOLFSSL_TLS13
#define HAVE_SUPPORTED_CURVES
#define WOLFSSL_POST_HANDSHAKE_AUTH
#define NO_ERROR_STRINGS
#define NO_OLD_TLS
#define HAVE_HKDF
/*** wolfCrypt Library Configuration ***/
#define MICROCHIP_PIC32
#define MICROCHIP_MPLAB_HARMONY
#define MICROCHIP_MPLAB_HARMONY_3
#define HAVE_MCAPI
#define SIZEOF_LONG_LONG 8
#define WOLFSSL_USER_IO
#define NO_WRITEV
#define NO_FILESYSTEM
#define USE_FAST_MATH
#define NO_PWDBASED
#define HAVE_MCAPI
#define WOLF_CRYPTO_CB // provide call-back support
#define WOLFSSL_HAVE_MIN
#define WOLFSSL_HAVE_MAX
// ---------- FUNCTIONAL CONFIGURATION START ----------
#define NO_MD4
#define WOLFSSL_SHA224
#define WOLFSSL_AES_128
#define WOLFSSL_AES_192
#define WOLFSSL_AES_256
#define WOLFSSL_AES_DIRECT
#define HAVE_AES_DECRYPT
#define HAVE_AES_ECB
#define HAVE_AES_CBC
#define WOLFSSL_AES_COUNTER
#define HAVE_AESGCM
#define HAVE_AESCCM
#define NO_RC4
#define NO_HC128
#define NO_RABBIT
#define HAVE_ECC
#define HAVE_X963_KDF
#define HAVE_DH
#define FP_MAX_BITS 4096
#define USE_CERT_BUFFERS_2048
#define WC_RSA_PSS
#define NO_DEV_RANDOM
#define HAVE_HASHDRBG
#define WC_NO_HARDEN
#define FREERTOS
#define NO_ERROR_STRINGS
#define NO_WOLFSSL_MEMORY