diff --git a/crypto/shamir.c b/crypto/shamir.c index ae94af1e0..82b5e29a2 100644 --- a/crypto/shamir.c +++ b/crypto/shamir.c @@ -48,7 +48,7 @@ static void bitslice(uint32_t r[8], const uint8_t *x, size_t len) { for (arr_idx = 0; arr_idx < len; arr_idx++) { cur = (uint32_t)x[arr_idx]; for (bit_idx = 0; bit_idx < 8; bit_idx++) { - r[bit_idx] |= ((cur & (1 << bit_idx)) >> bit_idx) << arr_idx; + r[bit_idx] |= ((cur >> bit_idx) & 1) << arr_idx; } } } @@ -61,7 +61,7 @@ static void unbitslice(uint8_t *r, const uint32_t x[8], size_t len) { for (bit_idx = 0; bit_idx < 8; bit_idx++) { cur = (uint32_t)x[bit_idx]; for (arr_idx = 0; arr_idx < len; arr_idx++) { - r[arr_idx] |= ((cur & (1 << arr_idx)) >> arr_idx) << bit_idx; + r[arr_idx] |= ((cur >> arr_idx) & 1) << bit_idx; } } }