Add EC J-PAKE context in handshake structure
diff --git a/include/mbedtls/ssl_internal.h b/include/mbedtls/ssl_internal.h
index e9d06da..dc2ddc1 100644
--- a/include/mbedtls/ssl_internal.h
+++ b/include/mbedtls/ssl_internal.h
@@ -41,6 +41,10 @@
 #include "sha512.h"
 #endif
 
+#if defined(MBEDTLS_ECJPAKE_C)
+#include "ecjpake.h"
+#endif
+
 #if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && !defined(inline)
 #define inline __inline
 #endif
@@ -168,6 +172,9 @@
 #if defined(MBEDTLS_ECDH_C)
     mbedtls_ecdh_context ecdh_ctx;              /*!<  ECDH key exchange       */
 #endif
+#if defined(MBEDTLS_ECJPAKE_C)
+    mbedtls_ecjpake_context ecjpake_ctx;        /*!< EC J-PAKE key exchange */
+#endif
 #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \
     defined(MBEDTLS_ECJPAKE_C)
     const mbedtls_ecp_curve_info **curves;      /*!<  Supported elliptic curves */
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 14ee521..93055eb 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -4932,6 +4932,9 @@
 #if defined(MBEDTLS_ECDH_C)
     mbedtls_ecdh_init( &handshake->ecdh_ctx );
 #endif
+#if defined(MBEDTLS_ECJPAKE_C)
+    mbedtls_ecjpake_init( &handshake->ecjpake_ctx );
+#endif
 
 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
     handshake->sni_authmode = MBEDTLS_SSL_VERIFY_UNSET;
@@ -6590,6 +6593,9 @@
 #if defined(MBEDTLS_ECDH_C)
     mbedtls_ecdh_free( &handshake->ecdh_ctx );
 #endif
+#if defined(MBEDTLS_ECJPAKE_C)
+    mbedtls_ecjpake_free( &handshake->ecjpake_ctx );
+#endif
 
 #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C)
     /* explicit void pointer cast for buggy MS compiler */