mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-06-26 18:02:35 +00:00
Fix another undefined shift.
Note that `(1 << j)` is undefined for j == 31, so `(1u << j)` should be used.
This commit is contained in:
parent
b0af159096
commit
2350bb015c
8
bignum.c
8
bignum.c
@ -324,19 +324,19 @@ void bn_rshift(bignum256 *a)
|
|||||||
// sets bit in bignum
|
// sets bit in bignum
|
||||||
void bn_setbit(bignum256 *a, uint8_t bit)
|
void bn_setbit(bignum256 *a, uint8_t bit)
|
||||||
{
|
{
|
||||||
a->val[bit / 30] |= (1 << (bit % 30));
|
a->val[bit / 30] |= (1u << (bit % 30));
|
||||||
}
|
}
|
||||||
|
|
||||||
// clears bit in bignum
|
// clears bit in bignum
|
||||||
void bn_clearbit(bignum256 *a, uint8_t bit)
|
void bn_clearbit(bignum256 *a, uint8_t bit)
|
||||||
{
|
{
|
||||||
a->val[bit / 30] &= ~(1 << (bit % 30));
|
a->val[bit / 30] &= ~(1u << (bit % 30));
|
||||||
}
|
}
|
||||||
|
|
||||||
// tests bit in bignum
|
// tests bit in bignum
|
||||||
uint32_t bn_testbit(bignum256 *a, uint8_t bit)
|
uint32_t bn_testbit(bignum256 *a, uint8_t bit)
|
||||||
{
|
{
|
||||||
return a->val[bit / 30] & (1 << (bit % 30));
|
return a->val[bit / 30] & (1u << (bit % 30));
|
||||||
}
|
}
|
||||||
|
|
||||||
// a = b ^ c
|
// a = b ^ c
|
||||||
@ -694,7 +694,7 @@ void bn_inverse(bignum256 *x, const bignum256 *prime)
|
|||||||
}
|
}
|
||||||
// count up to 32 zero bits of even->a.
|
// count up to 32 zero bits of even->a.
|
||||||
j = 0;
|
j = 0;
|
||||||
while ((even->a[0] & (1 << j)) == 0) {
|
while ((even->a[0] & (1u << j)) == 0) {
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
if (j > 0) {
|
if (j > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user