|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 3254 (0xcb6) Types: TextFile Names: »crack.h«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen └─⟦3da311d67⟧ »./cops/1.04/cops_104.tar.Z« └─⟦6a2577110⟧ └─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen └─⟦6a2577110⟧ »./cops/1.04/cops_104.tar« └─⟦this⟧ »cops_104/src/crack.h«
/* * This program is copyright Alec Muffett 1991 except for some portions of * code in "crack-fcrypt.c" which are copyright Robert Baldwin, Icarus * Sparry and Alec Muffett. The author(s) disclaims all responsibility or * liability with respect to it's usage or its effect upon hardware or * computer systems, and maintain copyright as set out in the "LICENCE" * document which accompanies distributions of Crack v4.0 and upwards. */ #define Log printf #include "conf.h" #define STRINGSIZE 255 extern void Trim (); extern char *Reverse (); extern char *Uppercase (); extern char *Lowercase (); extern char *Clone (); extern char *Mangle (); extern char *gethostname (); #ifdef FAST_TOCASE #define toupper(x) _toupper(x) #define tolower(x) _tolower(x) #endif /* #ifdef FCRYPT #define crypt(a,b) fcrypt(a,b) #endif */ #ifdef INDEX_NOT_STRCHR #define strchr(a,b) index(a,b) #endif struct USER { int done; /* bool flag */ char *filename; /* where we got it from */ char *passwd_txt; /* plaintext of password */ struct passwd passwd; /* ...guess... */ struct USER *across; /* line of users with same salt */ struct USER *next; /* next users with different salt */ }; struct DICT { char *word; /* simple linked list */ struct DICT *next; }; struct RULE { char *rule; struct RULE *next; }; #define STRCMP(x,y) ((x)[0] != (y)[0] ? -1 : strcmp((x),(y))) /* Rest of stuff is from crack-fcrypt.c */ #define reg register #define uns unsigned #define unsb uns char #define unsl uns long /* * Types for the different ways to represent DES bit patterns. Bits are * always right justified within fields. Bits which have lower indices in * the NBS spec are stored in the vax bits with less significance (e.g., Bit * 1 of NBS spec is stored in the bit with weight 2 ** 0 to the Vax. */ #define obpb1 unsb /* One bit per byte. */ #define sbpb6 unsb /* Six bits per byte, 6 held. */ #define sbpb6R unsb /* Six bits per byte Reversed order, 6 held. */ #define sbpb24 unsl /* Six bits per byte, 24 held. */ #define ebpb24 unsl /* Eight bits per bit, 24 held. */ #define fbpb4 unsb /* Four bits per byte, 4 held. */ #define fbpb4R unsb /* Four bits per byte Reversed order, 4 held. */ /* * The operation (6 * x) is often better optimised as this (for really * braindead compilers) - AEM */ #ifdef BRAINDEAD6 #define SIX_TIMES(exprn) (((exprn) << 2) + ((exprn) << 1)) #else #define SIX_TIMES(exprn) (6 * (exprn)) #endif /* BRAINDEAD6 */ /* DES transformation type... */ union SDATA { sbpb24 b[2]; sbpb6 c[8]; }; #ifndef FDES_8BYTE /* Not on a Cray */ #ifndef FDES_4BYTE /* Thanks to Matt Bishop for this idea -AEM. */ #define SIZEFIX 0 #define INDIRECT(a,b) (a)[b] #else #define SIZEFIX 2 /* "n" where 2^n == sizeof(sbpb24) */ #define INDIRECT(a,b) (*((sbpb24 *)(((unsigned char *) a) + (b)))) #endif #endif /* * These used to be rather slow and frequently used functions - AEM */ #define TF_TO_SIXBIT(tf) \ (sbpb24)((tf & 077L) | \ ((tf & 07700L) << 2) | \ ((tf & 0770000L) << 4) | \ ((tf & 077000000L) << 6)) #define SIXBIT_TO_TF(sb) \ (ebpb24)((sb & 0x3fL) | \ ((sb & 0x3f00L) >> 2) | \ ((sb & 0x3f0000L) >> 4) | \ ((sb & 0x3f000000L) >> 6))