From 67cd46aad27bdfee385048d1e256e8a5a03ad22d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Sat, 31 Mar 2012 21:26:07 +0200
Subject: [PATCH] Use ROTL32 in the aes code.

---
 ChangeLog             | 3 +++
 aes-internal.h        | 2 --
 aes-set-encrypt-key.c | 3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 483f337f..e6fc6bdd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
 
 	* macros.h (ROTL32): New macro, to replace (almost) all other
 	rotation macros.
+	* aes-set-encrypt-key.c: Include macros.h.
+	(aes_set_encrypt_key): Use ROTL32.
+	* aes-internal.h (ROTBYTE, ROTRBYTE): Deleted macros.
 
 2012-03-30  Niels Möller  <nisse@lysator.liu.se>
 
diff --git a/aes-internal.h b/aes-internal.h
index ae988e40..3bedff78 100644
--- a/aes-internal.h
+++ b/aes-internal.h
@@ -63,8 +63,6 @@ _aes_decrypt(const struct aes_ctx *ctx,
 	     const uint8_t *src);
 
 /* Macros */
-#define ROTBYTE(x) (((x) >> 8) | (((x) & 0xff) << 24))
-#define ROTRBYTE(x) (((x) << 8) | (((x) >> 24) & 0xff))
 #define SUBBYTE(x, box) (((box)[((x) & 0xff)]) | \
                         ((box)[(((x) >> 8) & 0xff)] << 8) | \
                         ((box)[(((x) >> 16) & 0xff)] << 16) | \
diff --git a/aes-set-encrypt-key.c b/aes-set-encrypt-key.c
index 71f9f9f8..dfd102f7 100644
--- a/aes-set-encrypt-key.c
+++ b/aes-set-encrypt-key.c
@@ -32,6 +32,7 @@
 #include <assert.h>
 
 #include "aes-internal.h"
+#include "macros.h"
 
 static unsigned
 xtime(unsigned x)
@@ -83,7 +84,7 @@ aes_set_encrypt_key(struct aes_ctx *ctx,
       temp = ctx->keys[i-1];
       if (i % nk == 0)
 	{
-	  temp = SUBBYTE(ROTBYTE(temp), aes_sbox) ^ rcon;
+	  temp = SUBBYTE(ROTL32(24, temp), aes_sbox) ^ rcon;
 	  rcon = (uint32_t)xtime((uint8_t)rcon&0xff);
 	}
       else if (nk > 6 && (i%nk) == 4)
-- 
GitLab