From 2ed0c4b5bf2dfe871ee6210b71324fe1a5121a60 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Thu, 3 Sep 1998 10:14:33 +0200
Subject: [PATCH] Hacked configure scripts, makefiles and crypto_types.h.

Rev: src/symmetric/Makefile.in:1.2
Rev: src/symmetric/cast.c:1.2
Rev: src/symmetric/configure.in:1.2
Rev: src/symmetric/desCode.h:1.2
Rev: src/symmetric/desKerb.c:1.2
Rev: src/symmetric/desQuick.c:1.2
Rev: src/symmetric/desUtil.c:1.2
Rev: src/symmetric/desdata.c:1.2
Rev: src/symmetric/idea.c:1.2
Rev: src/symmetric/include/cast.h:1.2
Rev: src/symmetric/include/crypto_types.h:1.2
Rev: src/symmetric/include/des.h:1.2
Rev: src/symmetric/include/idea.h:1.2
Rev: src/symmetric/include/md5.h:1.2
Rev: src/symmetric/include/rc4.h:1.2
Rev: src/symmetric/include/sha.h:1.2
Rev: src/symmetric/md5.c:1.2
Rev: src/symmetric/rc4.c:1.2
Rev: src/symmetric/sha.c:1.2
---
 Makefile.in            | 53 ++++++++++++++++++++++++++++--------------
 cast.c                 |  4 ++--
 configure.in           | 14 +++++++++++
 desCode.h              | 36 ++++++++++++++--------------
 desKerb.c              |  4 ++--
 desQuick.c             |  6 ++---
 desUtil.c              |  8 +++----
 desdata.c              |  2 +-
 idea.c                 | 46 ++++++++++++++++++------------------
 include/cast.h         | 12 +++++-----
 include/crypto_types.h | 17 ++++++++++----
 include/des.h          | 12 +++++-----
 include/idea.h         | 14 +++++------
 include/md5.h          | 10 ++++----
 include/rc4.h          |  8 +++----
 include/sha.h          | 10 ++++----
 md5.c                  | 16 ++++++-------
 rc4.c                  | 14 +++++------
 sha.c                  | 18 +++++++-------
 19 files changed, 171 insertions(+), 133 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 13441fdd..b6c143f8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -9,15 +9,10 @@ AR=ar
 
 # Reset VPATH
 SRCDIR=@srcdir@
-VPATH=$(SRCDIR):$(SRCDIR)/../include
-
-CRYPTO_INCLUDES=$(SRCDIR)/../include
-
-# Additional C preprocessor flags
-PREFLAGS=$(EXTRA_CPP_FLAGS) -I$(CRYPTO_INCLUDES) -I. -I$(SRCDIR) $(DEFINES)
+VPATH=$(SRCDIR):$(EXTRA_VPATH)
 
 # The flags to generate a shared library
-CFLAGS=$(PREFLAGS) $(OTHERFLAGS) $(EXTRA_CFLAGS)
+CPPFLAGS=$(PREFLAGS) $(DEFS) $(EXTRA_CPPFLAGS)
 LDFLAGS=@LDFLAGS@
 
 default: algorithms.a
@@ -57,8 +52,8 @@ desTest:	desCore.a desTest.o
 
 # test all performance enhancement flags
 sure:
-		make clean ; make desTest 'CPPFLAGS=-Di386    -Umc68000 -Usparc'
-		make clean ; make desTest 'CPPFLAGS=-Dvax     -Umc68000 -Usparc'
+		make clean ; make desTest 'CPPFLAGS=-Di386 -Umc68000 -Usparc'
+		make clean ; make desTest 'CPPFLAGS=-Dvax -Umc68000 -Usparc'
 		make clean ; make desTest 'CPPFLAGS=-Dmc68000 -Usparc'
 		make clean ; make desTest 'CPPFLAGS=-Dsparc   -Umc68000'
 		make clean ; make desTest
@@ -141,19 +136,41 @@ desQuickCore.c:
 
 ### End of rules for desCore
 
-# BEGIN NATIONAL SECURITY
-MASS_DESTRUCTION_OBJS = idea.o rc4.o cast.o $(O)
-# END NATIONAL SECURITY
-
-OBJS = $(MASS_DESTRUCTION_OBJS) sha.o md5.o
+SRCS = sha.c md5.c idea.c rc4.c cast.c $(SC) $(GC)
+OBJS = $(SRCS:.c=.o)
 
 algorithms.a: $(OBJS)
 	rm -f algorithms.a
 	$(AR) cru algorithms.a $(OBJS)
 	$(RANLIB) algorithms.a
 
