diff --git a/serpent-decrypt.c b/serpent-decrypt.c index 8cc9a6c44e5cf7916b95dd4f0bc309f5fdf8d1d9..a5f33996a3c2eec96be1ce8918852c5507ae2e58 100644 --- a/serpent-decrypt.c +++ b/serpent-decrypt.c @@ -344,28 +344,26 @@ y2 = t16 ^ t14; */ #define SBOX6_INVERSE(type, x0, x1, x2, x3, y0, y1, y2, y3) \ - do { \ - type t02, t03, t04, t05, t06, t07, t08, t09; \ - type t12, t13, t14, t15, t16, t17, t01; \ - t01 = x0 ^ x2; \ - t02 = ~ x2; \ - t03 = x1 & t01; \ - t04 = x1 | t02; \ - t05 = x3 | t03; \ - t06 = x1 ^ x3; \ - t07 = x0 & t04; \ - t08 = x0 | t02; \ - t09 = t07 ^ t05; \ - y1 = t06 ^ t08; \ - y0 = ~ t09; \ - t12 = x1 & y0; \ - t13 = t01 & t05; \ - t14 = t01 ^ t12; \ - t15 = t07 ^ t13; \ - t16 = x3 | t02; \ - t17 = x0 ^ y1; \ - y3 = t17 ^ t15; \ - y2 = t16 ^ t14; \ + do { \ + y2 = x0 ^ x2; \ + x2 = ~ x2; \ + y0 = x1 ^ x3; \ + y1 = x0 | x2; \ + y1 ^= y0; \ + y3 = x1 & y2; \ + y3 |= x3; \ + x3 |= x2; \ + x2 |= x1; \ + x2 &= x0; \ + y0 = x2 ^ y3; \ + y0 = ~ y0; \ + y3 &= y2; \ + y3 ^= x2; \ + x0 ^= y1; \ + y3 ^= x0; \ + x1 &= y0; \ + y2 ^= x1; \ + y2 ^= x3; \ } while (0) /* S7 inverse: 3 0 6 13 9 14 15 8 5 12 11 7 10 1 4 2 */