diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index a8e20e1e6..44f0d5ace 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -746,7 +746,7 @@ int GetInt(mp_int* mpi, const byte* input, word32* inOutIdx, word32 maxIdx) return 0; } -#ifdef RSA_LOW_MEM +#if !defined(WOLFSSL_KEY_GEN) && !defined(OPENSSL_EXTRA) && defined(RSA_LOW_MEM) #if !defined(NO_RSA) && !defined(HAVE_USER_RSA) static int SkipInt(const byte* input, word32* inOutIdx, word32 maxIdx) { @@ -2112,7 +2112,7 @@ int wc_RsaPrivateKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key, GetInt(&key->d, input, inOutIdx, inSz) < 0 || GetInt(&key->p, input, inOutIdx, inSz) < 0 || GetInt(&key->q, input, inOutIdx, inSz) < 0) return ASN_RSA_KEY_E; -#ifndef RSA_LOW_MEM +#if defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA) || !defined(RSA_LOW_MEM) if (GetInt(&key->dP, input, inOutIdx, inSz) < 0 || GetInt(&key->dQ, input, inOutIdx, inSz) < 0 || GetInt(&key->u, input, inOutIdx, inSz) < 0 ) return ASN_RSA_KEY_E; @@ -2344,10 +2344,10 @@ int wc_CheckPrivateKey(byte* key, word32 keySz, DecodedCert* der) word32 keyIdx = 0; #ifdef WOLFSSL_SMALL_STACK - a = XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_RSA); + a = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_RSA); if (a == NULL) return MEMORY_E; - b = XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_RSA); + b = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_RSA); if (b == NULL) { XFREE(a, NULL, DYNAMIC_TYPE_RSA); return MEMORY_E; @@ -2415,10 +2415,10 @@ int wc_CheckPrivateKey(byte* key, word32 keySz, DecodedCert* der) word32 keyIdx = 0; #ifdef WOLFSSL_SMALL_STACK - key_pair = XMALLOC(sizeof(ecc_key), NULL, DYNAMIC_TYPE_ECC); + key_pair = (ecc_key*)XMALLOC(sizeof(ecc_key), NULL, DYNAMIC_TYPE_ECC); if (key_pair == NULL) return MEMORY_E; - privDer = XMALLOC(MAX_ECC_BYTES, NULL, DYNAMIC_TYPE_TMP_BUFFER); + privDer = (byte*)XMALLOC(MAX_ECC_BYTES, NULL, DYNAMIC_TYPE_TMP_BUFFER); if (privDer == NULL) { XFREE(key_pair, NULL, DYNAMIC_TYPE_ECC); return MEMORY_E; @@ -2477,7 +2477,8 @@ int wc_CheckPrivateKey(byte* key, word32 keySz, DecodedCert* der) word32 keyIdx = 0; #ifdef WOLFSSL_SMALL_STACK - key_pair = XMALLOC(sizeof(ed25519_key), NULL, DYNAMIC_TYPE_ED25519); + key_pair = (ed25519_key*)XMALLOC(sizeof(ed25519_key), NULL, + DYNAMIC_TYPE_ED25519); if (key_pair == NULL) return MEMORY_E; #endif diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index 5939fa949..871ed166e 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -5078,10 +5078,10 @@ int wc_ecc_verify_hash(const byte* sig, word32 siglen, const byte* hash, r = r_lcl; s = s_lcl; #else - r = XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_ECC); + r = (mp_int*)XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_ECC); if (r == NULL) return MEMORY_E; - s = XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_ECC); + s = (mp_int*)XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_ECC); if (s == NULL) { XFREE(r, key->heap, DYNAMIC_TYPE_ECC); return MEMORY_E; diff --git a/wolfcrypt/src/rsa.c b/wolfcrypt/src/rsa.c index e8d945a88..63040fa56 100644 --- a/wolfcrypt/src/rsa.c +++ b/wolfcrypt/src/rsa.c @@ -276,7 +276,7 @@ int wc_InitRsaKey_ex(RsaKey* key, void* heap, int devId) if (ret != MP_OKAY) return ret; -#ifdef RSA_LOW_MEM +#if !defined(WOLFSSL_KEY_GEN) && !defined(OPENSSL_EXTRA) && defined(RSA_LOW_MEM) ret = mp_init_multi(&key->d, &key->p, &key->q, NULL, NULL, NULL); #else ret = mp_init_multi(&key->d, &key->p, &key->q, &key->dP, &key->dQ, &key->u); @@ -391,7 +391,7 @@ int wc_FreeRsaKey(RsaKey* key) #endif if (key->type == RSA_PRIVATE) { -#ifndef RSA_LOW_MEM +#if defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA) || !defined(RSA_LOW_MEM) mp_forcezero(&key->u); mp_forcezero(&key->dQ); mp_forcezero(&key->dP); @@ -401,7 +401,7 @@ int wc_FreeRsaKey(RsaKey* key) mp_forcezero(&key->d); } /* private part */ -#ifndef RSA_LOW_MEM +#if defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA) || !defined(RSA_LOW_MEM) mp_clear(&key->u); mp_clear(&key->dQ); mp_clear(&key->dP); @@ -1422,11 +1422,11 @@ static int wc_RsaFunctionSync(const byte* in, word32 inLen, byte* out, (void)rng; #ifdef WOLFSSL_SMALL_STACK - tmp = XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_RSA); + tmp = (mp_int*)XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_RSA); if (tmp == NULL) return MEMORY_E; #ifdef WC_RSA_BLINDING - rnd = XMALLOC(sizeof(mp_int) * 2, key->heap, DYNAMIC_TYPE_RSA); + rnd = (mp_int*)XMALLOC(sizeof(mp_int) * 2, key->heap, DYNAMIC_TYPE_RSA); if (rnd == NULL) { XFREE(tmp, key->heap, DYNAMIC_TYPE_RSA); return MEMORY_E; @@ -1811,7 +1811,7 @@ int wc_RsaFunction(const byte* in, word32 inLen, byte* out, #endif #ifdef WOLFSSL_SMALL_STACK - c = XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_RSA); + c = (mp_int*)XMALLOC(sizeof(mp_int), key->heap, DYNAMIC_TYPE_RSA); if (c == NULL) ret = MEMORY_E; #endif diff --git a/wolfssl/wolfcrypt/rsa.h b/wolfssl/wolfcrypt/rsa.h index 3e2423e65..127af0fae 100644 --- a/wolfssl/wolfcrypt/rsa.h +++ b/wolfssl/wolfcrypt/rsa.h @@ -114,7 +114,7 @@ enum { /* RSA */ struct RsaKey { mp_int n, e, d, p, q; -#if defined(WOLFSSL_KEY_GEN) || !defined(RSA_LOW_MEM) +#if defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA) || !defined(RSA_LOW_MEM) mp_int dP, dQ, u; #endif void* heap; /* for user memory overrides */