mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-10 01:30:52 +02:00
wolfcrypt/src/rsa.c: fix improperly handled SAVE_VECTOR_REGISTERS() retval in
wc_CheckProbablePrime_ex(), and in wc_MakeRsaKey(), make sure not to RESTORE_VECTOR_REGISTERS() if SAVE_VECTOR_REGISTERS() failed.
This commit is contained in:
@@ -561,7 +561,6 @@ USE_STSAFE_VERBOSE
|
||||
USE_TLSV13
|
||||
USE_WOLF_STRNSTR
|
||||
USS_API
|
||||
WC_16BIT_CPU
|
||||
WC_AESXTS_STREAM_NO_REQUEST_ACCOUNTING
|
||||
WC_AES_BS_WORD_SIZE
|
||||
WC_AES_GCM_DEC_AUTH_EARLY
|
||||
|
||||
+5
-5
@@ -4763,12 +4763,11 @@ int wc_CheckProbablePrime_ex(const byte* pRaw, word32 pRawSz,
|
||||
if (ret == MP_OKAY)
|
||||
ret = mp_read_unsigned_bin(e, eRaw, eRawSz);
|
||||
|
||||
if (ret == MP_OKAY) {
|
||||
if (ret == MP_OKAY)
|
||||
SAVE_VECTOR_REGISTERS(ret = _svr_ret;);
|
||||
|
||||
if (ret == MP_OKAY)
|
||||
ret = _CheckProbablePrime(p, Q, e, nlen, isPrime, rng);
|
||||
|
||||
if (ret == 0) {
|
||||
ret = _CheckProbablePrime(p, Q, e, nlen, isPrime, rng);
|
||||
RESTORE_VECTOR_REGISTERS();
|
||||
}
|
||||
|
||||
@@ -5173,7 +5172,8 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
||||
}
|
||||
#endif
|
||||
|
||||
RESTORE_VECTOR_REGISTERS();
|
||||
if (err != WC_NO_ERR_TRACE(WC_ACCEL_INHIBIT_E))
|
||||
RESTORE_VECTOR_REGISTERS();
|
||||
|
||||
/* Last value p - 1. */
|
||||
mp_forcezero(tmp1);
|
||||
|
||||
Reference in New Issue
Block a user