crypto: fix undefined behavior in shamir unbitslice (#1219)

pull/1201/head
Andrew Kozlik 4 years ago committed by GitHub
parent db020c7a47
commit 5429acdb7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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;
}
}
}

Loading…
Cancel
Save