summaryrefslogtreecommitdiff
path: root/src/add_tweakeyunrolled/tweakey.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/add_tweakeyunrolled/tweakey.c')
-rw-r--r--src/add_tweakeyunrolled/tweakey.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/add_tweakeyunrolled/tweakey.c b/src/add_tweakeyunrolled/tweakey.c
index a5b88a8..7f80a2a 100644
--- a/src/add_tweakeyunrolled/tweakey.c
+++ b/src/add_tweakeyunrolled/tweakey.c
@@ -67,11 +67,6 @@ static uint8_t _M1(uint8_t x)
return x<<3 ^ x>>3;
}
-static uint8_t _M2(uint8_t x)
-{
- return x<<6 ^ (x>>3)<<3 ^ x>>6;
-}
-
static uint8_t _M3(uint8_t x)
{
return (uint8_t)(x<<3) >> 3;
@@ -111,12 +106,17 @@ static void _multiply_M2(const uint8_t x[LANE_BYTES], uint8_t y[LANE_BYTES])
static void _multiply_M3(const uint8_t x[LANE_BYTES], uint8_t y[LANE_BYTES])
{
- y[7] = x[5]<<3 ^ x[4];
- y[6] = x[5]<<6 ^ _M1(x[4]) ^ x[3];
- y[5] = _M2(x[4]) ^ _M1(x[3]) ^ x[2];
- y[4] = x[6]<<2 ^ x[3]>>6 ^ x[2]>>3 ^ x[1];
+ uint8_t x_M_5 = x[5]<<3 ^ x[4];
+ uint8_t x_M_4 = x[4]>>3 ^ x[3];
+ uint8_t x_M2_5 = x_M_5<<3 ^ x_M_4;
+ uint8_t x_M2_4 = x_M_4>>3 ^ x[2];
+
+ y[7] = x_M_5;
+ y[6] = x_M2_5;
+ y[5] = x_M2_5<<3 ^ x_M2_4;
+ y[4] = x_M2_4>>3 ^ x[6]<<2 ^ x[1];
y[3] = x[5]<<2 ^ x[0];
- y[2] = x[7] ^ x[5]<<5 ^ x[4]<<2;
+ y[2] = x_M_5<<2 ^ x[7];
y[1] = x[6];
y[0] = x[5];
}