35 lines
838 B
C
35 lines
838 B
C
#ifndef _IDEA_DEFINED
|
|
|
|
#define _IDEA_DEFINED
|
|
|
|
/* Defines for the PGP-style types used in IDEA.C */
|
|
|
|
#define byte unsigned char
|
|
#define word16 unsigned short int
|
|
#define word32 unsigned long int
|
|
|
|
/* Macros from PGP */
|
|
|
|
#define burn(x) memset( x, 0, sizeof( x ) )
|
|
|
|
/* IDEA algorithm constants */
|
|
|
|
#define IDEAKEYSIZE 16
|
|
#define IDEABLOCKSIZE 8
|
|
|
|
#define IDEAROUNDS 8
|
|
#define IDEAKEYLEN ( 6 * IDEAROUNDS + 4 )
|
|
|
|
/* Routines used to implement the IDEA encryption */
|
|
void ideaExpandKey( byte const *userkey, word16 *EK );
|
|
|
|
#ifdef _DCC
|
|
void ideaInvertKey( word16 *EK, word16 DK[IDEAKEYLEN] );
|
|
void ideaCipher( byte (inbuf[8]), byte (outbuf[8]), word16 *key );
|
|
#else
|
|
void ideaInvertKey( word16 const *EK, word16 DK[IDEAKEYLEN] );
|
|
void ideaCipher( byte const (inbuf[8]), byte (outbuf[8]), word16 const *key );
|
|
#endif
|
|
|
|
#endif /* _IDEA_DEFINED */
|