Blame src/hash/sha1dc/sha1.c

Packit Service 20376f
/***
Packit Service 20376f
* Copyright 2017 Marc Stevens <marc@marc-stevens.nl>, Dan Shumow (danshu@microsoft.com)
Packit Service 20376f
* Distributed under the MIT Software License.
Packit Service 20376f
* See accompanying file LICENSE.txt or copy at
Packit Service 20376f
* https://opensource.org/licenses/MIT
Packit Service 20376f
***/
Packit Service 20376f
Packit Service 20376f
#ifndef SHA1DC_NO_STANDARD_INCLUDES
Packit Service 20376f
#include <string.h>
Packit Service 20376f
#include <memory.h>
Packit Service 20376f
#include <stdio.h>
Packit Service 20376f
#include <stdlib.h>
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef SHA1DC_CUSTOM_INCLUDE_SHA1_C
Packit Service 20376f
#include SHA1DC_CUSTOM_INCLUDE_SHA1_C
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifndef SHA1DC_INIT_SAFE_HASH_DEFAULT
Packit Service 20376f
#define SHA1DC_INIT_SAFE_HASH_DEFAULT 1
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#include "sha1.h"
Packit Service 20376f
#include "ubc_check.h"
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
/*
Packit Service 20376f
   Because Little-Endian architectures are most common,
Packit Service 20376f
   we only set SHA1DC_BIGENDIAN if one of these conditions is met.
Packit Service 20376f
   Note that all MSFT platforms are little endian,
Packit Service 20376f
   so none of these will be defined under the MSC compiler.
Packit Service 20376f
   If you are compiling on a big endian platform and your compiler does not define one of these,
Packit Service 20376f
   you will have to add whatever macros your tool chain defines to indicate Big-Endianness.
Packit Service 20376f
 */
Packit Service 20376f
#ifdef SHA1DC_BIGENDIAN
Packit Service 20376f
#undef SHA1DC_BIGENDIAN
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#if (defined(_BYTE_ORDER) || defined(__BYTE_ORDER) || defined(__BYTE_ORDER__))
Packit Service 20376f
Packit Service 20376f
#if ((defined(_BYTE_ORDER) && (_BYTE_ORDER == _BIG_ENDIAN)) || \
Packit Service 20376f
     (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || \
Packit Service 20376f
     (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __BIG_ENDIAN__)) )
Packit Service 20376f
#define SHA1DC_BIGENDIAN
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#else
Packit Service 20376f
Packit Service 20376f
#if (defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN) || defined(__BIG_ENDIAN__) || \
Packit Service 20376f
     defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \
Packit Service 20376f
     defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || \
Packit Service 20376f
     defined(__sparc))
Packit Service 20376f
#define SHA1DC_BIGENDIAN
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#if (defined(SHA1DC_FORCE_LITTLEENDIAN) && defined(SHA1DC_BIGENDIAN))
Packit Service 20376f
#undef SHA1DC_BIGENDIAN
Packit Service 20376f
#endif
Packit Service 20376f
#if (defined(SHA1DC_FORCE_BIGENDIAN) && !defined(SHA1DC_BIGENDIAN))
Packit Service 20376f
#define SHA1DC_BIGENDIAN
Packit Service 20376f
#endif
Packit Service 20376f
/*ENDIANNESS SELECTION*/
Packit Service 20376f
Packit Service 20376f
#if (defined SHA1DC_FORCE_UNALIGNED_ACCESS || \
Packit Service 20376f
     defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || \
Packit Service 20376f
     defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__)  || \
Packit Service 20376f
     defined(__i586__) || defined(__i686__) || defined(_M_IX86) || defined(__X86__) || \
Packit Service 20376f
     defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__) || defined(__INTEL__) || \
Packit Service 20376f
     defined(__386) || defined(_M_X64) || defined(_M_AMD64))
Packit Service 20376f
Packit Service 20376f
#define SHA1DC_ALLOW_UNALIGNED_ACCESS
Packit Service 20376f
Packit Service 20376f
#endif /*UNALIGNMENT DETECTION*/
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
#define rotate_right(x,n) (((x)>>(n))|((x)<<(32-(n))))
Packit Service 20376f
#define rotate_left(x,n)  (((x)<<(n))|((x)>>(32-(n))))
Packit Service 20376f
Packit Service 20376f
#define sha1_bswap32(x) \
Packit Service 20376f
	{x = ((x << 8) & 0xFF00FF00) | ((x >> 8) & 0xFF00FF); x = (x << 16) | (x >> 16);}
Packit Service 20376f
Packit Service 20376f
#define sha1_mix(W, t)  (rotate_left(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1))
Packit Service 20376f
Packit Service 20376f
#ifdef SHA1DC_BIGENDIAN
Packit Service 20376f
	#define sha1_load(m, t, temp)  { temp = m[t]; }
Packit Service 20376f
#else
Packit Service 20376f
	#define sha1_load(m, t, temp)  { temp = m[t]; sha1_bswap32(temp); }
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#define sha1_store(W, t, x)	*(volatile uint32_t *)&W[t] = x
Packit Service 20376f
Packit Service 20376f
#define sha1_f1(b,c,d) ((d)^((b)&((c)^(d))))
Packit Service 20376f
#define sha1_f2(b,c,d) ((b)^(c)^(d))
Packit Service 20376f
#define sha1_f3(b,c,d) (((b)&(c))+((d)&((b)^(c))))
Packit Service 20376f
#define sha1_f4(b,c,d) ((b)^(c)^(d))
Packit Service 20376f
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ e += rotate_left(a, 5) + sha1_f1(b,c,d) + 0x5A827999 + m[t]; b = rotate_left(b, 30); }
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ e += rotate_left(a, 5) + sha1_f2(b,c,d) + 0x6ED9EBA1 + m[t]; b = rotate_left(b, 30); }
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ e += rotate_left(a, 5) + sha1_f3(b,c,d) + 0x8F1BBCDC + m[t]; b = rotate_left(b, 30); }
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ e += rotate_left(a, 5) + sha1_f4(b,c,d) + 0xCA62C1D6 + m[t]; b = rotate_left(b, 30); }
Packit Service 20376f
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ b = rotate_right(b, 30); e -= rotate_left(a, 5) + sha1_f1(b,c,d) + 0x5A827999 + m[t]; }
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ b = rotate_right(b, 30); e -= rotate_left(a, 5) + sha1_f2(b,c,d) + 0x6ED9EBA1 + m[t]; }
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ b = rotate_right(b, 30); e -= rotate_left(a, 5) + sha1_f3(b,c,d) + 0x8F1BBCDC + m[t]; }
Packit Service 20376f
#define HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(a, b, c, d, e, m, t) \
Packit Service 20376f
	{ b = rotate_right(b, 30); e -= rotate_left(a, 5) + sha1_f4(b,c,d) + 0xCA62C1D6 + m[t]; }
Packit Service 20376f
Packit Service 20376f
#define SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(a, b, c, d, e, m, W, t, temp) \
Packit Service 20376f
	{sha1_load(m, t, temp); sha1_store(W, t, temp); e += temp + rotate_left(a, 5) + sha1_f1(b,c,d) + 0x5A827999; b = rotate_left(b, 30);}
Packit Service 20376f
Packit Service 20376f
#define SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND(a, b, c, d, e, W, t, temp) \
Packit Service 20376f
	{temp = sha1_mix(W, t); sha1_store(W, t, temp); e += temp + rotate_left(a, 5) + sha1_f1(b,c,d) + 0x5A827999; b = rotate_left(b, 30); }
Packit Service 20376f
Packit Service 20376f
#define SHA1COMPRESS_FULL_ROUND2_STEP(a, b, c, d, e, W, t, temp) \
Packit Service 20376f
	{temp = sha1_mix(W, t); sha1_store(W, t, temp); e += temp + rotate_left(a, 5) + sha1_f2(b,c,d) + 0x6ED9EBA1; b = rotate_left(b, 30); }
