Check shift value

This commit is contained in:
Tesfa Mael
2020-12-09 15:04:28 -08:00
parent 21625ab0c2
commit 44903ff8ae

View File

@ -1027,7 +1027,13 @@ void fp_mod_2d(fp_int *a, int b, fp_int *c)
c->dp[x] = 0;
}
/* clear the digit that is not completely outside/inside the modulus */
c->dp[b / DIGIT_BIT] &= ~((fp_digit)0) >> (DIGIT_BIT - b);
x = DIGIT_BIT - b;
if (x > 0) {
c->dp[b / DIGIT_BIT] &= ~((fp_digit)0) >> x;
}
else
c->dp[b / DIGIT_BIT] &= ~((fp_digit)0) << -x;
fp_clamp (c);
}