Mercurial > dropbear
diff sha1.c @ 15:6362d3854bb4 libtomcrypt-orig
0.96 release of LibTomCrypt
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Tue, 15 Jun 2004 14:07:21 +0000 |
parents | 7faae8f46238 |
children | 5d99163f7e32 |
line wrap: on
line diff
--- a/sha1.c Mon May 31 18:25:41 2004 +0000 +++ b/sha1.c Tue Jun 15 14:07:21 2004 +0000 @@ -20,6 +20,12 @@ 2, 20, 64, + + /* DER identifier */ + { 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, + 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04, 0x14 }, + 15, + &sha1_init, &sha1_process, &sha1_done, @@ -38,6 +44,9 @@ #endif { ulong32 a,b,c,d,e,W[80],i; +#ifdef SMALL_CODE + ulong32 t; +#endif /* copy the state into 512-bits into W[0..15] */ for (i = 0; i < 16; i++) { @@ -63,6 +72,26 @@ #define FF2(a,b,c,d,e,i) e = (ROL(a, 5) + F2(b,c,d) + e + W[i] + 0x8f1bbcdcUL); b = ROL(b, 30); #define FF3(a,b,c,d,e,i) e = (ROL(a, 5) + F3(b,c,d) + e + W[i] + 0xca62c1d6UL); b = ROL(b, 30); +#ifdef SMALL_CODE + + for (i = 0; i < 20; ) { + FF0(a,b,c,d,e,i++); t = e; e = d; d = c; c = b; b = a; a = t; + } + + for (; i < 40; ) { + FF1(a,b,c,d,e,i++); t = e; e = d; d = c; c = b; b = a; a = t; + } + + for (; i < 60; ) { + FF2(a,b,c,d,e,i++); t = e; e = d; d = c; c = b; b = a; a = t; + } + + for (; i < 80; ) { + FF3(a,b,c,d,e,i++); t = e; e = d; d = c; c = b; b = a; a = t; + } + +#else + for (i = 0; i < 20; ) { FF0(a,b,c,d,e,i++); FF0(e,a,b,c,d,i++); @@ -97,6 +126,7 @@ FF3(c,d,e,a,b,i++); FF3(b,c,d,e,a,i++); } +#endif #undef FF0 #undef FF1