On Tue 09 Oct 2018 02:55:40 PM CEST, Daniel P. Berrangé wrote:
> -static void xts_mult_x(uint8_t *I)
> +static void xts_mult_x(xts_uint128 *I)
> {
> - int x;
> - uint8_t t, tt;
> + uint64_t tt;
>
> - for (x = t = 0; x < 16; x++) {
> - tt = I[x] >> 7;
> - I[x] = ((I[x] << 1) | t) & 0xFF;
> - t = tt;
> - }
> - if (tt) {
> - I[0] ^= 0x87;
> + tt = I->a >> 63;
> + I->a = I->a << 1;
> +
> + if (I->b >> 63) {
> + I->a ^= 0x87;
> }
> + I->b = (I->b << 1) | tt;
> }
Does this work fine in big-endian CPUs?
Berto