- state->s[4*0+i] =
- GF256MUL_2(tmp[4*0+i])
- ^ GF256MUL_3(tmp[4*1+i])
- ^ GF256MUL_1(tmp[4*2+i])
- ^ GF256MUL_1(tmp[4*3+i]);
- state->s[4*1+i] =
- GF256MUL_1(tmp[4*0+i])
- ^ GF256MUL_2(tmp[4*1+i])
- ^ GF256MUL_3(tmp[4*2+i])
- ^ GF256MUL_1(tmp[4*3+i]);
- state->s[4*2+i] =
- GF256MUL_1(tmp[4*0+i])
- ^ GF256MUL_1(tmp[4*1+i])
- ^ GF256MUL_2(tmp[4*2+i])
- ^ GF256MUL_3(tmp[4*3+i]);
- state->s[4*3+i] =
- GF256MUL_3(tmp[4*0+i])
- ^ GF256MUL_1(tmp[4*1+i])
- ^ GF256MUL_1(tmp[4*2+i])
- ^ GF256MUL_2(tmp[4*3+i]);
+ t = tmp[4*i+0] ^ tmp[4*i+1] ^ tmp[4*i+2] ^ tmp[4*i+3];
+ state->s[4*i+0] =
+ GF256MUL_2(tmp[4*i+0]^tmp[4*i+1])
+ ^ tmp[4*i+0]
+ ^ t;
+ state->s[4*i+1] =
+ GF256MUL_2(tmp[4*i+1]^tmp[4*i+2])
+ ^ tmp[4*i+1]
+ ^ t;
+ state->s[4*i+2] =
+ GF256MUL_2(tmp[4*i+2]^tmp[4*i+3])
+ ^ tmp[4*i+2]
+ ^ t;
+ state->s[4*i+3] =
+ GF256MUL_2(tmp[4*i+3]^tmp[4*i+0])
+ ^ tmp[4*i+3]
+ ^ t;