diff --git a/src/tls.c b/src/tls.c index 0787abca0..e5ca81e77 100755 --- a/src/tls.c +++ b/src/tls.c @@ -5059,6 +5059,14 @@ static void TLSX_KeyShare_FreeAll(KeyShareEntry* list, void* heap) while ((current = list) != NULL) { list = current->next; + if ((current->group & NAMED_DH_MASK) == 0) { +#ifdef HAVE_CURVE25519 + if (current->group == WOLFSSL_ECC_X25519) { + } + else +#endif + wc_ecc_free(current->key); + } XFREE(current->key, heap, DYNAMIC_TYPE_PRIVATE_KEY); XFREE(current->ke, heap, DYNAMIC_TYPE_PUBLIC_KEY); XFREE(current, heap, DYNAMIC_TYPE_TLSX);