From bc7650d87bf27f85f1a2a806dc2db1780e09e6a5 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Sun, 3 Aug 2014 19:56:43 +0300 Subject: [PATCH] liblzma: SHA-256: Do the byteswapping without a temporary buffer. --- src/liblzma/check/sha256.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/liblzma/check/sha256.c b/src/liblzma/check/sha256.c index a8470d56..0d3bc9e7 100644 --- a/src/liblzma/check/sha256.c +++ b/src/liblzma/check/sha256.c @@ -31,7 +31,7 @@ // At least on x86, GCC is able to optimize this to a rotate instruction. #define rotr_32(num, amount) ((num) >> (amount) | (num) << (32 - (amount))) -#define blk0(i) (W[i] = data[i]) +#define blk0(i) (W[i] = conv32be(data[i])) #define blk2(i) (W[i & 15] += s1(W[(i - 2) & 15]) + W[(i - 7) & 15] \ + s0(W[(i - 15) & 15])) @@ -111,18 +111,7 @@ transform(uint32_t state[8], const uint32_t data[16]) static void process(lzma_check_state *check) { -#ifdef WORDS_BIGENDIAN transform(check->state.sha256.state, check->buffer.u32); - -#else - uint32_t data[16]; - - for (size_t i = 0; i < 16; ++i) - data[i] = bswap32(check->buffer.u32[i]); - - transform(check->state.sha256.state, data); -#endif - return; }