| /* |
| * This is D3DES (V5.09) by Richard Outerbridge with the double and |
| * triple-length support removed for use in VNC. |
| * |
| * These changes are: |
| * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. |
| * |
| * This software is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| */ |
| |
| /* 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 EN0 0 /* MODE == encrypt */ |
| #define DE1 1 /* MODE == decrypt */ |
| |
| /* init to 0 */ |
| typedef struct { |
| unsigned long KnL[32]; |
| } DESContext; |
| |
| extern void deskey (DESContext * ctx, unsigned char *, int); |
| |
| /* 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 (DESContext * ctx, unsigned long *); |
| |
| /* cookedkey[32] |
| * Loads the internal key register with the data in cookedkey. |
| */ |
| |
| extern void cpkey (DESContext * ctx, unsigned long *); |
| |
| /* cookedkey[32] |
| * Copies the contents of the internal key register into the storage |
| * located at &cookedkey[0]. |
| */ |
| |
| extern void des (DESContext * ctx, 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. |
| */ |
| |
| /* d3des.h V5.09 rwo 9208.04 15:06 Graven Imagery |
| ********************************************************************/ |