mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Merge pull request #7186 from douzzer/20240129-fix-wc_RsaFunction_ex
20240129-fix-wc_RsaFunction_ex
This commit is contained in:
@ -4570,20 +4570,15 @@ int wc_ecc_shared_secret(ecc_key* private_key, ecc_key* public_key, byte* out,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
err = wc_CryptoCb_Ecdh(private_key, public_key, out, outlen);
|
err = wc_CryptoCb_Ecdh(private_key, public_key, out, outlen);
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err != CRYPTOCB_UNAVAILABLE)
|
if (err != CRYPTOCB_UNAVAILABLE)
|
||||||
return err;
|
return err;
|
||||||
/* fall-through when unavailable */
|
/* fall-through when unavailable */
|
||||||
#endif
|
|
||||||
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err == CRYPTOCB_UNAVAILABLE) {
|
|
||||||
err = NO_VALID_DEVID;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
||||||
|
return NO_VALID_DEVID;
|
||||||
|
#else /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
/* type valid? */
|
/* type valid? */
|
||||||
if (private_key->type != ECC_PRIVATEKEY &&
|
if (private_key->type != ECC_PRIVATEKEY &&
|
||||||
private_key->type != ECC_PRIVATEKEY_ONLY) {
|
private_key->type != ECC_PRIVATEKEY_ONLY) {
|
||||||
@ -4632,7 +4627,7 @@ int wc_ecc_shared_secret(ecc_key* private_key, ecc_key* public_key, byte* out,
|
|||||||
#else
|
#else
|
||||||
err = wc_ecc_shared_secret_ex(private_key, &public_key->pubkey, out, outlen);
|
err = wc_ecc_shared_secret_ex(private_key, &public_key->pubkey, out, outlen);
|
||||||
#endif /* WOLFSSL_ATECC508A */
|
#endif /* WOLFSSL_ATECC508A */
|
||||||
#endif /* WOLF_CRYPTO_CB_ONLY_ECC */
|
#endif /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -5529,21 +5524,15 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
err = wc_CryptoCb_MakeEccKey(rng, keysize, key, curve_id);
|
err = wc_CryptoCb_MakeEccKey(rng, keysize, key, curve_id);
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err != CRYPTOCB_UNAVAILABLE)
|
if (err != CRYPTOCB_UNAVAILABLE)
|
||||||
return err;
|
return err;
|
||||||
/* fall-through when unavailable */
|
/* fall-through when unavailable */
|
||||||
#endif
|
|
||||||
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err == CRYPTOCB_UNAVAILABLE) {
|
|
||||||
return NO_VALID_DEVID;
|
|
||||||
}
|
|
||||||
return err;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
||||||
|
return NO_VALID_DEVID;
|
||||||
|
#else /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC)
|
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC)
|
||||||
if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) {
|
if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) {
|
||||||
#ifdef HAVE_CAVIUM
|
#ifdef HAVE_CAVIUM
|
||||||
@ -5859,7 +5848,7 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
|
|||||||
#endif /* HAVE_ECC_MAKE_PUB */
|
#endif /* HAVE_ECC_MAKE_PUB */
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
#endif /* WOLF_CRYPTO_CB_ONLY_ECC */
|
#endif /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6563,20 +6552,20 @@ int wc_ecc_sign_hash(const byte* in, word32 inlen, byte* out, word32 *outlen,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
err = wc_CryptoCb_EccSign(in, inlen, out, outlen, rng, key);
|
err = wc_CryptoCb_EccSign(in, inlen, out, outlen, rng, key);
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err != CRYPTOCB_UNAVAILABLE)
|
if (err != CRYPTOCB_UNAVAILABLE)
|
||||||
return err;
|
return err;
|
||||||
/* fall-through when unavailable */
|
/* fall-through when unavailable */
|
||||||
#endif
|
|
||||||
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err == CRYPTOCB_UNAVAILABLE) {
|
|
||||||
err = NO_VALID_DEVID;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
||||||
|
(void)rng;
|
||||||
|
(void)inlen;
|
||||||
|
(void)s;
|
||||||
|
(void)r;
|
||||||
|
(void)err;
|
||||||
|
return NO_VALID_DEVID;
|
||||||
|
#else /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
if (rng == NULL) {
|
if (rng == NULL) {
|
||||||
WOLFSSL_MSG("ECC sign RNG missing");
|
WOLFSSL_MSG("ECC sign RNG missing");
|
||||||
return ECC_BAD_ARG_E;
|
return ECC_BAD_ARG_E;
|
||||||
@ -6640,15 +6629,8 @@ int wc_ecc_sign_hash(const byte* in, word32 inlen, byte* out, word32 *outlen,
|
|||||||
FREE_MP_INT_SIZE(s, key->heap, DYNAMIC_TYPE_ECC);
|
FREE_MP_INT_SIZE(s, key->heap, DYNAMIC_TYPE_ECC);
|
||||||
FREE_MP_INT_SIZE(r, key->heap, DYNAMIC_TYPE_ECC);
|
FREE_MP_INT_SIZE(r, key->heap, DYNAMIC_TYPE_ECC);
|
||||||
#endif /* WOLFSSL_ASYNC_CRYPT */
|
#endif /* WOLFSSL_ASYNC_CRYPT */
|
||||||
#else
|
|
||||||
(void)rng;
|
|
||||||
(void)inlen;
|
|
||||||
(void)s;
|
|
||||||
(void)r;
|
|
||||||
(void)err;
|
|
||||||
#endif /* WOLF_CRYPTO_CB_ONLY_ECC */
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
#endif /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
}
|
}
|
||||||
#endif /* !NO_ASN */
|
#endif /* !NO_ASN */
|
||||||
|
|
||||||
@ -8289,21 +8271,20 @@ int wc_ecc_verify_hash(const byte* sig, word32 siglen, const byte* hash,
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
err = wc_CryptoCb_EccVerify(sig, siglen, hash, hashlen, res, key);
|
err = wc_CryptoCb_EccVerify(sig, siglen, hash, hashlen, res, key);
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err != CRYPTOCB_UNAVAILABLE)
|
if (err != CRYPTOCB_UNAVAILABLE)
|
||||||
return err;
|
return err;
|
||||||
/* fall-through when unavailable */
|
/* fall-through when unavailable */
|
||||||
#endif
|
|
||||||
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
|
||||||
if (err == CRYPTOCB_UNAVAILABLE) {
|
|
||||||
err = NO_VALID_DEVID;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_ECC
|
#ifdef WOLF_CRYPTO_CB_ONLY_ECC
|
||||||
|
(void)siglen;
|
||||||
|
(void)hashlen;
|
||||||
|
(void)s;
|
||||||
|
(void)r;
|
||||||
|
(void)err;
|
||||||
|
return NO_VALID_DEVID;
|
||||||
|
#else /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC)
|
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC)
|
||||||
err = wc_ecc_alloc_async(key);
|
err = wc_ecc_alloc_async(key);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
@ -8415,15 +8396,8 @@ int wc_ecc_verify_hash(const byte* sig, word32 siglen, const byte* hash,
|
|||||||
|
|
||||||
/* make sure required variables are reset */
|
/* make sure required variables are reset */
|
||||||
wc_ecc_reset(key);
|
wc_ecc_reset(key);
|
||||||
#else
|
|
||||||
(void)siglen;
|
|
||||||
(void)hashlen;
|
|
||||||
(void)s;
|
|
||||||
(void)r;
|
|
||||||
(void)err;
|
|
||||||
#endif /* WOLF_CRYPTO_CB_ONLY_ECC */
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
#endif /* !WOLF_CRYPTO_CB_ONLY_ECC */
|
||||||
}
|
}
|
||||||
#endif /* !NO_ASN */
|
#endif /* !NO_ASN */
|
||||||
|
|
||||||
|
@ -3141,7 +3141,9 @@ static int wc_RsaFunction_ex(const byte* in, word32 inLen, byte* out,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WOLF_CRYPTO_CB_ONLY_RSA
|
#ifdef WOLF_CRYPTO_CB_ONLY_RSA
|
||||||
|
return NO_VALID_DEVID;
|
||||||
|
#else /* !WOLF_CRYPTO_CB_ONLY_RSA */
|
||||||
SAVE_VECTOR_REGISTERS(return _svr_ret;);
|
SAVE_VECTOR_REGISTERS(return _svr_ret;);
|
||||||
|
|
||||||
#if !defined(WOLFSSL_RSA_VERIFY_ONLY) && !defined(TEST_UNPAD_CONSTANT_TIME) && \
|
#if !defined(WOLFSSL_RSA_VERIFY_ONLY) && !defined(TEST_UNPAD_CONSTANT_TIME) && \
|
||||||
@ -3192,7 +3194,7 @@ static int wc_RsaFunction_ex(const byte* in, word32 inLen, byte* out,
|
|||||||
wc_RsaCleanup(key);
|
wc_RsaCleanup(key);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
#endif /* WOLF_CRYPTO_CB_ONLY_RSA */
|
#endif /* !WOLF_CRYPTO_CB_ONLY_RSA */
|
||||||
}
|
}
|
||||||
|
|
||||||
int wc_RsaFunction(const byte* in, word32 inLen, byte* out,
|
int wc_RsaFunction(const byte* in, word32 inLen, byte* out,
|
||||||
|
Reference in New Issue
Block a user