d3des.h
上传用户:qd_success
上传日期:2013-04-09
资源大小:8k
文件大小:4k
- /* d3des.h -
- *
- * Headers and defines for d3des.c
- * Graven Imagery, 1992.
- *
- * Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge
- * (GEnie : OUTER; CIS : [71755,204])
- */
- #define D2_DES /* include double-length support */
- #define D3_DES /* include triple-length support */
- #ifdef D3_DES
- #ifndef D2_DES
- #define D2_DES /* D2_DES is needed for D3_DES */
- #endif
- #endif
- #define EN0 0 /* MODE == encrypt */
- #define DE1 1 /* MODE == decrypt */
- /* A useful alias on 68000-ish machines, but NOT USED HERE. */
- typedef union {
- unsigned long blok[2];
- unsigned short word[4];
- unsigned char byte[8];
- } M68K;
- extern void deskey(unsigned char *, short);
- /* hexkey[8] MODE
- * Sets the internal key register according to the hexadecimal
- * key contained in the 8 bytes of hexkey, according to the DES,
- * for encryption or decryption according to MODE.
- */
- extern void usekey(unsigned long *);
- /* cookedkey[32]
- * Loads the internal key register with the data in cookedkey.
- */
- extern void cpkey(unsigned long *);
- /* cookedkey[32]
- * Copies the contents of the internal key register into the storage
- * located at &cookedkey[0].
- */
- extern void des(unsigned char *, unsigned char *);
- /* from[8] to[8]
- * Encrypts/Decrypts (according to the key currently loaded in the
- * internal key register) one block of eight bytes at address 'from'
- * into the block at address 'to'. They can be the same.
- */
- #ifdef D2_DES
- #define desDkey(a,b) des2key((a),(b))
- extern void des2key(unsigned char *, short);
- /* hexkey[16] MODE
- * Sets the internal key registerS according to the hexadecimal
- * keyS contained in the 16 bytes of hexkey, according to the DES,
- * for DOUBLE encryption or decryption according to MODE.
- * NOTE: this clobbers all three key registers!
- */
- extern void Ddes(unsigned char *, unsigned char *);
- /* from[8] to[8]
- * Encrypts/Decrypts (according to the keyS currently loaded in the
- * internal key registerS) one block of eight bytes at address 'from'
- * into the block at address 'to'. They can be the same.
- */
- extern void D2des(unsigned char *, unsigned char *);
- /* from[16] to[16]
- * Encrypts/Decrypts (according to the keyS currently loaded in the
- * internal key registerS) one block of SIXTEEN bytes at address 'from'
- * into the block at address 'to'. They can be the same.
- */
- extern void makekey(char *, unsigned char *);
- /* *password, single-length key[8]
- * With a double-length default key, this routine hashes a NULL-terminated
- * string into an eight-byte random-looking key, suitable for use with the
- * deskey() routine.
- */
- #define makeDkey(a,b) make2key((a),(b))
- extern void make2key(char *, unsigned char *);
- /* *password, double-length key[16]
- * With a double-length default key, this routine hashes a NULL-terminated
- * string into a sixteen-byte random-looking key, suitable for use with the
- * des2key() routine.
- */
- #ifndef D3_DES /* D2_DES only */
- #define useDkey(a) use2key((a))
- #define cpDkey(a) cp2key((a))
- extern void use2key(unsigned long *);
- /* cookedkey[64]
- * Loads the internal key registerS with the data in cookedkey.
- * NOTE: this clobbers all three key registers!
- */
- extern void cp2key(unsigned long *);
- /* cookedkey[64]
- * Copies the contents of the internal key registerS into the storage
- * located at &cookedkey[0].
- */
- #else /* D3_DES too */
- #define useDkey(a) use3key((a))
- #define cpDkey(a) cp3key((a))
- extern void des3key(unsigned char *, short);
- /* hexkey[24] MODE
- * Sets the internal key registerS according to the hexadecimal
- * keyS contained in the 24 bytes of hexkey, according to the DES,
- * for DOUBLE encryption or decryption according to MODE.
- */
- extern void use3key(unsigned long *);
- /* cookedkey[96]
- * Loads the 3 internal key registerS with the data in cookedkey.
- */
- extern void cp3key(unsigned long *);
- /* cookedkey[96]
- * Copies the contents of the 3 internal key registerS into the storage
- * located at &cookedkey[0].
- */
- extern void make3key(char *, unsigned char *);
- /* *password, triple-length key[24]
- * With a triple-length default key, this routine hashes a NULL-terminated
- * string into a twenty-four-byte random-looking key, suitable for use with
- * the des3key() routine.
- */
- #endif /* D3_DES */
- #endif /* D2_DES */
- /* d3des.h V5.09 rwo 9208.04 15:06 Graven Imagery
- ********************************************************************/