summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2017-11-22 22:39:51 -0800
committerEmil Velikov <emil.l.velikov@gmail.com>2017-12-08 18:27:00 +0000
commit1cb18fc98b8a82d55248902ceaeb0e9bbe638f9f (patch)
treeef24bb64def6699436a57bfe3d2c33c426fa659e
parent4473097d92ac53c8284d9370d4ba65ccc0834e8e (diff)
util: Fix SHA1 implementation on big endian
The code defines a macro blk0(i) based on the preprocessor condition BYTE_ORDER == LITTLE_ENDIAN. If true, blk0(i) is defined as a byte swap operation. Unfortunately, if the preprocessor macros used in the test are no defined, then the comparison becomes 0 == 0 and it evaluates as true. Fixes: d1efa09d342b ("util: import sha1 implementation from OpenBSD") Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 532674303a92c438cb1c48d224e9dee9dece91ec)
-rw-r--r--src/util/sha1/sha1.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/util/sha1/sha1.c b/src/util/sha1/sha1.c
index ef59ea1dfc6..f36a77c2026 100644
--- a/src/util/sha1/sha1.c
+++ b/src/util/sha1/sha1.c
@@ -16,6 +16,7 @@
#include <stdint.h>
#include <string.h>
+#include "u_endian.h"
#include "sha1.h"
#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
@@ -24,7 +25,7 @@
* blk0() and blk() perform the initial expand.
* I got the idea of expanding during the round function from SSLeay
*/
-#if BYTE_ORDER == LITTLE_ENDIAN
+#ifdef PIPE_ARCH_LITTLE_ENDIAN
# define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
|(rol(block->l[i],8)&0x00FF00FF))
#else