Packit Service 20376f
Packit Service 20376f
#define SHA1COMPRESS_FULL_ROUND3_STEP(a, b, c, d, e, W, t, temp) \
Packit Service 20376f
	{temp = sha1_mix(W, t); sha1_store(W, t, temp); e += temp + rotate_left(a, 5) + sha1_f3(b,c,d) + 0x8F1BBCDC; b = rotate_left(b, 30); }
Packit Service 20376f
Packit Service 20376f
#define SHA1COMPRESS_FULL_ROUND4_STEP(a, b, c, d, e, W, t, temp) \
Packit Service 20376f
	{temp = sha1_mix(W, t); sha1_store(W, t, temp); e += temp + rotate_left(a, 5) + sha1_f4(b,c,d) + 0xCA62C1D6; b = rotate_left(b, 30); }
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
#define SHA1_STORE_STATE(i) states[i][0] = a; states[i][1] = b; states[i][2] = c; states[i][3] = d; states[i][4] = e;
Packit Service 20376f
Packit Service 20376f
#ifdef BUILDNOCOLLDETECTSHA1COMPRESSION
Packit Service 20376f
void sha1_compression(uint32_t ihv[5], const uint32_t m[16])
Packit Service 20376f
{
Packit Service 20376f
	uint32_t W[80];
Packit Service 20376f
	uint32_t a,b,c,d,e;
Packit Service 20376f
	unsigned i;
Packit Service 20376f
Packit Service 20376f
	memcpy(W, m, 16 * 4);
Packit Service 20376f
	for (i = 16; i < 80; ++i)
Packit Service 20376f
		W[i] = sha1_mix(W, i);
Packit Service 20376f
Packit Service 20376f
	a = ihv[0]; b = ihv[1]; c = ihv[2]; d = ihv[3]; e = ihv[4];
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 0);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 1);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 2);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 3);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 4);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 5);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 6);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 7);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 8);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 9);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 10);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 11);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 12);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 13);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 14);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 15);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 16);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 17);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 18);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 19);
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 20);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 21);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 22);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 23);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 24);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 25);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 26);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 27);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 28);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 29);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 30);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 31);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 32);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 33);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 34);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 35);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 36);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 37);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 38);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 39);
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 40);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 41);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 42);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 43);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 44);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 45);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 46);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 47);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 48);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 49);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 50);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 51);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 52);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 53);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 54);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 55);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 56);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 57);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 58);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 59);
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 60);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 61);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 62);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 63);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 64);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 65);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 66);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 67);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 68);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 69);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 70);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 71);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 72);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 73);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 74);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 75);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 76);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 77);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 78);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 79);
Packit Service 20376f
Packit Service 20376f
	ihv[0] += a; ihv[1] += b; ihv[2] += c; ihv[3] += d; ihv[4] += e;
Packit Service 20376f
}
Packit Service 20376f
#endif /*BUILDNOCOLLDETECTSHA1COMPRESSION*/
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
static void sha1_compression_W(uint32_t ihv[5], const uint32_t W[80])
Packit Service 20376f
{
Packit Service 20376f
	uint32_t a = ihv[0], b = ihv[1], c = ihv[2], d = ihv[3], e = ihv[4];
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 0);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 1);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 2);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 3);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 4);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 5);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 6);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 7);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 8);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 9);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 10);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 11);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 12);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 13);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 14);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, W, 15);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, W, 16);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, W, 17);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, W, 18);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, W, 19);
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 20);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 21);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 22);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 23);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 24);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 25);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 26);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 27);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 28);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 29);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 30);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 31);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 32);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 33);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 34);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, W, 35);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, W, 36);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, W, 37);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, W, 38);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, W, 39);
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 40);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 41);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 42);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 43);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 44);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 45);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 46);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 47);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 48);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 49);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 50);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 51);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 52);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 53);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 54);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, W, 55);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, W, 56);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, W, 57);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, W, 58);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, W, 59);
Packit Service 20376f
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 60);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 61);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 62);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 63);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 64);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 65);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 66);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 67);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 68);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 69);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 70);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 71);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 72);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 73);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 74);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, W, 75);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, W, 76);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, W, 77);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, W, 78);
Packit Service 20376f
	HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, W, 79);
Packit Service 20376f
Packit Service 20376f
	ihv[0] += a; ihv[1] += b; ihv[2] += c; ihv[3] += d; ihv[4] += e;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