-Makefile: $(SRCDIR)/Makefile.in config.status
-	CONFIG_FILES=Makefile CONFIG_HEADERS="" ./config.status
-	@echo "Run make again"
-	@exit 1
+#### Remaking the Makefile and configure scripts. ####
+
+#${srcdir}/configure: configure.in aclocal.m4
+${srcdir}/configure: configure.in
+	cd ${srcdir} && autoconf
+
+# autoheader might not change config.h.in, so touch a stamp file.
+${srcdir}/config.h.in: stamp-h.in
+
+#${srcdir}/stamp-h.in: configure.in aclocal.m4 acconfig.h \
+#    config.h.top config.h.bot
+
+${srcdir}/stamp-h.in: configure.in 
+	cd ${srcdir} && autoheader
+	echo timestamp > ${srcdir}/stamp-h.in
+
+config.h: stamp-h
+
+stamp-h: config.h.in config.status
+	./config.status
+
+Makefile: Makefile.in config.status
+	./config.status
+
+config.status: configure
+	./config.status --recheck
 
+%.d: %.c
+	$(SHELL) -ec '$(CC) -MM -MG $(CPPFLAGS) $(DEFS) $< \
+		| sed '\''s/\($*\)\.o:/\1\.o $@ : /g'\'' > $@'
diff --git a/cast.c b/cast.c
index c2e467c0..d07451ec 100644
--- a/cast.c
+++ b/cast.c
@@ -11,8 +11,8 @@
 
 #include <cast.h>
 
-#define u8 unsigned INT8
-#define u32 unsigned INT32
+#define u8 UINT8
+#define u32 UINT32
 
 #include "cast_sboxes.h"
 
diff --git a/configure.in b/configure.in
index 6f9bd700..78d4034e 100755
--- a/configure.in
+++ b/configure.in
@@ -1,10 +1,24 @@
+dnl Process this file with autoconf to produce a configure script.
+
 # $Id$
 AC_INIT(sha.c)
 
+AC_PROG_MAKE_SET
+
 AC_PROG_CC
 AC_PROG_CPP
 AC_PROG_RANLIB
 
