[kaffe] CVS kaffe (dalibor): Removed sha-1 files from kaffe/kaffevm

Kaffe CVS cvs-commits at kaffe.org
Mon May 24 11:42:02 PDT 2004


PatchSet 4779 
Date: 2004/05/24 18:00:43
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Removed sha-1 files from kaffe/kaffevm

Members: 
	kaffe/kaffevm/sha-1.c:1.2->1.3(DEAD) 
	kaffe/kaffevm/sha-1.h:1.2->1.3(DEAD) 

===================================================================
Checking out kaffe/kaffe/kaffevm/sha-1.c
RCS:  /home/cvs/kaffe/kaffe/kaffe/kaffevm/Attic/sha-1.c,v
VERS: 1.2
***************
--- kaffe/kaffe/kaffevm/sha-1.c	Mon May 24 18:25:00 2004
+++ /dev/null	Sun Aug  4 19:57:58 2002
@@ -1,417 +0,0 @@
-
-/*
- * Copyright (c) 1995-1999 Eric Young
- * All rights reserved.
- * 
- * Subject to the following obligations and disclaimer of warranty, use and
- * redistribution of this software, in source or object code forms, with or
- * without modifications are expressly permitted by Eric Young; provided,
- * however, that:
- * 1. Any and all reproductions of the source or object code must include the
- *    copyright notice above and the following disclaimer of warranties; and
- * 2. No rights are granted, in any manner or form, to use Eric Young
- *    trademarks, including the mark "Eric Young" on advertising,
- *    endorsements, or otherwise except as such appears in the above
- *    copyright notice or in the software.
- * 
- * THIS SOFTWARE IS BEING PROVIDED BY ERIC YOUNG "AS IS", AND TO THE
- * MAXIMUM EXTENT PERMITTED BY LAW, ERIC YOUNG MAKES NO REPRESENTATIONS
- * OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE,
- * INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
- * ERIC YOUNG DOES NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS
- * REGARDING THE USE OF, OR THE RESULTS OF THE USE OF THIS SOFTWARE
- * IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE.
- * IN NO EVENT SHALL ERIC YOUNG BE LIABLE FOR ANY DAMAGES RESULTING
- * FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING WITHOUT
- * LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED
- * AND UNDER ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ERIC YOUNG IS
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "config-std.h"
-#include "config-mem.h"
-#include "sha-1.h"
-
-#if !defined(BIG_ENDIAN)
-#define	BIG_ENDIAN	1
-#endif
-#if !defined(LITTLE_ENDIAN)
-#define	LITTLE_ENDIAN	2
-#endif
-#if !defined(BYTE_ORDER)
-#if defined(WORDS_BIGENDIAN)
-#define	BYTE_ORDER	BIG_ENDIAN
-#else
-#define	BYTE_ORDER	LITTLE_ENDIAN
-#endif
-#endif
-
-/* Implemented from SHA-1 document - The Secure Hash Algorithm
- */
-
-#define INIT_DATA_h0 (unsigned long)0x67452301L
-#define INIT_DATA_h1 (unsigned long)0xefcdab89L
-#define INIT_DATA_h2 (unsigned long)0x98badcfeL
-#define INIT_DATA_h3 (unsigned long)0x10325476L
-#define INIT_DATA_h4 (unsigned long)0xc3d2e1f0L
-
-#define K_00_19	0x5a827999L
-#define K_20_39 0x6ed9eba1L
-#define K_40_59 0x8f1bbcdcL
-#define K_60_79 0xca62c1d6L
-
-static void sha1_block(SHA1_CTX *c, register unsigned long *p);
-
-void SHA1Init(c)
-SHA1_CTX *c;
-	{
-	c->h0=INIT_DATA_h0;
-	c->h1=INIT_DATA_h1;
-	c->h2=INIT_DATA_h2;
-	c->h3=INIT_DATA_h3;
-	c->h4=INIT_DATA_h4;
-	c->Nl=0;
-	c->Nh=0;
-	c->num=0;
-	}
-
-void SHA1Update(c, data, len)
-SHA1_CTX *c;
-register const unsigned char *data;
-unsigned long len;
-	{
-	register ULONG *p;
-	int ew,ec,sw,sc;
-	ULONG l;
-
-	if (len == 0) return;
-
-	l=(c->Nl+(len<<3))&0xffffffff;
-	if (l < c->Nl) /* overflow */
-		c->Nh++;
-	c->Nh+=(len>>29);
-	c->Nl=l;
-
-	if (c->num != 0)
-		{
-		p=c->data;
-		sw=c->num>>2;
-		sc=c->num&0x03;
-
-		if ((c->num+len) >= SHA_CBLOCK)
-			{
-			l= p[sw];
-			p_c2nl(data,l,sc);
-			p[sw++]=l;
-			for (; sw<SHA_LBLOCK; sw++)
-				{
-				c2nl(data,l);
-				p[sw]=l;
-				}
-			len-=(SHA_CBLOCK-c->num);
-
-			sha1_block(c,p);
-			c->num=0;
-			/* drop through and do the rest */
-			}
-		else
-			{
-
-			c->num+=(int)len;
-			if ((sc+len) < 4) /* ugly, add char's to a word */
-				{
-				l= p[sw];
-				p_c2nl_p(data,l,sc,len);
-				p[sw]=l;
-				}
-			else
-				{
-				ew=(c->num>>2);
-				ec=(c->num&0x03);
-				l= p[sw];
-				p_c2nl(data,l,sc);
-				p[sw++]=l;
-				for (; sw < ew; sw++)
-					{ c2nl(data,l); p[sw]=l; }
-				if (ec)
-					{
-					c2nl_p(data,l,ec);
-					p[sw]=l;
-					}
-				}
-			return;
-			}
-		}
-	/* we now can process the input data in blocks of SHA_CBLOCK
-	 * chars and save the leftovers to c->data. */
-	p=c->data;
-	while (len >= SHA_CBLOCK)
-		{
-#if defined(BYTE_ORDER) && (defined(BIG_ENDIAN) || defined(LITTLE_ENDIAN))
-		memcpy(p,data,SHA_CBLOCK);
-		data+=SHA_CBLOCK;
-#if BYTE_ORDER == LITTLE_ENDIAN
-		for (sw=(SHA_LBLOCK/4); sw; sw--)
-			{
-			Endian_Reverse32(p[0]);
-			Endian_Reverse32(p[1]);
-			Endian_Reverse32(p[2]);
-			Endian_Reverse32(p[3]);
-			p+=4;
-			}
-#endif
-#else
-		for (sw=(SHA_BLOCK/4); sw; sw--)
-			{
-			c2nl(data,l); *(p++)=l;
-			c2nl(data,l); *(p++)=l;
-			c2nl(data,l); *(p++)=l;
-			c2nl(data,l); *(p++)=l;
-			}
-#endif
-		p=c->data;
-		sha1_block(c,p);
-		len-=SHA_CBLOCK;
-		}
-	ec=(int)len;
-	c->num=ec;
-	ew=(ec>>2);
-	ec&=0x03;
-
-	for (sw=0; sw < ew; sw++)
-		{ c2nl(data,l); p[sw]=l; }
-	c2nl_p(data,l,ec);
-	p[sw]=l;
-	}
-
-static void sha1_block(c, X)
-SHA1_CTX *c;
-register unsigned long *X;
-	{
-	register ULONG A,B,C,D,E,T;
-
-	A=c->h0;
-	B=c->h1;
-	C=c->h2;
-	D=c->h3;
-	E=c->h4;
-
-	BODY_00_15( 0,A,B,C,D,E,T);
-	BODY_00_15( 1,T,A,B,C,D,E);
-	BODY_00_15( 2,E,T,A,B,C,D);
-	BODY_00_15( 3,D,E,T,A,B,C);
-	BODY_00_15( 4,C,D,E,T,A,B);
-	BODY_00_15( 5,B,C,D,E,T,A);
-	BODY_00_15( 6,A,B,C,D,E,T);
-	BODY_00_15( 7,T,A,B,C,D,E);
-	BODY_00_15( 8,E,T,A,B,C,D);
-	BODY_00_15( 9,D,E,T,A,B,C);
-	BODY_00_15(10,C,D,E,T,A,B);
-	BODY_00_15(11,B,C,D,E,T,A);
-	BODY_00_15(12,A,B,C,D,E,T);
-	BODY_00_15(13,T,A,B,C,D,E);
-	BODY_00_15(14,E,T,A,B,C,D);
-	BODY_00_15(15,D,E,T,A,B,C);
-	BODY_16_19(16,C,D,E,T,A,B);
-	BODY_16_19(17,B,C,D,E,T,A);
-	BODY_16_19(18,A,B,C,D,E,T);
-	BODY_16_19(19,T,A,B,C,D,E);
-
-	BODY_20_39(20,E,T,A,B,C,D);
-	BODY_20_39(21,D,E,T,A,B,C);
-	BODY_20_39(22,C,D,E,T,A,B);
-	BODY_20_39(23,B,C,D,E,T,A);
-	BODY_20_39(24,A,B,C,D,E,T);
-	BODY_20_39(25,T,A,B,C,D,E);
-	BODY_20_39(26,E,T,A,B,C,D);
-	BODY_20_39(27,D,E,T,A,B,C);
-	BODY_20_39(28,C,D,E,T,A,B);
-	BODY_20_39(29,B,C,D,E,T,A);
-	BODY_20_39(30,A,B,C,D,E,T);
-	BODY_20_39(31,T,A,B,C,D,E);
-	BODY_20_39(32,E,T,A,B,C,D);
-	BODY_20_39(33,D,E,T,A,B,C);
-	BODY_20_39(34,C,D,E,T,A,B);
-	BODY_20_39(35,B,C,D,E,T,A);
-	BODY_20_39(36,A,B,C,D,E,T);
-	BODY_20_39(37,T,A,B,C,D,E);
-	BODY_20_39(38,E,T,A,B,C,D);
-	BODY_20_39(39,D,E,T,A,B,C);
-
-	BODY_40_59(40,C,D,E,T,A,B);
-	BODY_40_59(41,B,C,D,E,T,A);
-	BODY_40_59(42,A,B,C,D,E,T);
-	BODY_40_59(43,T,A,B,C,D,E);
-	BODY_40_59(44,E,T,A,B,C,D);
-	BODY_40_59(45,D,E,T,A,B,C);
-	BODY_40_59(46,C,D,E,T,A,B);
-	BODY_40_59(47,B,C,D,E,T,A);
-	BODY_40_59(48,A,B,C,D,E,T);
-	BODY_40_59(49,T,A,B,C,D,E);
-	BODY_40_59(50,E,T,A,B,C,D);
-	BODY_40_59(51,D,E,T,A,B,C);
-	BODY_40_59(52,C,D,E,T,A,B);
-	BODY_40_59(53,B,C,D,E,T,A);
-	BODY_40_59(54,A,B,C,D,E,T);
-	BODY_40_59(55,T,A,B,C,D,E);
-	BODY_40_59(56,E,T,A,B,C,D);
-	BODY_40_59(57,D,E,T,A,B,C);
-	BODY_40_59(58,C,D,E,T,A,B);
-	BODY_40_59(59,B,C,D,E,T,A);
-
-	BODY_60_79(60,A,B,C,D,E,T);
-	BODY_60_79(61,T,A,B,C,D,E);
-	BODY_60_79(62,E,T,A,B,C,D);
-	BODY_60_79(63,D,E,T,A,B,C);
-	BODY_60_79(64,C,D,E,T,A,B);
-	BODY_60_79(65,B,C,D,E,T,A);
-	BODY_60_79(66,A,B,C,D,E,T);
-	BODY_60_79(67,T,A,B,C,D,E);
-	BODY_60_79(68,E,T,A,B,C,D);
-	BODY_60_79(69,D,E,T,A,B,C);
-	BODY_60_79(70,C,D,E,T,A,B);
-	BODY_60_79(71,B,C,D,E,T,A);
-	BODY_60_79(72,A,B,C,D,E,T);
-	BODY_60_79(73,T,A,B,C,D,E);
-	BODY_60_79(74,E,T,A,B,C,D);
-	BODY_60_79(75,D,E,T,A,B,C);
-	BODY_60_79(76,C,D,E,T,A,B);
-	BODY_60_79(77,B,C,D,E,T,A);
-	BODY_60_79(78,A,B,C,D,E,T);
-	BODY_60_79(79,T,A,B,C,D,E);
-
-	c->h0=(c->h0+E)&0xffffffff; 
-	c->h1=(c->h1+T)&0xffffffff;
-	c->h2=(c->h2+A)&0xffffffff;
-	c->h3=(c->h3+B)&0xffffffff;
-	c->h4=(c->h4+C)&0xffffffff;
-	}
-
-void SHA1Final(md, c)
-unsigned char *md;
-SHA1_CTX *c;
-	{
-	register int i,j;
-	register ULONG l;
-	register ULONG *p;
-	static unsigned char end[4]={0x80,0x00,0x00,0x00};
-	unsigned char *cp=end;
-
-	/* c->num should definitly have room for at least one more byte. */
-	p=c->data;
-	j=c->num;
-	i=j>>2;
-#ifdef PURIFY
-	if ((j&0x03) == 0) p[i]=0;
-#endif
-	l=p[i];
-	p_c2nl(cp,l,j&0x03);
-	p[i]=l;
-	i++;
-	/* i is the next 'undefined word' */
-	if (c->num >= SHA_LAST_BLOCK)
-		{
-		for (; i<SHA_LBLOCK; i++)
-			p[i]=0;
-		sha1_block(c,p);
-		i=0;
-		}
-	for (; i<(SHA_LBLOCK-2); i++)
-		p[i]=0;
-	p[SHA_LBLOCK-2]=c->Nh;
-	p[SHA_LBLOCK-1]=c->Nl;
-	sha1_block(c,p);
-	cp=md;
-	l=c->h0; nl2c(l,cp);
-	l=c->h1; nl2c(l,cp);
-	l=c->h2; nl2c(l,cp);
-	l=c->h3; nl2c(l,cp);
-	l=c->h4; nl2c(l,cp);
-
-	/* clear stuff, sha1_block may be leaving some stuff on the stack
-	 * but I'm not worried :-) */
-	c->num=0;
-/*	memset((char *)&c,0,sizeof(c));*/
-	}
-
-#ifdef MAIN_TEST
-
-char *test[]={
-        "abc",
-        "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-        NULL,
-};
-char *ret[]={
-        "a9993e364706816aba3e25717850c26c9cd0d89d",
-        "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
-};
-
-#define SHA_DIGEST_LENGTH 20
-
-unsigned char *SHA1(d, n, md)
-unsigned char *d;
-unsigned long n;
-unsigned char *md;
-{
-        SHA1_CTX c;
-        static unsigned char m[SHA_DIGEST_LENGTH];
-
-        if (md == NULL) md=m;
-        SHA1Init(&c);
-        SHA1Update(&c,d,n);
-        SHA1Final(md,&c);
-        memset(&c,0,sizeof(c));
-        return(md);
-}
-
-static char *pt(md)
-unsigned char *md;
-{
-        int i;
-        static char buf[80];
-
-        for (i=0; i<SHA_DIGEST_LENGTH; i++)
-                sprintf(&(buf[i*2]),"%02x",md[i]);
-        return(buf);
-}
-
-int main(argc,argv)
-int argc;
-char *argv[];
-{
-        int i,err=0;
-        unsigned char **P,**R;
-        static unsigned char buf[1000];
-        char *p,*r;
-        SHA1_CTX c;
-        unsigned char md[SHA_DIGEST_LENGTH];
-
-        P=(unsigned char **)test;
-        R=(unsigned char **)ret;
-        i=1;
-        while (*P != NULL)
-                {
-                p=pt(SHA1(*P,(unsigned long)strlen((char *)*P),NULL));
-                if (strcmp(p,(char *)*R) != 0)
-                        {
-                        printf("error calculating SHA1 on '%s'\n",*P);
-                        printf("got %s instead of %s\n",p,*R);
-                        err++;
-                        }
-                else
-                        printf("test %d ok\n",i);
-                i++;
-                R++;
-                P++;
-        }
-
-        return(0);
-}
-
-#endif /* MAIN_TEST */
===================================================================
Checking out kaffe/kaffe/kaffevm/sha-1.h
RCS:  /home/cvs/kaffe/kaffe/kaffe/kaffevm/Attic/sha-1.h,v
VERS: 1.2
***************
--- kaffe/kaffe/kaffevm/sha-1.h	Mon May 24 18:25:00 2004
+++ /dev/null	Sun Aug  4 19:57:58 2002
@@ -1,188 +0,0 @@
-
-/*
- * Copyright (c) 1995-1999 Eric Young
- * All rights reserved.
- * 
- * Subject to the following obligations and disclaimer of warranty, use and
- * redistribution of this software, in source or object code forms, with or
- * without modifications are expressly permitted by Eric Young; provided,
- * however, that:
- * 1. Any and all reproductions of the source or object code must include the
- *    copyright notice above and the following disclaimer of warranties; and
- * 2. No rights are granted, in any manner or form, to use Eric Young
- *    trademarks, including the mark "Eric Young" on advertising,
- *    endorsements, or otherwise except as such appears in the above
- *    copyright notice or in the software.
- * 
- * THIS SOFTWARE IS BEING PROVIDED BY ERIC YOUNG "AS IS", AND TO THE
- * MAXIMUM EXTENT PERMITTED BY LAW, ERIC YOUNG MAKES NO REPRESENTATIONS
- * OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE,
- * INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
- * ERIC YOUNG DOES NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS
- * REGARDING THE USE OF, OR THE RESULTS OF THE USE OF THIS SOFTWARE
- * IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE.
- * IN NO EVENT SHALL ERIC YOUNG BE LIABLE FOR ANY DAMAGES RESULTING
- * FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING WITHOUT
- * LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- * PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED
- * AND UNDER ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ERIC YOUNG IS
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _SHA_1_H_
-#define _SHA_1_H_
-
-#define SHA_CBLOCK	64
-#define SHA_LBLOCK	16
-#define SHA_BLOCK	16
-#define SHA_LAST_BLOCK  56
-#define SHA_LENGTH_BLOCK 8
-#define SHA_DIGEST_LENGTH 20
-
-typedef struct SHAstate_st
-	{
-	unsigned long h0,h1,h2,h3,h4;
-	unsigned long Nl,Nh;
-	unsigned long data[SHA_LBLOCK];
-	int num;
-	} SHA1_CTX;
-
-void SHA1Init(SHA1_CTX *c);
-void SHA1Update(SHA1_CTX *c, const unsigned char *data, unsigned long len);
-void SHA1Final(unsigned char *md, SHA1_CTX *c);
-
-/* one or the other needs to be defined */
-#define SHA_1 /* FIPE 180-1 */
-
-#define ULONG	unsigned long
-#define UCHAR	unsigned char
-#define UINT	unsigned int
-
-#undef c2nl
-#define c2nl(c,l)	(l =(((unsigned long)(*((c)++)))<<24), \
-			 l|=(((unsigned long)(*((c)++)))<<16), \
-			 l|=(((unsigned long)(*((c)++)))<< 8), \
-			 l|=(((unsigned long)(*((c)++)))    ))
-
-#undef p_c2nl
-#define p_c2nl(c,l,n)	{ \
-			switch (n) { \
-			case 0: l =((unsigned long)(*((c)++)))<<24; \
-			case 1: l|=((unsigned long)(*((c)++)))<<16; \
-			case 2: l|=((unsigned long)(*((c)++)))<< 8; \
-			case 3: l|=((unsigned long)(*((c)++))); \
-				} \
-			}
-
-#undef c2nl_p
-/* NOTE the pointer is not incremented at the end of this */
-#define c2nl_p(c,l,n)	{ \
-			l=0; \
-			(c)+=n; \
-			switch (n) { \
-			case 3: l =((unsigned long)(*(--(c))))<< 8; \
-			case 2: l|=((unsigned long)(*(--(c))))<<16; \
-			case 1: l|=((unsigned long)(*(--(c))))<<24; \
-				} \
-			}
-
-#undef p_c2nl_p
-#define p_c2nl_p(c,l,sc,len) { \
-			switch (sc) \
-				{ \
-			case 0: l =((unsigned long)(*((c)++)))<<24; \
-				if (--len == 0) break; \
-			case 1: l|=((unsigned long)(*((c)++)))<<16; \
-				if (--len == 0) break; \
-			case 2: l|=((unsigned long)(*((c)++)))<< 8; \
-				} \
-			}
-
-#undef nl2c
-#define nl2c(l,c)	(*((c)++)=(unsigned char)(((l)>>24)&0xff), \
-			 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
-			 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
-			 *((c)++)=(unsigned char)(((l)    )&0xff))
-
-/* I have taken some of this code from my MD5 implementation */
-
-#undef ROTATE
-#if defined(WIN32) && !defined(__GNUC__)
-#define ROTATE(a,n)     _lrotl(a,n)
-#else
-#define ROTATE(a,n)     (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
-#endif
-
-/* A nice byte order reversal from Wei Dai <weidai at eskimo.com> */
-#if defined(WIN32)
-/* 5 instructions with rotate instruction, else 9 */
-#define Endian_Reverse32(a) \
-	{ \
-	unsigned long l=(a); \
-	(a)=((ROTATE(l,8)&0x00FF00FF)|(ROTATE(l,24)&0xFF00FF00)); \
-	}
-#else
-/* 6 instructions with rotate instruction, else 8 */
-#define Endian_Reverse32(a) \
-	{ \
-	unsigned long l=(a); \
-	l=(((l&0xFF00FF00)>>8L)|((l&0x00FF00FF)<<8L)); \
-	(a)=ROTATE(l,16L); \
-	}
-#endif
-
-/* As  pointed out by Wei Dai <weidai at eskimo.com>, F() below can be
- * simplified to the code in F_00_19.  Wei attributes these optimisations
- * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
- * #define F(x,y,z) (((x) & (y))  |  ((~(x)) & (z)))
- * I've just become aware of another tweak to be made, again from Wei Dai,
- * in F_40_59, (x&a)|(y&a) -> (x|y)&a
- */
-#define	F_00_19(b,c,d)	((((c) ^ (d)) & (b)) ^ (d)) 
-#define	F_20_39(b,c,d)	((b) ^ (c) ^ (d))
-#define F_40_59(b,c,d)	(((b) & (c)) | (((b)|(c)) & (d))) 
-#define	F_60_79(b,c,d)	F_20_39(b,c,d)
-
-#ifdef SHA_0
-#undef Xupdate
-#define Xupdate(a,i) \
-	X[(i)&0x0f]=(a)=\
-		(X[(i)&0x0f]^X[((i)+2)&0x0f]^X[((i)+8)&0x0f]^X[((i)+13)&0x0f]);
-#endif
-#ifdef SHA_1
-#undef Xupdate
-#define Xupdate(a,i) \
-	(a)=(X[(i)&0x0f]^X[((i)+2)&0x0f]^X[((i)+8)&0x0f]^X[((i)+13)&0x0f]); \
-	X[(i)&0x0f]=(a)=ROTATE((a),1);
-#endif
-
-#define BODY_00_15(i,a,b,c,d,e,f) \
-	(f)=X[i]+(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
-	(b)=ROTATE((b),30);
-
-#define BODY_16_19(i,a,b,c,d,e,f) \
-	Xupdate(f,i); \
-	(f)+=(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
-	(b)=ROTATE((b),30);
-
-#define BODY_20_39(i,a,b,c,d,e,f) \
-	Xupdate(f,i); \
-	(f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \
-	(b)=ROTATE((b),30);
-
-#define BODY_40_59(i,a,b,c,d,e,f) \
-	Xupdate(f,i); \
-	(f)+=(e)+K_40_59+ROTATE((a),5)+F_40_59((b),(c),(d)); \
-	(b)=ROTATE((b),30);
-
-#define BODY_60_79(i,a,b,c,d,e,f) \
-	Xupdate(f,i); \
-	(f)=X[(i)&0x0f]+(e)+K_60_79+ROTATE((a),5)+F_60_79((b),(c),(d)); \
-	(b)=ROTATE((b),30);
-
-#endif
-




More information about the kaffe mailing list