/* * This program is copyright Alec Muffett 1993. The author disclaims all * responsibility or liability with respect to it's usage or its effect * upon hardware or computer systems, and maintains copyright as set out * in the "LICENCE" document which accompanies distributions of Crack v4.0 * and upwards. */ #ifndef CRACKLIB_PACKER_H #define CRACKLIB_PACKER_H /* Moved here cause needed by mod_php */ #define STRINGSIZE 1024 #define TRUNCSTRINGSIZE (STRINGSIZE/4) #ifndef NUMWORDS #define NUMWORDS 16 #endif #define MAXWORDLEN 32 #define MAXBLOCKLEN (MAXWORDLEN * NUMWORDS) #ifdef IN_CRACKLIB #include #include #include #if defined(ENABLE_NLS) #include #define _(String) dgettext("cracklib", String) #else #define _(String) (String) #endif #if defined(HAVE_INTTYPES_H) #include #else #if defined(HAVE_STDINT_H) #include #else typedef unsigned int uint32_t; typedef unsigned short uint16_t; #endif #endif struct pi_header { uint32_t pih_magic; uint32_t pih_numwords; uint16_t pih_blocklen; uint16_t pih_pad; }; typedef struct { FILE *ifp; FILE *dfp; FILE *wfp; uint32_t flags; #define PFOR_WRITE 0x0001 #define PFOR_FLUSH 0x0002 #define PFOR_USEHWMS 0x0004 uint32_t hwms[256]; struct pi_header header; int count; char data[NUMWORDS][MAXWORDLEN]; } PWDICT; #define PW_WORDS(x) ((x)->header.pih_numwords) #define PIH_MAGIC 0x70775631 /* Internal routines */ extern char *GetPW(PWDICT *pwp, uint32_t number); #else /* Dummy structure, this is an internal only opaque data type */ typedef struct { int dummy; } PWDICT; #endif extern PWDICT *PWOpen(const char *prefix, char *mode); extern int PWClose(PWDICT *pwp); extern uint32_t FindPW(PWDICT *pwp, char *string); extern int PutPW(PWDICT *pwp, char *string); extern int PMatch(char *control, char *string); extern char *Mangle(char *input, char *control); extern char Chop(char *string); extern char *Trim(char *string); #endif