From e5544e56eca254135f5699b1ce5cab63c9576782 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Mon, 7 Feb 2011 22:17:22 +0100
Subject: [PATCH] * gcm.c (gcm_gf_shift_chunk) : Bug fix for little-endian
 8-bit tables.

Rev: nettle/ChangeLog:1.137
Rev: nettle/gcm.c:1.8
---
 ChangeLog | 3 +++
 gcm.c     | 3 +--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5e89a119..a8ecc958 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-02-07  Niels M�ller  <nisse@lysator.liu.se>
 
+	* gcm.c (gcm_gf_shift_chunk) : Bug fix for little-endian 8-bit
+	tables.
+
 	* gcm.c (gcm_gf_mul_chunk): Special case first and last iteration.
 	(gcm_gf_add): New function, a special case of memxor. Use it for
 	all memxor calls with word-aligned 16 byte blocks. Improves
diff --git a/gcm.c b/gcm.c
index cea7da32..70598d44 100644
--- a/gcm.c
+++ b/gcm.c
@@ -283,8 +283,7 @@ gcm_gf_shift_chunk(uint8_t *x)
 #endif
 #else /* ! WORDS_BIGENDIAN */
 # if SIZEOF_LONG == 4
-#define RSHIFT_WORD(x) \
-  reduce = shift_table[(w[3] >> 56) & 0xff];
+  reduce = shift_table[(w[3] >> 24) & 0xff];
   w[3] = (w[3] << 8) | (w[2] >> 24);
   w[2] = (w[2] << 8) | (w[1] >> 24);
   w[1] = (w[1] << 8) | (w[0] >> 24);
-- 
GitLab