diff --git a/src/ssl.c b/src/ssl.c index e35a4db03..7bb58e1fd 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -31772,7 +31772,7 @@ int wolfSSL_EVP_PKEY_set1_DH(WOLFSSL_EVP_PKEY *pkey, WOLFSSL_DH *key) if (ret <= 0) { WOLFSSL_MSG("Failed to export DH Key"); - XFREE(derBuf, key->heap, DYNAMIC_TYPE_TMP_BUFFER); + XFREE(derBuf, pkey->heap, DYNAMIC_TYPE_TMP_BUFFER); return WOLFSSL_FAILURE; } @@ -45054,6 +45054,7 @@ WOLFSSL_BIGNUM *wolfSSL_ASN1_INTEGER_to_BN(const WOLFSSL_ASN1_INTEGER *ai, ret = GetInt(&mpi, ai->data, &idx, ai->dataMax); if (ret != 0) { #ifdef WOLFSSL_QT + mp_init(&mpi); /* must init mpi */ /* Serial number in QT starts at index 0 of data */ if (mp_read_unsigned_bin(&mpi, (byte*)ai->data, ai->length) != 0) { mp_clear(&mpi); diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index 785378eeb..663fa60f4 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -4858,8 +4858,10 @@ int wc_ecc_sign_hash_ex(const byte* in, word32 inlen, WC_RNG* rng, #else #if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC) && \ (defined(HAVE_CAVIUM_V) || defined(HAVE_INTEL_QA)) - if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) + if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) { ALLOC_CURVE_SPECS(ECC_CURVE_FIELD_COUNT); + err = wc_ecc_curve_load(key->dp, &curve, ECC_CURVE_FIELD_ALL); + } else #endif {