home *** CD-ROM | disk | FTP | other *** search
- /*
- crypt.h (full version) by Info-ZIP. Last revised: [see CR_VERSION_DATE]
-
- This header file is not copyrighted, and non-beta versions may be
- distributed without restriction.
- */
-
- #ifndef __crypt_h /* don't include more than once */
- #define __crypt_h
-
- #ifdef CRYPT
- # undef CRYPT
- #endif
- #define CRYPT 1 /* full version */
-
- #define CR_MAJORVER 2
- #define CR_MINORVER 7
- #ifdef CR_BETA
- # define CR_BETA_VER "m BETA"
- # define CR_VERSION_DATE "13 April 1997" /* last real code change */
- #else
- # define CR_BETA_VER ""
- # define CR_VERSION_DATE "22 April 1997" /* last public release date */
- # define CR_RELEASE
- #endif
-
- #ifndef __G /* UnZip only, for now (DLL stuff) */
- # define __G
- # define __G__
- # define __GDEF
- # define __GPRO void
- # define __GPRO__
- #endif
-
- #if defined(MSDOS) || defined(OS2) || defined(WIN32)
- # ifndef DOS_OS2_W32
- # define DOS_OS2_W32
- # endif
- #endif
-
- #if defined(DOS_OS2_W32) || defined(__human68k__)
- # ifndef DOS_H68_OS2_W32
- # define DOS_H68_OS2_W32
- # endif
- #endif
-
- #if defined(VM_CMS) || defined(MVS)
- # ifndef CMS_MVS
- # define CMS_MVS
- # endif
- #endif
-
- #ifdef REALLY_SHORT_SYMS
- # define decrypt_byte dcrbyt
- #endif
-
- #define PWLEN 80 /* input buffer size for reading encryption key */
- #define RAND_HEAD_LEN 12 /* length of encryption random header */
-
- /* the crc_32_tab array has to be provided externally for the crypt calculus */
- #ifndef UNZIP /* UnZip provides this in globals.h */
- extern ulg near *crc_32_tab;
- #endif /* !UNZIP */
-
- /* encode byte c, using temp t. Warning: c must not have side effects. */
- #define zencode(c,t) (t=decrypt_byte(__G), update_keys(c), t^(c))
-
- /* decode byte c in place */
- #define zdecode(c) update_keys(__G__ c ^= decrypt_byte(__G))
-
- int decrypt_byte OF((__GPRO));
- int update_keys OF((__GPRO__ int c));
- void init_keys OF((__GPRO__ char *passwd));
-
- #ifdef ZIP
- void crypthead OF((char *, ulg, FILE *));
- # ifdef UTIL
- int zipcloak OF((struct zlist far *, FILE *, FILE *, char *));
- int zipbare OF((__GPRO__ struct zlist far *, FILE *, FILE *, char *));
- # else
- unsigned zfwrite OF((zvoid *, extent, extent, FILE *));
- extern char *key;
- # endif
- #endif /* ZIP */
-
- #if (defined(UNZIP) && !defined(FUNZIP))
- int decrypt OF((__GPRO));
- #endif
-
- #ifdef FUNZIP
- extern int encrypted;
- # ifdef NEXTBYTE
- # undef NEXTBYTE
- # endif
- # define NEXTBYTE \
- (encrypted? update_keys(__G__ getc(G.in)^decrypt_byte(__G)) : getc(G.in))
- #endif /* FUNZIP */
-
- #endif /* !__crypt_h */
-