+dnl Checks for libraries.
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(sys/time.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 
+dnl Checks for library functions.
+AC_FUNC_MEMCMP
+
 AC_OUTPUT(Makefile)
diff --git a/desCode.h b/desCode.h
index c38e491f..f9e2436d 100644
--- a/desCode.h
+++ b/desCode.h
@@ -11,7 +11,7 @@
 #include "RCSID.h"
 RCSID2(desCode_hRcs, "$Id$");
 
-extern unsigned INT32 des_keymap[], des_bigmap[];
+extern UINT32 des_keymap[], des_bigmap[];
 
 /* optional customization:
  * the idea here is to alter the code so it will still run correctly
@@ -51,15 +51,15 @@ extern unsigned INT32 des_keymap[], des_bigmap[];
  * a macro definition that the users of the function doesn't
  * know about. - Niels */
 #if	0			/* didn't feel like deleting */
-#define	SREGFREE	; s = (unsigned INT8 *) D
+#define	SREGFREE	; s = (UINT8 *) D
 #define	DEST		s
 #define	D		m0
-#define	BYTE		unsigned INT32
+#define	BYTE		UINT32
 #else
 #define	SREGFREE
 #define	DEST		d
 #define	D		d
-#define	BYTE		unsigned INT8
+#define	BYTE		UINT8
 #endif
 
 /* handle constants in the optimal way for 386 & vax */
@@ -132,8 +132,8 @@ extern unsigned INT32 des_keymap[], des_bigmap[];
 #define	LS2(z)	k1 & z
 #define	LS3(z)	k2 & z
 #define	REGQUICK				\
-	register unsigned INT32 k0, k1;			\
-	register unsigned INT32 *m0, *m1, *m2, *m3;
+	register UINT32 k0, k1;			\
+	register UINT32 *m0, *m1, *m2, *m3;
 #define	SETQUICK				\
 	; k0 = 0XFCFC				\
 	; k1 = 16				\
@@ -143,8 +143,8 @@ extern unsigned INT32 des_keymap[], des_bigmap[];
 	; m2 = m1 + 64				\
 	; m3 = m2 + 64
 #define	REGSMALL				\
-	register unsigned INT32 k0, k1, k2;		\
-	register unsigned INT32 *m0, *m1, *m2, *m3;
+	register UINT32 k0, k1, k2;		\
+	register UINT32 *m0, *m1, *m2, *m3;
 #define	SETSMALL				\
 	; k0 = 0X01000100L			\
 	; k1 = 0X0FC				\
@@ -189,8 +189,8 @@ extern unsigned INT32 des_keymap[], des_bigmap[];
 #define	LS2(z)	0XFC & z
 #define	LS3(z)	0XFC & z
 #define	REGQUICK				\
-	register unsigned INT32 k0;		\
-	register unsigned INT32 *m0, *m1, *m2, *m3;
+	register UINT32 k0;		\
+	register UINT32 *m0, *m1, *m2, *m3;
 #define	SETQUICK				\
 	; k0 = 0XFCFC				\
 	; m0 = des_bigmap			\
@@ -198,7 +198,7 @@ extern unsigned INT32 des_keymap[], des_bigmap[];
 	; m2 = m1 + 64				\
 	; m3 = m2 + 64
 #define	REGSMALL				\
-	register unsigned INT32 *m0, *m1, *m2, *m3, *m4, *m5, *m6, *m7;
+	register UINT32 *m0, *m1, *m2, *m3, *m4, *m5, *m6, *m7;
 #define	SETSMALL				\
 	; m0 = des_keymap			\
 	; m1 = m0 + 64				\
@@ -214,7 +214,7 @@ extern unsigned INT32 des_keymap[], des_bigmap[];
 /* some basic stuff */
 
 /* generate addresses from a base and an index */
-#define	ADD(b,x)	(unsigned INT32 *) ((unsigned INT8 *)b + (x))
+#define	ADD(b,x)	(UINT32 *) ((UINT8 *)b + (x))
 
 /* low level rotate operations */
 #define	NOP(d,c,o)
@@ -344,10 +344,10 @@ extern unsigned INT32 des_keymap[], des_bigmap[];
 						\
 void						\
 NAME(REGISTER BYTE *D,                          \
-     REGISTER unsigned INT32 *r,                \
-     REGISTER unsigned INT8 *s)                 \
+     REGISTER UINT32 *r,                \
+     REGISTER UINT8 *s)                 \
 {						\
-	register unsigned INT32 x, y, z;	\
+	register UINT32 x, y, z;	\
 						\
 	/* declare temps & load data */		\
 	TEMP(LOAD);				\
@@ -380,10 +380,10 @@ NAME(REGISTER BYTE *D,                          \
 						\
 void						\
 NAME(REGISTER BYTE *D,                          \
-     REGISTER unsigned INT32 *r,                \
-     REGISTER unsigned INT8 *s)                 \
+     REGISTER UINT32 *r,                \
+     REGISTER UINT8 *s)                 \
 {						\
-	register unsigned INT32 x, y, z;        \
+	register UINT32 x, y, z;        \
 						\
 	/* declare temps & load data */		\
 	TEMP(LOAD);				\
diff --git a/desKerb.c b/desKerb.c
index 3e32b72f..eaf2ec03 100644
--- a/desKerb.c
+++ b/desKerb.c
@@ -16,7 +16,7 @@ DesFunc *DesCryptFuncs[2] = { DesSmallFipsDecrypt, DesSmallFipsEncrypt };
 /* kerberos-compatible key schedule function */
 
 int
-des_key_sched(unsigned INT8 *k, unsigned INT32 *s)
+des_key_sched(UINT8 *k, UINT32 *s)
 {
 	return DesMethod(s, k);
 }
@@ -24,7 +24,7 @@ des_key_sched(unsigned INT8 *k, unsigned INT32 *s)
 /* kerberos-compatible des coding function */
 
 int
-des_ecb_encrypt(unsigned INT8 *s, unsigned INT8 *d, unsigned INT32 *r, int e)
+des_ecb_encrypt(UINT8 *s, UINT8 *d, UINT32 *r, int e)
 {
 	(*DesCryptFuncs[e])(d, r, s);
 	return 0;
diff --git a/desQuick.c b/desQuick.c
index b5220c28..4f24fff7 100644
--- a/desQuick.c
+++ b/desQuick.c
@@ -11,13 +11,13 @@
 #include "RCSID.h"
 RCSID2(desQuick_cRcs, "$Id$");
 
-extern unsigned INT32 des_keymap[];
+extern UINT32 des_keymap[];
 
 
 /* static information */
 
 static int depth = 0;		/* keep track of the request depth */
-unsigned INT32 des_bigmap[0x4000];	/* big lookup table */
+UINT32 des_bigmap[0x4000];	/* big lookup table */
 
 /* fill in the 64k table used by the `quick' option */
 
@@ -25,7 +25,7 @@ void
 DesQuickInit(void)
 {
 	int s1, s3, x;
-	unsigned INT32 * t0, * t1, * t2, * t3;
+	UINT32 * t0, * t1, * t2, * t3;
 
 	if ( depth++ )
 		return;
diff --git a/desUtil.c b/desUtil.c
index bdf014b1..f359dd0e 100644
--- a/desUtil.c
+++ b/desUtil.c
@@ -11,11 +11,11 @@ RCSID2(desUtil_cRcs, "$Id$");
 
 /* various tables */
 
-unsigned INT32 des_keymap[] = {
+UINT32 des_keymap[] = {
 #include	"keymap.h"
 };
 
-static unsigned INT8 rotors[] = {
+static UINT8 rotors[] = {
 #include	"rotors.h"
 };
 static char parity[] = {
@@ -28,9 +28,9 @@ RCSID2(ego, "\n\nFast DES Library Copyright (c) 1991 Dana L. How\n\n");
 /* set up the method list from the key */
 
 int
-DesMethod(unsigned INT32 *method, unsigned INT8 *k)
+DesMethod(UINT32 *method, UINT8 *k)
 {
-	register unsigned INT32 n, w;
+	register UINT32 n, w;
 	register char * b0, * b1;
 	char bits0[56], bits1[56];
 
diff --git a/desdata.c b/desdata.c
index 4089be76..46e58041 100644
--- a/desdata.c
+++ b/desdata.c
@@ -60,7 +60,7 @@ int printf(const char *, ...);
 int
 main(int argc, char **argv)
 {
-	unsigned INT32 d, i, j, k, l, m, n, s;
+	UINT32 d, i, j, k, l, m, n, s;
 	char b[256], ksr[56];
 
 	switch ( argv[1][0] ) {
diff --git a/idea.c b/idea.c
index 59a0a143..8c013fdf 100644
--- a/idea.c
+++ b/idea.c
@@ -42,12 +42,12 @@
  * compiler doesn't schedule branches.
  */
 #ifdef SMALL_CACHE
-const static unsigned INT16
-mul(unsigned INT16 a, unsigned INT16 b)
+const static UINT16
+mul(UINT16 a, UINT16 b)
 {
-  register unsigned INT32 p;
+  register UINT32 p;
 
-  p = (unsigned INT32)a * b;
+  p = (UINT32)a * b;
   if (p)
     {
       b = low16(p);
@@ -70,11 +70,11 @@ mul(unsigned INT16 a, unsigned INT16 b)
  * algorithm. It is unrolled twice to avoid swapping the registers each
  * iteration, and some subtracts of t have been changed to adds.
  */
-static const unsigned INT16
-inv(unsigned INT16 x)     
+static const UINT16
+inv(UINT16 x)     
 {
-  unsigned INT16 t0, t1;
-  unsigned INT16 q, y;
+  UINT16 t0, t1;
+  UINT16 q, y;
 
   if (x <= 1)
     return x;	/* 0 and 1 are self-inverse */
@@ -102,8 +102,8 @@ inv(unsigned INT16 x)
  * Expand a 128-bit user key to a working encryption key ctx
  */
 void
-idea_expand(unsigned INT16 *ctx,
-	    const unsigned INT8 *userkey)
+idea_expand(UINT16 *ctx,
+	    const UINT8 *userkey)
 {
   int i,j;
   
@@ -125,13 +125,13 @@ idea_expand(unsigned INT16 *ctx,
  * inverted into an internal buffer, and then copied to the output.
  */
 void
-idea_invert(unsigned INT16 *d,
-	    const unsigned INT16 *e)
+idea_invert(UINT16 *d,
+	    const UINT16 *e)
 {
   int i;
-  unsigned INT16 t1, t2, t3;
-  unsigned INT16 temp[IDEA_KEYLEN];
-  unsigned INT16 *p = temp + IDEA_KEYLEN;
+  UINT16 t1, t2, t3;
+  UINT16 temp[IDEA_KEYLEN];
+  UINT16 *p = temp + IDEA_KEYLEN;
 
   t1 = inv(*e++);
   t2 = -*e++;
@@ -182,13 +182,13 @@ idea_invert(unsigned INT16 *d,
 #else /* !SMALL_CACHE */
 #ifdef AVOID_JUMPS
 #define MUL(x,y) (x = low16(x-1), t16 = low16((y)-1), \
-		t32 = (unsigned INT32)x*t16 + x + t16 + 1, x = low16(t32), \
+		t32 = (UINT32)x*t16 + x + t16 + 1, x = low16(t32), \
 		t16 = t32>>16, x = (x-t16) + (x<t16) )
 #else /* !AVOID_JUMPS (default) */
 #define MUL(x,y) \
 	((t16 = (y)) ? \
 		(x=low16(x)) ? \
-			t32 = (unsigned INT32)x*t16, \
+			t32 = (UINT32)x*t16, \
 			x = low16(t32), \
 			t16 = t32>>16, \
 			x = (x-t16)+(x<t16) \
@@ -213,11 +213,11 @@ idea_invert(unsigned INT16 *d,
 /*	IDEA encryption/decryption algorithm */
 /* Note that in and out can be the same buffer */
 void
-idea_crypt(const unsigned INT16 *key,
-	   unsigned INT8 *dest,
-	   const unsigned INT8 *src)
+idea_crypt(const UINT16 *key,
+	   UINT8 *dest,
+	   const UINT8 *src)
 {
-  register unsigned INT16 x1, x2, x3, x4, s2, s3;
+  register UINT16 x1, x2, x3, x4, s2, s3;
   
   /* Setup */
     
@@ -227,8 +227,8 @@ idea_crypt(const unsigned INT16 *key,
   /* Encrypt */
   {
 #ifndef SMALL_CACHE
-    register unsigned INT16 t16;	/* Temporaries needed by MUL macro */
-    register unsigned INT32 t32;
+    register UINT16 t16;	/* Temporaries needed by MUL macro */
+    register UINT32 t32;
 #endif
     int r = IDEA_ROUNDS;
     do
diff --git a/include/cast.h b/include/cast.h
index 65ce86cd..b0483ff3 100644
--- a/include/cast.h
+++ b/include/cast.h
@@ -21,16 +21,16 @@
 #include "crypto_types.h"
 
 struct cast_key {
-	unsigned INT32 xkey[32];	/* Key, after expansion */
+	UINT32 xkey[32];	/* Key, after expansion */
 	unsigned rounds;		/* Number of rounds to use, 12 or 16 */
 };
 
-void cast_setkey(struct cast_key *key, unsigned INT8 *rawkey,
+void cast_setkey(struct cast_key *key, UINT8 *rawkey,
 		 unsigned keybytes);
-void cast_encrypt(struct cast_key *key, unsigned INT8 *inblock,
-		  unsigned INT8 *outblock);
-void cast_decrypt(struct cast_key *key, unsigned INT8 *inblock,
-		  unsigned INT8* outblock);
+void cast_encrypt(struct cast_key *key, UINT8 *inblock,
+		  UINT8 *outblock);
+void cast_decrypt(struct cast_key *key, UINT8 *inblock,
+		  UINT8* outblock);
 
 #endif /* ifndef _CAST_H_INCLUDED */
 
diff --git a/include/crypto_types.h b/include/crypto_types.h
index 9429902a..f23251df 100644
--- a/include/crypto_types.h
+++ b/include/crypto_types.h
@@ -1,6 +1,6 @@
 /* $Id$
  *
- * Defines the types INT32 and INT8 */
+ * Defines the types UINT32, UINT16 and UINT8 */
 
 #ifndef CRYPTO_TYPES_H_INCLUDED
 #define CRYPTO_TYPES_H_INCLUDED
@@ -8,10 +8,17 @@
 #ifdef PIKE
 #include "pike_types.h"
 #include "global.h"
-#else /* !PIKE */
-#define INT32 long
-#define INT16 short
-#define INT8 char
+#define UINT32 unsigned INT32
+#define UINT16 unsigned INT16
+#define UINT8 unsigned INT8
+#else  /* !PIKE */
+#ifdef LSH
+#include "lsh_types.h"
+#else /* !LSH */
+#define UINT32 unsigned long
+#define UINT16 unsigned short
+#define UINT8 unsigned char
+#endif
 #endif
 
 #endif /* CRYPTO_TYPES_H_INCLUDED */
diff --git a/include/des.h b/include/des.h
index 911eaefe..6da93695 100644
--- a/include/des.h
+++ b/include/des.h
@@ -18,11 +18,11 @@ RCSID2(desCore_hRcs, "$Id$");
 #define DES_BLOCKSIZE 8
 #define DES_EXPANDED_KEYLEN 32
 
-typedef unsigned INT8 DesData[DES_BLOCKSIZE];
-typedef unsigned INT32 DesKeys[DES_EXPANDED_KEYLEN];
-typedef void DesFunc(unsigned INT8 *d, unsigned INT32 *r, unsigned INT8 *s);
+typedef UINT8 DesData[DES_BLOCKSIZE];
+typedef UINT32 DesKeys[DES_EXPANDED_KEYLEN];
+typedef void DesFunc(UINT8 *d, UINT32 *r, UINT8 *s);
 
-extern int DesMethod(unsigned INT32 *method, unsigned INT8 *k);
+extern int DesMethod(UINT32 *method, UINT8 *k);
 extern void DesQuickInit(void);
 extern void DesQuickDone(void);
 extern DesFunc DesQuickCoreEncrypt;
@@ -35,7 +35,7 @@ extern DesFunc DesSmallCoreDecrypt;
 extern DesFunc DesSmallFipsDecrypt;
 
 extern DesFunc *DesCryptFuncs[2];
-extern int des_key_sched(unsigned INT8 *k, unsigned INT32 *s);
-extern int des_ecb_encrypt(unsigned INT8 *s, unsigned INT8 *d, unsigned INT32 *r, int e);
+extern int des_key_sched(UINT8 *k, UINT32 *s);
+extern int des_ecb_encrypt(UINT8 *s, UINT8 *d, UINT32 *r, int e);
 
 #endif /*  DES_H_INCLUDED */
diff --git a/include/idea.h b/include/idea.h
index 27cfefae..3328f8fd 100644
--- a/include/idea.h
+++ b/include/idea.h
@@ -13,14 +13,14 @@
 
 #include "crypto_types.h"
 
-void idea_expand(unsigned INT16 *ctx,
-		 const unsigned INT8 *key);
+void idea_expand(UINT16 *ctx,
+		 const UINT8 *key);
 
-void idea_invert(unsigned INT16 *d,
-		 const unsigned INT16 *e);
+void idea_invert(UINT16 *d,
+		 const UINT16 *e);
 
-void idea_crypt(const unsigned INT16 *ctx,
-		unsigned INT8 *dest,
-		const unsigned INT8 *src);
+void idea_crypt(const UINT16 *ctx,
+		UINT8 *dest,
+		const UINT8 *src);
 
 #endif /* IDEA_H_INCLUDED */
diff --git a/include/md5.h b/include/md5.h
index 3e7e9f3e..b90432f8 100644
--- a/include/md5.h
+++ b/include/md5.h
@@ -10,14 +10,14 @@
 #define MD5_DIGESTLEN    4
 
 struct md5_ctx {
-  unsigned INT32 digest[MD5_DIGESTLEN]; /* Digest */
-  unsigned INT32 count_l, count_h;      /* Block count */
-  unsigned INT8 block[MD5_DATASIZE];   /* One block buffer */
+  UINT32 digest[MD5_DIGESTLEN]; /* Digest */
+  UINT32 count_l, count_h;      /* Block count */
+  UINT8 block[MD5_DATASIZE];   /* One block buffer */
   int index;                            /* index into buffer */
 };
 
 void md5_init(struct md5_ctx *ctx);
-void md5_update(struct md5_ctx *ctx, unsigned INT8 *buffer, unsigned INT32 len);
+void md5_update(struct md5_ctx *ctx, UINT8 *buffer, UINT32 len);
 void md5_final(struct md5_ctx *ctx);
-void md5_digest(struct md5_ctx *ctx, INT8 *s);
+void md5_digest(struct md5_ctx *ctx, UINT8 *s);
 void md5_copy(struct md5_ctx *dest, struct md5_ctx *src);
diff --git a/include/rc4.h b/include/rc4.h
index 57a46a97..3e9827d5 100644
--- a/include/rc4.h
+++ b/include/rc4.h
@@ -8,15 +8,15 @@
 #include "crypto_types.h"
 
 struct rc4_ctx {
-  unsigned INT8 S[256];
-  unsigned INT8 i, j;
+  UINT8 S[256];
+  UINT8 i, j;
 };
 
 #if 0
 void rc4_init(struct rc4_ctx *ctx);
 #endif
 
-void rc4_set_key(struct rc4_ctx *ctx, const unsigned INT8 *key, INT32 len);
-void rc4_crypt(struct rc4_ctx *ctx, unsigned INT8 *dest, const unsigned INT8 *src, INT32 len);
+void rc4_set_key(struct rc4_ctx *ctx, const UINT8 *key, UINT32 len);
+void rc4_crypt(struct rc4_ctx *ctx, UINT8 *dest, const UINT8 *src, UINT32 len);
 
 #endif /* RC4_H_INCLUDED */
diff --git a/include/sha.h b/include/sha.h
index 96f4d782..1425aa08 100644
--- a/include/sha.h
+++ b/include/sha.h
@@ -13,14 +13,14 @@
 /* The structure for storing SHA info */
 
 struct sha_ctx {
-  unsigned INT32 digest[SHA_DIGESTLEN];  /* Message digest */
-  unsigned INT32 count_l, count_h;       /* 64-bit block count */
-  unsigned INT8 block[SHA_DATASIZE];     /* SHA data buffer */
+  UINT32 digest[SHA_DIGESTLEN];  /* Message digest */
+  UINT32 count_l, count_h;       /* 64-bit block count */
+  UINT8 block[SHA_DATASIZE];     /* SHA data buffer */
   int index;                             /* index into buffer */
 };
 
 void sha_init(struct sha_ctx *ctx);
-void sha_update(struct sha_ctx *ctx, unsigned INT8 *buffer, unsigned INT32 len);
+void sha_update(struct sha_ctx *ctx, UINT8 *buffer, UINT32 len);
 void sha_final(struct sha_ctx *ctx);
-void sha_digest(struct sha_ctx *ctx, INT8 *s);
+void sha_digest(struct sha_ctx *ctx, UINT8 *s);
 void sha_copy(struct sha_ctx *dest, struct sha_ctx *src);
diff --git a/md5.c b/md5.c
index 3620f866..4b197285 100644
--- a/md5.c
+++ b/md5.c
@@ -46,9 +46,9 @@ void md5_init(struct md5_ctx *ctx)
   
 /* Perform the MD5 transformation on one full block of 16 32-bit words. */
    
-static void md5_transform(struct md5_ctx *ctx, unsigned INT32 *data)
+static void md5_transform(struct md5_ctx *ctx, UINT32 *data)
 {
-  unsigned INT32 a, b, c, d;
+  UINT32 a, b, c, d;
   a = ctx->digest[0];
   b = ctx->digest[1];
   c = ctx->digest[2];
@@ -138,9 +138,9 @@ static void md5_transform(struct md5_ctx *ctx, unsigned INT32 *data)
 			 | EXTRACT_UCHAR(s+1)) << 8)    \
 		       | EXTRACT_UCHAR(s))
   
-static void md5_block(struct md5_ctx *ctx, unsigned INT8 *block)
+static void md5_block(struct md5_ctx *ctx, UINT8 *block)
 {
-  unsigned INT32 data[MD5_DATALEN];
+  UINT32 data[MD5_DATALEN];
   int i;
   
   /* Update block count */
@@ -155,8 +155,8 @@ static void md5_block(struct md5_ctx *ctx, unsigned INT8 *block)
 }
 
 void md5_update(struct md5_ctx *ctx,
-		      unsigned INT8 *buffer,
-		      unsigned INT32 len)
+		      UINT8 *buffer,
+		      UINT32 len)
 {
   if (ctx->index)
   { /* Try to fill partial block */
@@ -191,7 +191,7 @@ void md5_update(struct md5_ctx *ctx,
 
 void md5_final(struct md5_ctx *ctx)
 {
-  unsigned INT32 data[MD5_DATALEN];
+  UINT32 data[MD5_DATALEN];
   int i;
   int words;
   
@@ -228,7 +228,7 @@ void md5_final(struct md5_ctx *ctx)
   md5_transform(ctx, data);
 }
 
-void md5_digest(struct md5_ctx *ctx, INT8 *s)
+void md5_digest(struct md5_ctx *ctx, UINT8 *s)
 {
   int i;
 
diff --git a/rc4.c b/rc4.c
index 0b302341..034c0ca5 100644
--- a/rc4.c
+++ b/rc4.c
@@ -11,11 +11,11 @@ RCSID("$Id$");
 
 #define SWAP(a,b) do { int _t = a; a = b; b = _t; } while(0)
 
-void rc4_set_key(struct rc4_ctx *ctx, const unsigned INT8 *key, INT32 len)
+void rc4_set_key(struct rc4_ctx *ctx, const UINT8 *key, UINT32 len)
 {
-  register unsigned INT8 j; /* Depends on the eight-bitness of these variables. */
+  register UINT8 j; /* Depends on the eight-bitness of these variables. */
   unsigned i;
-  INT32 k;
+  UINT32 k;
 
   /* Initialize context */
   i = 0;
@@ -32,15 +32,15 @@ void rc4_set_key(struct rc4_ctx *ctx, const unsigned INT8 *key, INT32 len)
   ctx->i = ctx->j = 0;
 }
 
-void rc4_crypt(struct rc4_ctx *ctx, unsigned INT8 *dest, const unsigned INT8 *src, INT32 len)
+void rc4_crypt(struct rc4_ctx *ctx, UINT8 *dest, const UINT8 *src, UINT32 len)
 {
-  register unsigned INT8 i, j; /* Depends on the eight-bitness of these variables */
+  register UINT8 i, j;
 
   i = ctx->i; j = ctx->j;
   while(len--)
     {
-      i++;
-      j += ctx->S[i];
+      i++; i &= 0xff;
+      j += ctx->S[i]; j &= 0xff;
       SWAP(ctx->S[i], ctx->S[j]);
       *dest++ = *src++ ^ ctx->S[ (ctx->S[i] + ctx->S[j]) & 0xff ];
     }
diff --git a/sha.c b/sha.c
index 6470da63..081369ee 100644
--- a/sha.c
+++ b/sha.c
@@ -139,9 +139,9 @@ void sha_init(struct sha_ctx *ctx)
 
    Note that this function destroys the data area */
 
-static void sha_transform(struct sha_ctx *ctx, unsigned INT32 *data )
+static void sha_transform(struct sha_ctx *ctx, UINT32 *data )
 {
-  unsigned INT32 A, B, C, D, E;     /* Local vars */
+  UINT32 A, B, C, D, E;     /* Local vars */
 
   /* Set up first buffer and local data buffer */
   A = ctx->digest[0];
@@ -254,9 +254,9 @@ static void sha_transform(struct sha_ctx *ctx, unsigned INT32 *data )
 			 | EXTRACT_UCHAR(s+2)) << 8)  \
 			 | EXTRACT_UCHAR(s+3))
 #else
-unsigned INT32 STRING2INT(unsigned INT8 *s)
+UINT32 STRING2INT(UINT8 *s)
 {
-  unsigned INT32 r;
+  UINT32 r;
   int i;
   
   for (i = 0, r = 0; i < 4; i++, s++)
@@ -265,9 +265,9 @@ unsigned INT32 STRING2INT(unsigned INT8 *s)
 }
 #endif
 
-static void sha_block(struct sha_ctx *ctx, unsigned INT8 *block)
+static void sha_block(struct sha_ctx *ctx, UINT8 *block)
 {
-  unsigned INT32 data[SHA_DATALEN];
+  UINT32 data[SHA_DATALEN];
   int i;
   
   /* Update block count */
@@ -281,7 +281,7 @@ static void sha_block(struct sha_ctx *ctx, unsigned INT8 *block)
   sha_transform(ctx, data);
 }
 
-void sha_update(struct sha_ctx *ctx, unsigned INT8 *buffer, unsigned INT32 len)
+void sha_update(struct sha_ctx *ctx, UINT8 *buffer, UINT32 len)
 {
   if (ctx->index)
     { /* Try to fill partial block */
@@ -316,7 +316,7 @@ void sha_update(struct sha_ctx *ctx, unsigned INT8 *buffer, unsigned INT32 len)
 
 void sha_final(struct sha_ctx *ctx)
 {
-  unsigned INT32 data[SHA_DATALEN];
+  UINT32 data[SHA_DATALEN];
   int i;
   int words;
   
@@ -352,7 +352,7 @@ void sha_final(struct sha_ctx *ctx)
   sha_transform(ctx, data);
 }
 
-void sha_digest(struct sha_ctx *ctx, INT8 *s)
+void sha_digest(struct sha_ctx *ctx, UINT8 *s)
 {
   int i;
 
-- 
GitLab