/* * * Encryption Header. Function prototypes and defines for encrypted MSUAM authentication * */ #ifndef DECR_KEY #define DECR_KEY 0 #define ENCR_KEY 1 #define ENCR_STD 2 #define ENCR_SES 4 #endif #define ENCR_RESULT_LENGTH 24 #define ENCRYPT 0 #define DECRYPT 1 #define LOCK_CRYPT() 0 #define UNLOCK_CRYPT() 0 #define StdEncrPwd "KGS!@#$%" #define GETBIT(p, bit) (unsigned char) ((p[bit >> 3] >> (7 - (bit & 07))) & 01) void UprCString(char* psz); unsigned char *OneWayFunction(unsigned char *pucPwd, unsigned char *pucDest, short scb); unsigned char *Encrypt(unsigned char *key, unsigned char *source, unsigned char *dest); unsigned pascal CryptIOCTL2(unsigned, unsigned char *, unsigned char *, unsigned char *); //short pascal DES_CBC( unsigned, unsigned char *, unsigned char *, unsigned char *, unsigned char *, unsigned); //void setkey(unsigned char *key); Boolean SetupUAMEncrypt( void ); void CleanupUAMEncrypt( void ); /*-------------------------------------------------------------------*\ The DES key table (schedule). Generated from the key. \*-------------------------------------------------------------------*/ typedef struct _KeyTbl { unsigned char KS[16][48]; } KeyTbl; void InitKey( unsigned char *Key, KeyTbl * ); void des(unsigned char *inbuf, unsigned char *outbuf, KeyTbl *, int crypt_mode); void key_table(unsigned char *key, KeyTbl *generatedKeyTable); void des_cipher(unsigned char *block, KeyTbl *keySchedule, int crypt_mode);