From e0be22b6c06530d56308853723f982c492e768fd Mon Sep 17 00:00:00 2001 From: Helio Machado <0x2b3bfa0+git@googlemail.com> Date: Wed, 25 May 2022 19:23:49 +0200 Subject: [PATCH] std.crypto: cosmetic improvement to AES multiplication algorithm (#11616) std.crypto: cosmetic improvement to AES multiplication algorithm (#11616) --- lib/std/crypto/aes/soft.zig | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/std/crypto/aes/soft.zig b/lib/std/crypto/aes/soft.zig index 7d676eb8ce..57d433c115 100644 --- a/lib/std/crypto/aes/soft.zig +++ b/lib/std/crypto/aes/soft.zig @@ -489,21 +489,18 @@ fn generateTable(invert: bool) [4][256]u32 { fn mul(a: u8, b: u8) u8 { @setEvalBranchQuota(30000); - var i: u9 = a; - var j: u8 = b; - var k: u8 = 1; + var i: u8 = a; + var j: u9 = b; var s: u9 = 0; - while (k < 0x100 and j != 0) : (k <<= 1) { - if (j & k != 0) { - s ^= i; - j ^= k; + while (i > 0) : (i >>= 1) { + if (i & 1 != 0) { + s ^= j; } - i <<= 1; - - if (i & 0x100 != 0) { - i ^= poly; + j *= 2; + if (j & 0x100 != 0) { + j ^= poly; } }