#define DES_BLOCKSIZE	8
#define MAXKEYLEN 	DES_BLOCKSIZE

#ifdef mips
typedef char *keyType;		/* mips won't recognize keyType x for void * */
#else
typedef void *keyType;
#endif

#if !defined(__STDC__) && !defined(__cplusplus)
extern void 	desMakeKey();
extern void 	desDestroyKey();
extern void 	des();
extern int  	desInBlockSize(); 
extern int  	desOutBlockSize(); 
extern void	desXor();

/* From descfb.c */
extern unsigned desCFB();
/* From deskey.c */
extern void 	desKey();
extern void	desStrMAC();
#else
#ifdef __cplusplus
extern "C" {

#endif
extern void desMakeKey(keyType *key, char *keystr, unsigned size, int decrFlag);
extern void desDestroyKey(keyType *key);
extern void des(char *dst, char *src, keyType key);
extern int  desInBlockSize(keyType); 
extern int  desOutBlockSize(keyType); 
extern void desXor(char *dst, char *src0, char *src1, unsigned size);

/* From descfb.c */
extern unsigned desCFB(
   char *dst, char *src, unsigned size, 
   char *iv, unsigned ivsize, keyType key, int decr
);

/* from deskey.c */
extern void desKey(char *keybits, char *str, int pad);
extern void 
   desStrMac(char *mac, char *src, unsigned len, char pad, keyType key);
#ifdef __cplusplus
}
#endif
#endif
