| 
							- /*
 -   Copyright (c) 1990-2007 Info-ZIP.  All rights reserved.
 - 
 -   See the accompanying file LICENSE, version 2005-Feb-10 or later
 -   (the contents of which are also included in (un)zip.h) for terms of use.
 -   If, for some reason, all these files are missing, the Info-ZIP license
 -   also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
 - */
 - /*
 -   crypt.h (full version) by Info-ZIP.   Last revised:  [see CR_VERSION_DATE]
 - 
 -   The main encryption/decryption source code for Info-Zip software was
 -   originally written in Europe.  To the best of our knowledge, it can
 -   be freely distributed in both source and object forms from any country,
 -   including the USA under License Exception TSU of the U.S. Export
 -   Administration Regulations (section 740.13(e)) of 6 June 2002.
 - 
 -   NOTE on copyright history:
 -   Previous versions of this source package (up to version 2.8) were
 -   not copyrighted and put in the public domain.  If you cannot comply
 -   with the Info-Zip LICENSE, you may want to look for one of those
 -   public domain versions.
 -  */
 - 
 - #ifndef __crypt_h   /* don't include more than once */
 - #define __crypt_h
 - 
 - #ifdef CRYPT
 - #  undef CRYPT
 - #endif
 - /*
 -    Logic of selecting "full crypt" code:
 -    a) default behaviour:
 -       - dummy crypt code when compiling UnZipSFX stub, to minimize size
 -       - full crypt code when used to compile Zip, UnZip and fUnZip
 -    b) USE_CRYPT defined:
 -       - always full crypt code
 -    c) NO_CRYPT defined:
 -       - never full crypt code
 -    NO_CRYPT takes precedence over USE_CRYPT
 -  */
 - #if defined(NO_CRYPT)
 - #  define CRYPT  0  /* dummy version */
 - #else
 - #if defined(USE_CRYPT)
 - #  define CRYPT  1  /* full version */
 - #else
 - #if !defined(SFX)
 - #  define CRYPT  1  /* full version for zip and main unzip */
 - #else
 - #  define CRYPT  0  /* dummy version for unzip sfx */
 - #endif
 - #endif /* ?USE_CRYPT */
 - #endif /* ?NO_CRYPT */
 - 
 - #if CRYPT
 - /* full version */
 - 
 - #ifdef CR_BETA
 - #  undef CR_BETA    /* this is not a beta release */
 - #endif
 - 
 - #define CR_MAJORVER        2
 - #define CR_MINORVER        11
 - #ifdef CR_BETA
 - #  define CR_BETA_VER      "c BETA"
 - #  define CR_VERSION_DATE  "05 Jan 2007"       /* last real code change */
 - #else
 - #  define CR_BETA_VER      ""
 - #  define CR_VERSION_DATE  "05 Jan 2007"       /* 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
 - 
 - /* To allow combining of Zip and UnZip static libraries in a single binary,
 -  * the Zip and UnZip versions of the crypt core functions have to be named
 -  * differently.
 -  */
 - #ifdef ZIP
 - #  ifdef REALLY_SHORT_SYMS
 - #    define decrypt_byte   zdcrby
 - #  else
 - #    define decrypt_byte   zp_decrypt_byte
 - #  endif
 - #  define  update_keys     zp_update_keys
 - #  define  init_keys       zp_init_keys
 - #else /* !ZIP */
 - #  ifdef REALLY_SHORT_SYMS
 - #    define decrypt_byte   dcrbyt
 - #  endif
 - #endif /* ?ZIP */
 - 
 - #define IZ_PWLEN  80    /* input buffer size for reading encryption key */
 - #ifndef PWLEN           /* for compatibility with previous zcrypt release... */
 - #  define PWLEN IZ_PWLEN
 - #endif
 - #define RAND_HEAD_LEN  12       /* length of encryption random header */
 - 
 - /* the crc_32_tab array has to be provided externally for the crypt calculus */
 - 
 - /* 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__ ZCONST char *passwd));
 - 
 - #ifdef ZIP
 -    void crypthead OF((ZCONST char *, ulg, FILE *));
 - #  ifdef UTIL
 -      int zipcloak OF((struct zlist far *, FILE *, FILE *, ZCONST char *));
 -      int zipbare OF((struct zlist far *, FILE *, FILE *, ZCONST char *));
 - #  else
 -      unsigned zfwrite OF((zvoid *, extent, extent, FILE *));
 -      extern char *key;
 - #  endif
 - #endif /* ZIP */
 - 
 - #if (defined(UNZIP) && !defined(FUNZIP))
 -    int  decrypt OF((__GPRO__ ZCONST char *passwrd));
 - #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 */
 - 
 - #else /* !CRYPT */
 - /* dummy version */
 - 
 - #define zencode
 - #define zdecode
 - 
 - #define zfwrite  fwrite
 - 
 - #endif /* ?CRYPT */
 - #endif /* !__crypt_h */
 
 
  |