void sha1_compression_states(uint32_t ihv[5], const uint32_t m[16], uint32_t W[80], uint32_t states[80][5])
Packit Service 20376f
{
Packit Service 20376f
	uint32_t a = ihv[0], b = ihv[1], c = ihv[2], d = ihv[3], e = ihv[4];
Packit Service 20376f
	uint32_t temp;
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE00
Packit Service 20376f
	SHA1_STORE_STATE(0)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(a, b, c, d, e, m, W, 0, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE01
Packit Service 20376f
	SHA1_STORE_STATE(1)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(e, a, b, c, d, m, W, 1, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE02
Packit Service 20376f
	SHA1_STORE_STATE(2)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(d, e, a, b, c, m, W, 2, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE03
Packit Service 20376f
	SHA1_STORE_STATE(3)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(c, d, e, a, b, m, W, 3, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE04
Packit Service 20376f
	SHA1_STORE_STATE(4)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(b, c, d, e, a, m, W, 4, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE05
Packit Service 20376f
	SHA1_STORE_STATE(5)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(a, b, c, d, e, m, W, 5, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE06
Packit Service 20376f
	SHA1_STORE_STATE(6)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(e, a, b, c, d, m, W, 6, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE07
Packit Service 20376f
	SHA1_STORE_STATE(7)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(d, e, a, b, c, m, W, 7, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE08
Packit Service 20376f
	SHA1_STORE_STATE(8)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(c, d, e, a, b, m, W, 8, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE09
Packit Service 20376f
	SHA1_STORE_STATE(9)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(b, c, d, e, a, m, W, 9, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE10
Packit Service 20376f
	SHA1_STORE_STATE(10)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(a, b, c, d, e, m, W, 10, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE11
Packit Service 20376f
	SHA1_STORE_STATE(11)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(e, a, b, c, d, m, W, 11, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE12
Packit Service 20376f
	SHA1_STORE_STATE(12)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(d, e, a, b, c, m, W, 12, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE13
Packit Service 20376f
	SHA1_STORE_STATE(13)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(c, d, e, a, b, m, W, 13, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE14
Packit Service 20376f
	SHA1_STORE_STATE(14)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(b, c, d, e, a, m, W, 14, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE15
Packit Service 20376f
	SHA1_STORE_STATE(15)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(a, b, c, d, e, m, W, 15, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE16
Packit Service 20376f
	SHA1_STORE_STATE(16)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND(e, a, b, c, d, W, 16, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE17
Packit Service 20376f
	SHA1_STORE_STATE(17)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND(d, e, a, b, c, W, 17, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE18
Packit Service 20376f
	SHA1_STORE_STATE(18)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND(c, d, e, a, b, W, 18, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE19
Packit Service 20376f
	SHA1_STORE_STATE(19)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND(b, c, d, e, a, W, 19, temp);
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE20
Packit Service 20376f
	SHA1_STORE_STATE(20)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(a, b, c, d, e, W, 20, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE21
Packit Service 20376f
	SHA1_STORE_STATE(21)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(e, a, b, c, d, W, 21, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE22
Packit Service 20376f
	SHA1_STORE_STATE(22)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(d, e, a, b, c, W, 22, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE23
Packit Service 20376f
	SHA1_STORE_STATE(23)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(c, d, e, a, b, W, 23, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE24
Packit Service 20376f
	SHA1_STORE_STATE(24)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(b, c, d, e, a, W, 24, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE25
Packit Service 20376f
	SHA1_STORE_STATE(25)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(a, b, c, d, e, W, 25, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE26
Packit Service 20376f
	SHA1_STORE_STATE(26)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(e, a, b, c, d, W, 26, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE27
Packit Service 20376f
	SHA1_STORE_STATE(27)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(d, e, a, b, c, W, 27, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE28
Packit Service 20376f
	SHA1_STORE_STATE(28)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(c, d, e, a, b, W, 28, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE29
Packit Service 20376f
	SHA1_STORE_STATE(29)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(b, c, d, e, a, W, 29, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE30
Packit Service 20376f
	SHA1_STORE_STATE(30)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(a, b, c, d, e, W, 30, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE31
Packit Service 20376f
	SHA1_STORE_STATE(31)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(e, a, b, c, d, W, 31, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE32
Packit Service 20376f
	SHA1_STORE_STATE(32)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(d, e, a, b, c, W, 32, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE33
Packit Service 20376f
	SHA1_STORE_STATE(33)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(c, d, e, a, b, W, 33, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE34
Packit Service 20376f
	SHA1_STORE_STATE(34)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(b, c, d, e, a, W, 34, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE35
Packit Service 20376f
	SHA1_STORE_STATE(35)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(a, b, c, d, e, W, 35, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE36
Packit Service 20376f
	SHA1_STORE_STATE(36)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(e, a, b, c, d, W, 36, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE37
Packit Service 20376f
	SHA1_STORE_STATE(37)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(d, e, a, b, c, W, 37, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE38
Packit Service 20376f
	SHA1_STORE_STATE(38)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(c, d, e, a, b, W, 38, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE39
Packit Service 20376f
	SHA1_STORE_STATE(39)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND2_STEP(b, c, d, e, a, W, 39, temp);
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE40
Packit Service 20376f
	SHA1_STORE_STATE(40)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(a, b, c, d, e, W, 40, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE41
Packit Service 20376f
	SHA1_STORE_STATE(41)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(e, a, b, c, d, W, 41, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE42
Packit Service 20376f
	SHA1_STORE_STATE(42)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(d, e, a, b, c, W, 42, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE43
Packit Service 20376f
	SHA1_STORE_STATE(43)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(c, d, e, a, b, W, 43, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE44
Packit Service 20376f
	SHA1_STORE_STATE(44)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(b, c, d, e, a, W, 44, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE45
Packit Service 20376f
	SHA1_STORE_STATE(45)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(a, b, c, d, e, W, 45, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE46
Packit Service 20376f
	SHA1_STORE_STATE(46)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(e, a, b, c, d, W, 46, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE47
Packit Service 20376f
	SHA1_STORE_STATE(47)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(d, e, a, b, c, W, 47, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE48
Packit Service 20376f
	SHA1_STORE_STATE(48)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(c, d, e, a, b, W, 48, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE49
Packit Service 20376f
	SHA1_STORE_STATE(49)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(b, c, d, e, a, W, 49, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE50
Packit Service 20376f
	SHA1_STORE_STATE(50)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(a, b, c, d, e, W, 50, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE51
Packit Service 20376f
	SHA1_STORE_STATE(51)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(e, a, b, c, d, W, 51, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE52
Packit Service 20376f
	SHA1_STORE_STATE(52)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(d, e, a, b, c, W, 52, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE53
Packit Service 20376f
	SHA1_STORE_STATE(53)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(c, d, e, a, b, W, 53, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE54
Packit Service 20376f
	SHA1_STORE_STATE(54)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(b, c, d, e, a, W, 54, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE55
Packit Service 20376f
	SHA1_STORE_STATE(55)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(a, b, c, d, e, W, 55, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE56
Packit Service 20376f
	SHA1_STORE_STATE(56)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(e, a, b, c, d, W, 56, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE57
Packit Service 20376f
	SHA1_STORE_STATE(57)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(d, e, a, b, c, W, 57, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE58
Packit Service 20376f
	SHA1_STORE_STATE(58)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(c, d, e, a, b, W, 58, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE59
Packit Service 20376f
	SHA1_STORE_STATE(59)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND3_STEP(b, c, d, e, a, W, 59, temp);
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE60
Packit Service 20376f
	SHA1_STORE_STATE(60)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(a, b, c, d, e, W, 60, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE61
Packit Service 20376f
	SHA1_STORE_STATE(61)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(e, a, b, c, d, W, 61, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE62
Packit Service 20376f
	SHA1_STORE_STATE(62)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(d, e, a, b, c, W, 62, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE63
Packit Service 20376f
	SHA1_STORE_STATE(63)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(c, d, e, a, b, W, 63, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE64
Packit Service 20376f
	SHA1_STORE_STATE(64)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(b, c, d, e, a, W, 64, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE65
Packit Service 20376f
	SHA1_STORE_STATE(65)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(a, b, c, d, e, W, 65, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE66
Packit Service 20376f
	SHA1_STORE_STATE(66)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(e, a, b, c, d, W, 66, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE67
Packit Service 20376f
	SHA1_STORE_STATE(67)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(d, e, a, b, c, W, 67, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE68
Packit Service 20376f
	SHA1_STORE_STATE(68)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(c, d, e, a, b, W, 68, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE69
Packit Service 20376f
	SHA1_STORE_STATE(69)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(b, c, d, e, a, W, 69, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE70
Packit Service 20376f
	SHA1_STORE_STATE(70)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(a, b, c, d, e, W, 70, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE71
Packit Service 20376f
	SHA1_STORE_STATE(71)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(e, a, b, c, d, W, 71, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE72
Packit Service 20376f
	SHA1_STORE_STATE(72)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(d, e, a, b, c, W, 72, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE73
Packit Service 20376f
	SHA1_STORE_STATE(73)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(c, d, e, a, b, W, 73, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE74
Packit Service 20376f
	SHA1_STORE_STATE(74)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(b, c, d, e, a, W, 74, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE75
Packit Service 20376f
	SHA1_STORE_STATE(75)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(a, b, c, d, e, W, 75, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE76
Packit Service 20376f
	SHA1_STORE_STATE(76)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(e, a, b, c, d, W, 76, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE77
Packit Service 20376f
	SHA1_STORE_STATE(77)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(d, e, a, b, c, W, 77, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE78
Packit Service 20376f
	SHA1_STORE_STATE(78)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(c, d, e, a, b, W, 78, temp);
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE79
Packit Service 20376f
	SHA1_STORE_STATE(79)
Packit Service 20376f
#endif
Packit Service 20376f
	SHA1COMPRESS_FULL_ROUND4_STEP(b, c, d, e, a, W, 79, temp);
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
	ihv[0] += a; ihv[1] += b; ihv[2] += c; ihv[3] += d; ihv[4] += e;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
#define SHA1_RECOMPRESS(t) \
Packit Service 20376f
static void sha1recompress_fast_ ## t (uint32_t ihvin[5], uint32_t ihvout[5], const uint32_t me2[80], const uint32_t state[5]) \
Packit Service 20376f
{ \
Packit Service 20376f
	uint32_t a = state[0], b = state[1], c = state[2], d = state[3], e = state[4]; \
Packit Service 20376f
	if (t > 79) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(b, c, d, e, a, me2, 79); \
Packit Service 20376f
	if (t > 78) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(c, d, e, a, b, me2, 78); \
Packit Service 20376f
	if (t > 77) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(d, e, a, b, c, me2, 77); \
Packit Service 20376f
	if (t > 76) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(e, a, b, c, d, me2, 76); \
Packit Service 20376f
	if (t > 75) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(a, b, c, d, e, me2, 75); \
Packit Service 20376f
	if (t > 74) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(b, c, d, e, a, me2, 74); \
Packit Service 20376f
	if (t > 73) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(c, d, e, a, b, me2, 73); \
Packit Service 20376f
	if (t > 72) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(d, e, a, b, c, me2, 72); \
Packit Service 20376f
	if (t > 71) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(e, a, b, c, d, me2, 71); \
Packit Service 20376f
	if (t > 70) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(a, b, c, d, e, me2, 70); \
Packit Service 20376f
	if (t > 69) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(b, c, d, e, a, me2, 69); \
Packit Service 20376f
	if (t > 68) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(c, d, e, a, b, me2, 68); \
Packit Service 20376f
	if (t > 67) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(d, e, a, b, c, me2, 67); \
Packit Service 20376f
	if (t > 66) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(e, a, b, c, d, me2, 66); \
Packit Service 20376f
	if (t > 65) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(a, b, c, d, e, me2, 65); \
Packit Service 20376f
	if (t > 64) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(b, c, d, e, a, me2, 64); \
Packit Service 20376f
	if (t > 63) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(c, d, e, a, b, me2, 63); \
Packit Service 20376f
	if (t > 62) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(d, e, a, b, c, me2, 62); \
Packit Service 20376f
	if (t > 61) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(e, a, b, c, d, me2, 61); \
Packit Service 20376f
	if (t > 60) HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(a, b, c, d, e, me2, 60); \
Packit Service 20376f
	if (t > 59) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(b, c, d, e, a, me2, 59); \
Packit Service 20376f
	if (t > 58) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(c, d, e, a, b, me2, 58); \
Packit Service 20376f
	if (t > 57) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(d, e, a, b, c, me2, 57); \
Packit Service 20376f
	if (t > 56) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(e, a, b, c, d, me2, 56); \
Packit Service 20376f
	if (t > 55) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(a, b, c, d, e, me2, 55); \
Packit Service 20376f
	if (t > 54) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(b, c, d, e, a, me2, 54); \
Packit Service 20376f
	if (t > 53) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(c, d, e, a, b, me2, 53); \
Packit Service 20376f
	if (t > 52) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(d, e, a, b, c, me2, 52); \
Packit Service 20376f
	if (t > 51) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(e, a, b, c, d, me2, 51); \
Packit Service 20376f
	if (t > 50) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(a, b, c, d, e, me2, 50); \
Packit Service 20376f
	if (t > 49) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(b, c, d, e, a, me2, 49); \
Packit Service 20376f
	if (t > 48) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(c, d, e, a, b, me2, 48); \
Packit Service 20376f
	if (t > 47) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(d, e, a, b, c, me2, 47); \
Packit Service 20376f
	if (t > 46) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(e, a, b, c, d, me2, 46); \
Packit Service 20376f
	if (t > 45) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(a, b, c, d, e, me2, 45); \
Packit Service 20376f
	if (t > 44) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(b, c, d, e, a, me2, 44); \
Packit Service 20376f
	if (t > 43) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(c, d, e, a, b, me2, 43); \
Packit Service 20376f
	if (t > 42) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(d, e, a, b, c, me2, 42); \
Packit Service 20376f
	if (t > 41) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(e, a, b, c, d, me2, 41); \
Packit Service 20376f
	if (t > 40) HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(a, b, c, d, e, me2, 40); \
Packit Service 20376f
	if (t > 39) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(b, c, d, e, a, me2, 39); \
Packit Service 20376f
	if (t > 38) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(c, d, e, a, b, me2, 38); \
Packit Service 20376f
	if (t > 37) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(d, e, a, b, c, me2, 37); \
Packit Service 20376f
	if (t > 36) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(e, a, b, c, d, me2, 36); \
Packit Service 20376f
	if (t > 35) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(a, b, c, d, e, me2, 35); \
Packit Service 20376f
	if (t > 34) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(b, c, d, e, a, me2, 34); \
Packit Service 20376f
	if (t > 33) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(c, d, e, a, b, me2, 33); \
Packit Service 20376f
	if (t > 32) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(d, e, a, b, c, me2, 32); \
Packit Service 20376f
	if (t > 31) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(e, a, b, c, d, me2, 31); \
Packit Service 20376f
	if (t > 30) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(a, b, c, d, e, me2, 30); \
Packit Service 20376f
	if (t > 29) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(b, c, d, e, a, me2, 29); \
Packit Service 20376f
	if (t > 28) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(c, d, e, a, b, me2, 28); \
Packit Service 20376f
	if (t > 27) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(d, e, a, b, c, me2, 27); \
Packit Service 20376f
	if (t > 26) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(e, a, b, c, d, me2, 26); \
Packit Service 20376f
	if (t > 25) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(a, b, c, d, e, me2, 25); \
Packit Service 20376f
	if (t > 24) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(b, c, d, e, a, me2, 24); \
Packit Service 20376f
	if (t > 23) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(c, d, e, a, b, me2, 23); \
Packit Service 20376f
	if (t > 22) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(d, e, a, b, c, me2, 22); \
Packit Service 20376f
	if (t > 21) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(e, a, b, c, d, me2, 21); \
Packit Service 20376f
	if (t > 20) HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(a, b, c, d, e, me2, 20); \
Packit Service 20376f
	if (t > 19) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(b, c, d, e, a, me2, 19); \
Packit Service 20376f
	if (t > 18) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(c, d, e, a, b, me2, 18); \
Packit Service 20376f
	if (t > 17) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(d, e, a, b, c, me2, 17); \
Packit Service 20376f
	if (t > 16) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(e, a, b, c, d, me2, 16); \
Packit Service 20376f
	if (t > 15) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(a, b, c, d, e, me2, 15); \
Packit Service 20376f
	if (t > 14) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(b, c, d, e, a, me2, 14); \
Packit Service 20376f
	if (t > 13) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(c, d, e, a, b, me2, 13); \
Packit Service 20376f
	if (t > 12) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(d, e, a, b, c, me2, 12); \
Packit Service 20376f
	if (t > 11) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(e, a, b, c, d, me2, 11); \
Packit Service 20376f
	if (t > 10) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(a, b, c, d, e, me2, 10); \
Packit Service 20376f
	if (t > 9) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(b, c, d, e, a, me2, 9); \
Packit Service 20376f
	if (t > 8) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(c, d, e, a, b, me2, 8); \
Packit Service 20376f
	if (t > 7) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(d, e, a, b, c, me2, 7); \
Packit Service 20376f
	if (t > 6) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(e, a, b, c, d, me2, 6); \
Packit Service 20376f
	if (t > 5) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(a, b, c, d, e, me2, 5); \
Packit Service 20376f
	if (t > 4) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(b, c, d, e, a, me2, 4); \
Packit Service 20376f
	if (t > 3) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(c, d, e, a, b, me2, 3); \
Packit Service 20376f
	if (t > 2) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(d, e, a, b, c, me2, 2); \
Packit Service 20376f
	if (t > 1) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(e, a, b, c, d, me2, 1); \
Packit Service 20376f
	if (t > 0) HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(a, b, c, d, e, me2, 0); \
Packit Service 20376f
	ihvin[0] = a; ihvin[1] = b; ihvin[2] = c; ihvin[3] = d; ihvin[4] = e; \
Packit Service 20376f
	a = state[0]; b = state[1]; c = state[2]; d = state[3]; e = state[4]; \
Packit Service 20376f
	if (t <= 0) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, me2, 0); \
Packit Service 20376f
	if (t <= 1) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, me2, 1); \
Packit Service 20376f
	if (t <= 2) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, me2, 2); \
Packit Service 20376f
	if (t <= 3) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, me2, 3); \
Packit Service 20376f
	if (t <= 4) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, me2, 4); \
Packit Service 20376f
	if (t <= 5) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, me2, 5); \
Packit Service 20376f
	if (t <= 6) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, me2, 6); \
Packit Service 20376f
	if (t <= 7) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, me2, 7); \
Packit Service 20376f
	if (t <= 8) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, me2, 8); \
Packit Service 20376f
	if (t <= 9) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, me2, 9); \
Packit Service 20376f
	if (t <= 10) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, me2, 10); \
Packit Service 20376f
	if (t <= 11) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, me2, 11); \
Packit Service 20376f
	if (t <= 12) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, me2, 12); \
Packit Service 20376f
	if (t <= 13) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, me2, 13); \
Packit Service 20376f
	if (t <= 14) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, me2, 14); \
Packit Service 20376f
	if (t <= 15) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, me2, 15); \
Packit Service 20376f
	if (t <= 16) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(e, a, b, c, d, me2, 16); \
Packit Service 20376f
	if (t <= 17) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(d, e, a, b, c, me2, 17); \
Packit Service 20376f
	if (t <= 18) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(c, d, e, a, b, me2, 18); \
Packit Service 20376f
	if (t <= 19) HASHCLASH_SHA1COMPRESS_ROUND1_STEP(b, c, d, e, a, me2, 19); \
Packit Service 20376f
	if (t <= 20) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, me2, 20); \
Packit Service 20376f
	if (t <= 21) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, me2, 21); \
Packit Service 20376f
	if (t <= 22) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, me2, 22); \
Packit Service 20376f
	if (t <= 23) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, me2, 23); \
Packit Service 20376f
	if (t <= 24) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, me2, 24); \
Packit Service 20376f
	if (t <= 25) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, me2, 25); \
Packit Service 20376f
	if (t <= 26) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, me2, 26); \
Packit Service 20376f
	if (t <= 27) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, me2, 27); \
Packit Service 20376f
	if (t <= 28) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, me2, 28); \
Packit Service 20376f
	if (t <= 29) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, me2, 29); \
Packit Service 20376f
	if (t <= 30) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, me2, 30); \
Packit Service 20376f
	if (t <= 31) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, me2, 31); \
Packit Service 20376f
	if (t <= 32) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, me2, 32); \
Packit Service 20376f
	if (t <= 33) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, me2, 33); \
Packit Service 20376f
	if (t <= 34) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, me2, 34); \
Packit Service 20376f
	if (t <= 35) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, me2, 35); \
Packit Service 20376f
	if (t <= 36) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(e, a, b, c, d, me2, 36); \
Packit Service 20376f
	if (t <= 37) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(d, e, a, b, c, me2, 37); \
Packit Service 20376f
	if (t <= 38) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(c, d, e, a, b, me2, 38); \
Packit Service 20376f
	if (t <= 39) HASHCLASH_SHA1COMPRESS_ROUND2_STEP(b, c, d, e, a, me2, 39); \
Packit Service 20376f
	if (t <= 40) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, me2, 40); \
Packit Service 20376f
	if (t <= 41) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, me2, 41); \
Packit Service 20376f
	if (t <= 42) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, me2, 42); \
Packit Service 20376f
	if (t <= 43) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, me2, 43); \
Packit Service 20376f
	if (t <= 44) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, me2, 44); \
Packit Service 20376f
	if (t <= 45) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, me2, 45); \
Packit Service 20376f
	if (t <= 46) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, me2, 46); \
Packit Service 20376f
	if (t <= 47) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, me2, 47); \
Packit Service 20376f
	if (t <= 48) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, me2, 48); \
Packit Service 20376f
	if (t <= 49) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, me2, 49); \
Packit Service 20376f
	if (t <= 50) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, me2, 50); \
Packit Service 20376f
	if (t <= 51) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, me2, 51); \
Packit Service 20376f
	if (t <= 52) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, me2, 52); \
Packit Service 20376f
	if (t <= 53) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, me2, 53); \
Packit Service 20376f
	if (t <= 54) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, me2, 54); \
Packit Service 20376f
	if (t <= 55) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, me2, 55); \
Packit Service 20376f
	if (t <= 56) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(e, a, b, c, d, me2, 56); \
Packit Service 20376f
	if (t <= 57) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(d, e, a, b, c, me2, 57); \
Packit Service 20376f
	if (t <= 58) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(c, d, e, a, b, me2, 58); \
Packit Service 20376f
	if (t <= 59) HASHCLASH_SHA1COMPRESS_ROUND3_STEP(b, c, d, e, a, me2, 59); \
Packit Service 20376f
	if (t <= 60) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, me2, 60); \
Packit Service 20376f
	if (t <= 61) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, me2, 61); \
Packit Service 20376f
	if (t <= 62) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, me2, 62); \
Packit Service 20376f
	if (t <= 63) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, me2, 63); \
Packit Service 20376f
	if (t <= 64) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, me2, 64); \
Packit Service 20376f
	if (t <= 65) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, me2, 65); \
Packit Service 20376f
	if (t <= 66) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, me2, 66); \
Packit Service 20376f
	if (t <= 67) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, me2, 67); \
Packit Service 20376f
	if (t <= 68) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, me2, 68); \
Packit Service 20376f
	if (t <= 69) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, me2, 69); \
Packit Service 20376f
	if (t <= 70) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, me2, 70); \
Packit Service 20376f
	if (t <= 71) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, me2, 71); \
Packit Service 20376f
	if (t <= 72) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, me2, 72); \
Packit Service 20376f
	if (t <= 73) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, me2, 73); \
Packit Service 20376f
	if (t <= 74) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, me2, 74); \
Packit Service 20376f
	if (t <= 75) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, me2, 75); \
Packit Service 20376f
	if (t <= 76) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(e, a, b, c, d, me2, 76); \
Packit Service 20376f
	if (t <= 77) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(d, e, a, b, c, me2, 77); \
Packit Service 20376f
	if (t <= 78) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(c, d, e, a, b, me2, 78); \
Packit Service 20376f
	if (t <= 79) HASHCLASH_SHA1COMPRESS_ROUND4_STEP(b, c, d, e, a, me2, 79); \
Packit Service 20376f
	ihvout[0] = ihvin[0] + a; ihvout[1] = ihvin[1] + b; ihvout[2] = ihvin[2] + c; ihvout[3] = ihvin[3] + d; ihvout[4] = ihvin[4] + e; \
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
#ifdef _MSC_VER
Packit Service 20376f
#pragma warning(push)
Packit Service 20376f
#pragma warning(disable: 4127)  /* Complier complains about the checks in the above macro being constant. */
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE0
Packit Service 20376f
SHA1_RECOMPRESS(0)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE1
Packit Service 20376f
SHA1_RECOMPRESS(1)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE2
Packit Service 20376f
SHA1_RECOMPRESS(2)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE3
Packit Service 20376f
SHA1_RECOMPRESS(3)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE4
Packit Service 20376f
SHA1_RECOMPRESS(4)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE5
Packit Service 20376f
SHA1_RECOMPRESS(5)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE6
Packit Service 20376f
SHA1_RECOMPRESS(6)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE7
Packit Service 20376f
SHA1_RECOMPRESS(7)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE8
Packit Service 20376f
SHA1_RECOMPRESS(8)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE9
Packit Service 20376f
SHA1_RECOMPRESS(9)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE10
Packit Service 20376f
SHA1_RECOMPRESS(10)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE11
Packit Service 20376f
SHA1_RECOMPRESS(11)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE12
Packit Service 20376f
SHA1_RECOMPRESS(12)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE13
Packit Service 20376f
SHA1_RECOMPRESS(13)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE14
Packit Service 20376f
SHA1_RECOMPRESS(14)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE15
Packit Service 20376f
SHA1_RECOMPRESS(15)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE16
Packit Service 20376f
SHA1_RECOMPRESS(16)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE17
Packit Service 20376f
SHA1_RECOMPRESS(17)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE18
Packit Service 20376f
SHA1_RECOMPRESS(18)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE19
Packit Service 20376f
SHA1_RECOMPRESS(19)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE20
Packit Service 20376f
SHA1_RECOMPRESS(20)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE21
Packit Service 20376f
SHA1_RECOMPRESS(21)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE22
Packit Service 20376f
SHA1_RECOMPRESS(22)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE23
Packit Service 20376f
SHA1_RECOMPRESS(23)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE24
Packit Service 20376f
SHA1_RECOMPRESS(24)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE25
Packit Service 20376f
SHA1_RECOMPRESS(25)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE26
Packit Service 20376f
SHA1_RECOMPRESS(26)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE27
Packit Service 20376f
SHA1_RECOMPRESS(27)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE28
Packit Service 20376f
SHA1_RECOMPRESS(28)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE29
Packit Service 20376f
SHA1_RECOMPRESS(29)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE30
Packit Service 20376f
SHA1_RECOMPRESS(30)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE31
Packit Service 20376f
SHA1_RECOMPRESS(31)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE32
Packit Service 20376f
SHA1_RECOMPRESS(32)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE33
Packit Service 20376f
SHA1_RECOMPRESS(33)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE34
Packit Service 20376f
SHA1_RECOMPRESS(34)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE35
Packit Service 20376f
SHA1_RECOMPRESS(35)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE36
Packit Service 20376f
SHA1_RECOMPRESS(36)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE37
Packit Service 20376f
SHA1_RECOMPRESS(37)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE38
Packit Service 20376f
SHA1_RECOMPRESS(38)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE39
Packit Service 20376f
SHA1_RECOMPRESS(39)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE40
Packit Service 20376f
SHA1_RECOMPRESS(40)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE41
Packit Service 20376f
SHA1_RECOMPRESS(41)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE42
Packit Service 20376f
SHA1_RECOMPRESS(42)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE43
Packit Service 20376f
SHA1_RECOMPRESS(43)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE44
Packit Service 20376f
SHA1_RECOMPRESS(44)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE45
Packit Service 20376f
SHA1_RECOMPRESS(45)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE46
Packit Service 20376f
SHA1_RECOMPRESS(46)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE47
Packit Service 20376f
SHA1_RECOMPRESS(47)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE48
Packit Service 20376f
SHA1_RECOMPRESS(48)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE49
Packit Service 20376f
SHA1_RECOMPRESS(49)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE50
Packit Service 20376f
SHA1_RECOMPRESS(50)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE51
Packit Service 20376f
SHA1_RECOMPRESS(51)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE52
Packit Service 20376f
SHA1_RECOMPRESS(52)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE53
Packit Service 20376f
SHA1_RECOMPRESS(53)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE54
Packit Service 20376f
SHA1_RECOMPRESS(54)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE55
Packit Service 20376f
SHA1_RECOMPRESS(55)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE56
Packit Service 20376f
SHA1_RECOMPRESS(56)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE57
Packit Service 20376f
SHA1_RECOMPRESS(57)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE58
Packit Service 20376f
SHA1_RECOMPRESS(58)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE59
Packit Service 20376f
SHA1_RECOMPRESS(59)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE60
Packit Service 20376f
SHA1_RECOMPRESS(60)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE61
Packit Service 20376f
SHA1_RECOMPRESS(61)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE62
Packit Service 20376f
SHA1_RECOMPRESS(62)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE63
Packit Service 20376f
SHA1_RECOMPRESS(63)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE64
Packit Service 20376f
SHA1_RECOMPRESS(64)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE65
Packit Service 20376f
SHA1_RECOMPRESS(65)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE66
Packit Service 20376f
SHA1_RECOMPRESS(66)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE67
Packit Service 20376f
SHA1_RECOMPRESS(67)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE68
Packit Service 20376f
SHA1_RECOMPRESS(68)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE69
Packit Service 20376f
SHA1_RECOMPRESS(69)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE70
Packit Service 20376f
SHA1_RECOMPRESS(70)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE71
Packit Service 20376f
SHA1_RECOMPRESS(71)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE72
Packit Service 20376f
SHA1_RECOMPRESS(72)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE73
Packit Service 20376f
SHA1_RECOMPRESS(73)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE74
Packit Service 20376f
SHA1_RECOMPRESS(74)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE75
Packit Service 20376f
SHA1_RECOMPRESS(75)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE76
Packit Service 20376f
SHA1_RECOMPRESS(76)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE77
Packit Service 20376f
SHA1_RECOMPRESS(77)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE78
Packit Service 20376f
SHA1_RECOMPRESS(78)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef DOSTORESTATE79
Packit Service 20376f
SHA1_RECOMPRESS(79)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
#ifdef _MSC_VER
Packit Service 20376f
#pragma warning(pop)
Packit Service 20376f
#endif
Packit Service 20376f
Packit Service 20376f
static void sha1_recompression_step(uint32_t step, uint32_t ihvin[5], uint32_t ihvout[5], const uint32_t me2[80], const uint32_t state[5])
Packit Service 20376f
{
Packit Service 20376f
	switch (step)
Packit Service 20376f
	{
Packit Service 20376f
#ifdef DOSTORESTATE0
Packit Service 20376f
	case 0:
Packit Service 20376f
		sha1recompress_fast_0(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE1
Packit Service 20376f
	case 1:
Packit Service 20376f
		sha1recompress_fast_1(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE2
Packit Service 20376f
	case 2:
Packit Service 20376f
		sha1recompress_fast_2(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE3
Packit Service 20376f
	case 3:
Packit Service 20376f
		sha1recompress_fast_3(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE4
Packit Service 20376f
	case 4:
Packit Service 20376f
		sha1recompress_fast_4(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE5
Packit Service 20376f
	case 5:
Packit Service 20376f
		sha1recompress_fast_5(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE6
Packit Service 20376f
	case 6:
Packit Service 20376f
		sha1recompress_fast_6(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE7
Packit Service 20376f
	case 7:
Packit Service 20376f
		sha1recompress_fast_7(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE8
Packit Service 20376f
	case 8:
Packit Service 20376f
		sha1recompress_fast_8(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE9
Packit Service 20376f
	case 9:
Packit Service 20376f
		sha1recompress_fast_9(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE10
Packit Service 20376f
	case 10:
Packit Service 20376f
		sha1recompress_fast_10(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE11
Packit Service 20376f
	case 11:
Packit Service 20376f
		sha1recompress_fast_11(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE12
Packit Service 20376f
	case 12:
Packit Service 20376f
		sha1recompress_fast_12(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE13
Packit Service 20376f
	case 13:
Packit Service 20376f
		sha1recompress_fast_13(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE14
Packit Service 20376f
	case 14:
Packit Service 20376f
		sha1recompress_fast_14(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE15
Packit Service 20376f
	case 15:
Packit Service 20376f
		sha1recompress_fast_15(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE16
Packit Service 20376f
	case 16:
Packit Service 20376f
		sha1recompress_fast_16(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE17
Packit Service 20376f
	case 17:
Packit Service 20376f
		sha1recompress_fast_17(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE18
Packit Service 20376f
	case 18:
Packit Service 20376f
		sha1recompress_fast_18(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE19
Packit Service 20376f
	case 19:
Packit Service 20376f
		sha1recompress_fast_19(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE20
Packit Service 20376f
	case 20:
Packit Service 20376f
		sha1recompress_fast_20(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE21
Packit Service 20376f
	case 21:
Packit Service 20376f
		sha1recompress_fast_21(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE22
Packit Service 20376f
	case 22:
Packit Service 20376f
		sha1recompress_fast_22(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE23
Packit Service 20376f
	case 23:
Packit Service 20376f
		sha1recompress_fast_23(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE24
Packit Service 20376f
	case 24:
Packit Service 20376f
		sha1recompress_fast_24(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE25
Packit Service 20376f
	case 25:
Packit Service 20376f
		sha1recompress_fast_25(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE26
Packit Service 20376f
	case 26:
Packit Service 20376f
		sha1recompress_fast_26(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE27
Packit Service 20376f
	case 27:
Packit Service 20376f
		sha1recompress_fast_27(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE28
Packit Service 20376f
	case 28:
Packit Service 20376f
		sha1recompress_fast_28(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE29
Packit Service 20376f
	case 29:
Packit Service 20376f
		sha1recompress_fast_29(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE30
Packit Service 20376f
	case 30:
Packit Service 20376f
		sha1recompress_fast_30(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE31
Packit Service 20376f
	case 31:
Packit Service 20376f
		sha1recompress_fast_31(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE32
Packit Service 20376f
	case 32:
Packit Service 20376f
		sha1recompress_fast_32(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE33
Packit Service 20376f
	case 33:
Packit Service 20376f
		sha1recompress_fast_33(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE34
Packit Service 20376f
	case 34:
Packit Service 20376f
		sha1recompress_fast_34(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE35
Packit Service 20376f
	case 35:
Packit Service 20376f
		sha1recompress_fast_35(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE36
Packit Service 20376f
	case 36:
Packit Service 20376f
		sha1recompress_fast_36(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE37
Packit Service 20376f
	case 37:
Packit Service 20376f
		sha1recompress_fast_37(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE38
Packit Service 20376f
	case 38:
Packit Service 20376f
		sha1recompress_fast_38(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE39
Packit Service 20376f
	case 39:
Packit Service 20376f
		sha1recompress_fast_39(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE40
Packit Service 20376f
	case 40:
Packit Service 20376f
		sha1recompress_fast_40(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE41
Packit Service 20376f
	case 41:
Packit Service 20376f
		sha1recompress_fast_41(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE42
Packit Service 20376f
	case 42:
Packit Service 20376f
		sha1recompress_fast_42(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE43
Packit Service 20376f
	case 43:
Packit Service 20376f
		sha1recompress_fast_43(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE44
Packit Service 20376f
	case 44:
Packit Service 20376f
		sha1recompress_fast_44(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE45
Packit Service 20376f
	case 45:
Packit Service 20376f
		sha1recompress_fast_45(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE46
Packit Service 20376f
	case 46:
Packit Service 20376f
		sha1recompress_fast_46(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE47
Packit Service 20376f
	case 47:
Packit Service 20376f
		sha1recompress_fast_47(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE48
Packit Service 20376f
	case 48:
Packit Service 20376f
		sha1recompress_fast_48(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE49
Packit Service 20376f
	case 49:
Packit Service 20376f
		sha1recompress_fast_49(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE50
Packit Service 20376f
	case 50:
Packit Service 20376f
		sha1recompress_fast_50(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE51
Packit Service 20376f
	case 51:
Packit Service 20376f
		sha1recompress_fast_51(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE52
Packit Service 20376f
	case 52:
Packit Service 20376f
		sha1recompress_fast_52(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE53
Packit Service 20376f
	case 53:
Packit Service 20376f
		sha1recompress_fast_53(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE54
Packit Service 20376f
	case 54:
Packit Service 20376f
		sha1recompress_fast_54(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE55
Packit Service 20376f
	case 55:
Packit Service 20376f
		sha1recompress_fast_55(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE56
Packit Service 20376f
	case 56:
Packit Service 20376f
		sha1recompress_fast_56(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE57
Packit Service 20376f
	case 57:
Packit Service 20376f
		sha1recompress_fast_57(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE58
Packit Service 20376f
	case 58:
Packit Service 20376f
		sha1recompress_fast_58(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE59
Packit Service 20376f
	case 59:
Packit Service 20376f
		sha1recompress_fast_59(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE60
Packit Service 20376f
	case 60:
Packit Service 20376f
		sha1recompress_fast_60(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE61
Packit Service 20376f
	case 61:
Packit Service 20376f
		sha1recompress_fast_61(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE62
Packit Service 20376f
	case 62:
Packit Service 20376f
		sha1recompress_fast_62(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE63
Packit Service 20376f
	case 63:
Packit Service 20376f
		sha1recompress_fast_63(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE64
Packit Service 20376f
	case 64:
Packit Service 20376f
		sha1recompress_fast_64(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE65
Packit Service 20376f
	case 65:
Packit Service 20376f
		sha1recompress_fast_65(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE66
Packit Service 20376f
	case 66:
Packit Service 20376f
		sha1recompress_fast_66(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE67
Packit Service 20376f
	case 67:
Packit Service 20376f
		sha1recompress_fast_67(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE68
Packit Service 20376f
	case 68:
Packit Service 20376f
		sha1recompress_fast_68(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE69
Packit Service 20376f
	case 69:
Packit Service 20376f
		sha1recompress_fast_69(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE70
Packit Service 20376f
	case 70:
Packit Service 20376f
		sha1recompress_fast_70(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE71
Packit Service 20376f
	case 71:
Packit Service 20376f
		sha1recompress_fast_71(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE72
Packit Service 20376f
	case 72:
Packit Service 20376f
		sha1recompress_fast_72(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE73
Packit Service 20376f
	case 73:
Packit Service 20376f
		sha1recompress_fast_73(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE74
Packit Service 20376f
	case 74:
Packit Service 20376f
		sha1recompress_fast_74(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE75
Packit Service 20376f
	case 75:
Packit Service 20376f
		sha1recompress_fast_75(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE76
Packit Service 20376f
	case 76:
Packit Service 20376f
		sha1recompress_fast_76(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE77
Packit Service 20376f
	case 77:
Packit Service 20376f
		sha1recompress_fast_77(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE78
Packit Service 20376f
	case 78:
Packit Service 20376f
		sha1recompress_fast_78(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
#ifdef DOSTORESTATE79
Packit Service 20376f
	case 79:
Packit Service 20376f
		sha1recompress_fast_79(ihvin, ihvout, me2, state);
Packit Service 20376f
		break;
Packit Service 20376f
#endif
Packit Service 20376f
	default:
Packit Service 20376f
		abort();
Packit Service 20376f
	}
Packit Service 20376f
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
static void sha1_process(SHA1_CTX* ctx, const uint32_t block[16])
Packit Service 20376f
{
Packit Service 20376f
	unsigned i, j;
Packit Service 20376f
	uint32_t ubc_dv_mask[DVMASKSIZE] = { 0xFFFFFFFF };
Packit Service 20376f
	uint32_t ihvtmp[5];
Packit Service 20376f
Packit Service 20376f
	ctx->ihv1[0] = ctx->ihv[0];
Packit Service 20376f
	ctx->ihv1[1] = ctx->ihv[1];
Packit Service 20376f
	ctx->ihv1[2] = ctx->ihv[2];
Packit Service 20376f
	ctx->ihv1[3] = ctx->ihv[3];
Packit Service 20376f
	ctx->ihv1[4] = ctx->ihv[4];
Packit Service 20376f
Packit Service 20376f
	sha1_compression_states(ctx->ihv, block, ctx->m1, ctx->states);
Packit Service 20376f
Packit Service 20376f
	if (ctx->detect_coll)
Packit Service 20376f
	{
Packit Service 20376f
		if (ctx->ubc_check)
Packit Service 20376f
		{
Packit Service 20376f
			ubc_check(ctx->m1, ubc_dv_mask);
Packit Service 20376f
		}
Packit Service 20376f
Packit Service 20376f
		if (ubc_dv_mask[0] != 0)
Packit Service 20376f
		{
Packit Service 20376f
			for (i = 0; sha1_dvs[i].dvType != 0; ++i)
Packit Service 20376f
			{
Packit Service 20376f
				if (ubc_dv_mask[0] & ((uint32_t)(1) << sha1_dvs[i].maskb))
Packit Service 20376f
				{
Packit Service 20376f
					for (j = 0; j < 80; ++j)
Packit Service 20376f
						ctx->m2[j] = ctx->m1[j] ^ sha1_dvs[i].dm[j];
Packit Service 20376f
Packit Service 20376f
					sha1_recompression_step(sha1_dvs[i].testt, ctx->ihv2, ihvtmp, ctx->m2, ctx->states[sha1_dvs[i].testt]);
Packit Service 20376f
Packit Service 20376f
					/* to verify SHA-1 collision detection code with collisions for reduced-step SHA-1 */
Packit Service 20376f
					if ((0 == ((ihvtmp[0] ^ ctx->ihv[0]) | (ihvtmp[1] ^ ctx->ihv[1]) | (ihvtmp[2] ^ ctx->ihv[2]) | (ihvtmp[3] ^ ctx->ihv[3]) | (ihvtmp[4] ^ ctx->ihv[4])))
Packit Service 20376f
						|| (ctx->reduced_round_coll && 0==((ctx->ihv1[0] ^ ctx->ihv2[0]) | (ctx->ihv1[1] ^ ctx->ihv2[1]) | (ctx->ihv1[2] ^ ctx->ihv2[2]) | (ctx->ihv1[3] ^ ctx->ihv2[3]) | (ctx->ihv1[4] ^ ctx->ihv2[4]))))
Packit Service 20376f
					{
Packit Service 20376f
						ctx->found_collision = 1;
Packit Service 20376f
Packit Service 20376f
						if (ctx->safe_hash)
Packit Service 20376f
						{
Packit Service 20376f
							sha1_compression_W(ctx->ihv, ctx->m1);
Packit Service 20376f
							sha1_compression_W(ctx->ihv, ctx->m1);
Packit Service 20376f
						}
Packit Service 20376f
Packit Service 20376f
						break;
Packit Service 20376f
					}
Packit Service 20376f
				}
Packit Service 20376f
			}
Packit Service 20376f
		}
Packit Service 20376f
	}
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void SHA1DCInit(SHA1_CTX* ctx)
Packit Service 20376f
{
Packit Service 20376f
	ctx->total = 0;
Packit Service 20376f
	ctx->ihv[0] = 0x67452301;
Packit Service 20376f
	ctx->ihv[1] = 0xEFCDAB89;
Packit Service 20376f
	ctx->ihv[2] = 0x98BADCFE;
Packit Service 20376f
	ctx->ihv[3] = 0x10325476;
Packit Service 20376f
	ctx->ihv[4] = 0xC3D2E1F0;
Packit Service 20376f
	ctx->found_collision = 0;
Packit Service 20376f
	ctx->safe_hash = SHA1DC_INIT_SAFE_HASH_DEFAULT;
Packit Service 20376f
	ctx->ubc_check = 1;
Packit Service 20376f
	ctx->detect_coll = 1;
Packit Service 20376f
	ctx->reduced_round_coll = 0;
Packit Service 20376f
	ctx->callback = NULL;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void SHA1DCSetSafeHash(SHA1_CTX* ctx, int safehash)
Packit Service 20376f
{
Packit Service 20376f
	if (safehash)
Packit Service 20376f
		ctx->safe_hash = 1;
Packit Service 20376f
	else
Packit Service 20376f
		ctx->safe_hash = 0;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
Packit Service 20376f
void SHA1DCSetUseUBC(SHA1_CTX* ctx, int ubc_check)
Packit Service 20376f
{
Packit Service 20376f
	if (ubc_check)
Packit Service 20376f
		ctx->ubc_check = 1;
Packit Service 20376f
	else
Packit Service 20376f
		ctx->ubc_check = 0;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void SHA1DCSetUseDetectColl(SHA1_CTX* ctx, int detect_coll)
Packit Service 20376f
{
Packit Service 20376f
	if (detect_coll)
Packit Service 20376f
		ctx->detect_coll = 1;
Packit Service 20376f
	else
Packit Service 20376f
		ctx->detect_coll = 0;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void SHA1DCSetDetectReducedRoundCollision(SHA1_CTX* ctx, int reduced_round_coll)
Packit Service 20376f
{
Packit Service 20376f
	if (reduced_round_coll)
Packit Service 20376f
		ctx->reduced_round_coll = 1;
Packit Service 20376f
	else
Packit Service 20376f
		ctx->reduced_round_coll = 0;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void SHA1DCSetCallback(SHA1_CTX* ctx, collision_block_callback callback)
Packit Service 20376f
{
Packit Service 20376f
	ctx->callback = callback;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void SHA1DCUpdate(SHA1_CTX* ctx, const char* buf, size_t len)
Packit Service 20376f
{
Packit Service 20376f
	unsigned left, fill;
Packit Service 20376f
Packit Service 20376f
	if (len == 0)
Packit Service 20376f
		return;
Packit Service 20376f
Packit Service 20376f
	left = ctx->total & 63;
Packit Service 20376f
	fill = 64 - left;
Packit Service 20376f
Packit Service 20376f
	if (left && len >= fill)
Packit Service 20376f
	{
Packit Service 20376f
		ctx->total += fill;
Packit Service 20376f
		memcpy(ctx->buffer + left, buf, fill);
Packit Service 20376f
		sha1_process(ctx, (uint32_t*)(ctx->buffer));
Packit Service 20376f
		buf += fill;
Packit Service 20376f
		len -= fill;
Packit Service 20376f
		left = 0;
Packit Service 20376f
	}
Packit Service 20376f
	while (len >= 64)
Packit Service 20376f
	{
Packit Service 20376f
		ctx->total += 64;
Packit Service 20376f
Packit Service 20376f
#if defined(SHA1DC_ALLOW_UNALIGNED_ACCESS)
Packit Service 20376f
		sha1_process(ctx, (uint32_t*)(buf));
Packit Service 20376f
#else
Packit Service 20376f
		memcpy(ctx->buffer, buf, 64);
Packit Service 20376f
		sha1_process(ctx, (uint32_t*)(ctx->buffer));
Packit Service 20376f
#endif /* defined(SHA1DC_ALLOW_UNALIGNED_ACCESS) */
Packit Service 20376f
		buf += 64;
Packit Service 20376f
		len -= 64;
Packit Service 20376f
	}
Packit Service 20376f
	if (len > 0)
Packit Service 20376f
	{
Packit Service 20376f
		ctx->total += len;
Packit Service 20376f
		memcpy(ctx->buffer + left, buf, len);
Packit Service 20376f
	}
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
static const unsigned char sha1_padding[64] =
Packit Service 20376f
{
Packit Service 20376f
	0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Packit Service 20376f
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Packit Service 20376f
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Packit Service 20376f
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Packit Service 20376f
};
Packit Service 20376f
Packit Service 20376f
int SHA1DCFinal(unsigned char output[20], SHA1_CTX *ctx)
Packit Service 20376f
{
Packit Service 20376f
	uint32_t last = ctx->total & 63;
Packit Service 20376f
	uint32_t padn = (last < 56) ? (56 - last) : (120 - last);
Packit Service 20376f
	uint64_t total;
Packit Service 20376f
	SHA1DCUpdate(ctx, (const char*)(sha1_padding), padn);
Packit Service 20376f
Packit Service 20376f
	total = ctx->total - padn;
Packit Service 20376f
	total <<= 3;
Packit Service 20376f
	ctx->buffer[56] = (unsigned char)(total >> 56);
Packit Service 20376f
	ctx->buffer[57] = (unsigned char)(total >> 48);
Packit Service 20376f
	ctx->buffer[58] = (unsigned char)(total >> 40);
Packit Service 20376f
	ctx->buffer[59] = (unsigned char)(total >> 32);
Packit Service 20376f
	ctx->buffer[60] = (unsigned char)(total >> 24);
Packit Service 20376f
	ctx->buffer[61] = (unsigned char)(total >> 16);
Packit Service 20376f
	ctx->buffer[62] = (unsigned char)(total >> 8);
Packit Service 20376f
	ctx->buffer[63] = (unsigned char)(total);
Packit Service 20376f
	sha1_process(ctx, (uint32_t*)(ctx->buffer));
Packit Service 20376f
	output[0] = (unsigned char)(ctx->ihv[0] >> 24);
Packit Service 20376f
	output[1] = (unsigned char)(ctx->ihv[0] >> 16);
Packit Service 20376f
	output[2] = (unsigned char)(ctx->ihv[0] >> 8);
Packit Service 20376f
	output[3] = (unsigned char)(ctx->ihv[0]);
Packit Service 20376f
	output[4] = (unsigned char)(ctx->ihv[1] >> 24);
Packit Service 20376f
	output[5] = (unsigned char)(ctx->ihv[1] >> 16);
Packit Service 20376f
	output[6] = (unsigned char)(ctx->ihv[1] >> 8);
Packit Service 20376f
	output[7] = (unsigned char)(ctx->ihv[1]);
Packit Service 20376f
	output[8] = (unsigned char)(ctx->ihv[2] >> 24);
Packit Service 20376f
	output[9] = (unsigned char)(ctx->ihv[2] >> 16);
Packit Service 20376f
	output[10] = (unsigned char)(ctx->ihv[2] >> 8);
Packit Service 20376f
	output[11] = (unsigned char)(ctx->ihv[2]);
Packit Service 20376f
	output[12] = (unsigned char)(ctx->ihv[3] >> 24);
Packit Service 20376f
	output[13] = (unsigned char)(ctx->ihv[3] >> 16);
Packit Service 20376f
	output[14] = (unsigned char)(ctx->ihv[3] >> 8);
Packit Service 20376f
	output[15] = (unsigned char)(ctx->ihv[3]);
Packit Service 20376f
	output[16] = (unsigned char)(ctx->ihv[4] >> 24);
Packit Service 20376f
	output[17] = (unsigned char)(ctx->ihv[4] >> 16);
Packit Service 20376f
	output[18] = (unsigned char)(ctx->ihv[4] >> 8);
Packit Service 20376f
	output[19] = (unsigned char)(ctx->ihv[4]);
Packit Service 20376f
	return ctx->found_collision;
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
#ifdef SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C
Packit Service 20376f
#include SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C
Packit Service 20376f
#endif