Merge pull request #5850 from SparkiDev/sp_exptmod_nct_err_fix

SP int: fix check of err in _sp_exptmod_nct
This commit is contained in:
David Garske 2022-12-05 11:24:12 -08:00 committed by GitHub
commit 5dee15d074
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -13077,7 +13077,7 @@ static int _sp_exptmod_nct(const sp_int* b, const sp_int* e, const sp_int* m,
}
/* 4. While at least window bits left. */
while (err == MP_OKAY && ((i >= 0) || (c >= winBits))) {
while ((err == MP_OKAY) && ((i >= 0) || (c >= winBits))) {
/* Number of squares to before due to top bits being 0. */
int sqrs = 0;
@ -13101,9 +13101,9 @@ static int _sp_exptmod_nct(const sp_int* b, const sp_int* e, const sp_int* m,
n <<= 1;
c--;
}
while (err == MP_OKAY && ((i >= 0) || (c >= winBits)));
while ((err == MP_OKAY) && ((i >= 0) || (c >= winBits)));
if (err == MP_OKAY && ((i >= 0) || (c >= winBits))) {
if ((err == MP_OKAY) && ((i >= 0) || (c >= winBits))) {
/* Add squares needed before using table entry. */
sqrs += winBits;
}
@ -13111,7 +13111,7 @@ static int _sp_exptmod_nct(const sp_int* b, const sp_int* e, const sp_int* m,
/* 4.2. Montgomery square result for each leading 0 and window
* bits if bits left.
*/
for (; sqrs > 0; sqrs--) {
for (; (err == MP_OKAY) && (sqrs > 0); sqrs--) {
err = sp_sqr(tr, tr);
if (err == MP_OKAY) {
err = _sp_mont_red(tr, m, mp);