~ubuntu-branches/ubuntu/precise/boinc/precise

« back to all changes in this revision

Viewing changes to zip/unzip/crypt.h

Tags: 6.12.8+dfsg-1
* New upstream release.
* Simplified debian/rules

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
  Copyright (c) 1990-2000 Info-ZIP.  All rights reserved.
3
 
 
4
 
  See the accompanying file LICENSE, version 2000-Apr-09 or later
5
 
  (the contents of which are also included in zip.h) for terms of use.
6
 
  If, for some reason, all these files are missing, the Info-ZIP license
7
 
  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
8
 
*/
9
 
/*
10
 
  crypt.h (full version) by Info-ZIP.   Last revised:  [see CR_VERSION_DATE]
11
 
 
12
 
  This encryption/decryption source code for Info-Zip software was
13
 
  originally written in Europe.  The whole source package can be
14
 
  freely distributed, including from the USA.  (Prior to January 2000,
15
 
  re-export from the US was a violation of US law.)
16
 
 
17
 
  NOTE on copyright history:
18
 
  Previous versions of this source package (up to version 2.8) were
19
 
  not copyrighted and put in the public domain.  If you cannot comply
20
 
  with the Info-Zip LICENSE, you may want to look for one of those
21
 
  public domain versions.
22
 
 */
23
 
 
24
 
#ifndef __crypt_h   /* don't include more than once */
25
 
#define __crypt_h
26
 
 
27
 
#ifdef CRYPT
28
 
#  undef CRYPT
29
 
#endif
30
 
/*
31
 
   Logic of selecting "full crypt" code:
32
 
   a) default behaviour:
33
 
      - dummy crypt code when used to compile Zip
34
 
        (because we do not distribute encrypting versions of Zip from US
35
 
        servers)
36
 
      - dummy crypt code when compiling UnZipSFX stub, to minimize size
37
 
      - full crypt code when used to compile UnZip and fUnZip
38
 
   b) USE_CRYPT defined:
39
 
      - always full crypt code
40
 
   c) NO_CRYPT defined:
41
 
      - never full crypt code
42
 
   NO_CRYPT takes precedence over USE_CRYPT
43
 
 */
44
 
#if defined(NO_CRYPT)
45
 
#  define CRYPT  0  /* dummy version */
46
 
#else
47
 
#if defined(USE_CRYPT)
48
 
#  define CRYPT  1  /* full version */
49
 
#else
50
 
#if (!defined(ZIP) && !defined(SFX))
51
 
#  define CRYPT  1  /* full version */
52
 
#else
53
 
#  define CRYPT  0  /* dummy version */
54
 
#endif
55
 
#endif /* ?USE_CRYPT */
56
 
#endif /* ?NO_CRYPT */
57
 
 
58
 
#if CRYPT
59
 
/* full version */
60
 
 
61
 
#ifdef CR_BETA
62
 
#  undef CR_BETA    /* this is not a beta release */
63
 
#endif
64
 
 
65
 
#define CR_MAJORVER        2
66
 
#define CR_MINORVER        9
67
 
#ifdef CR_BETA
68
 
#  define CR_BETA_VER      "a BETA"
69
 
#  define CR_VERSION_DATE  "05 May 2000"       /* last real code change */
70
 
#else
71
 
#  define CR_BETA_VER      ""
72
 
#  define CR_VERSION_DATE  "05 May 2000"       /* last public release date */
73
 
#  define CR_RELEASE
74
 
#endif
75
 
 
76
 
#ifndef __G         /* UnZip only, for now (DLL stuff) */
77
 
#  define __G
78
 
#  define __G__
79
 
#  define __GDEF
80
 
#  define __GPRO    void
81
 
#  define __GPRO__
82
 
#endif
83
 
 
84
 
#if defined(MSDOS) || defined(OS2) || defined(WIN32)
85
 
#  ifndef DOS_OS2_W32
86
 
#    define DOS_OS2_W32
87
 
#  endif
88
 
#endif
89
 
 
90
 
#if defined(DOS_OS2_W32) || defined(__human68k__)
91
 
#  ifndef DOS_H68_OS2_W32
92
 
#    define DOS_H68_OS2_W32
93
 
#  endif
94
 
#endif
95
 
 
96
 
#if defined(VM_CMS) || defined(MVS)
97
 
#  ifndef CMS_MVS
98
 
#    define CMS_MVS
99
 
#  endif
100
 
#endif
101
 
 
102
 
/* To allow combining of Zip and UnZip static libraries in a single binary,
103
 
 * the Zip and UnZip versions of the crypt core functions have to be named
104
 
 * differently.
105
 
 */
106
 
#ifdef ZIP
107
 
#  ifdef REALLY_SHORT_SYMS
108
 
#    define decrypt_byte   zdcrby
109
 
#  else
110
 
#    define decrypt_byte   zp_decrypt_byte
111
 
#  endif
112
 
#  define  update_keys     zp_update_keys
113
 
#  define  init_keys       zp_init_keys
114
 
#else /* !ZIP */
115
 
#  ifdef REALLY_SHORT_SYMS
116
 
#    define decrypt_byte   dcrbyt
117
 
#  endif
118
 
#endif /* ?ZIP */
119
 
 
120
 
#define IZ_PWLEN  80    /* input buffer size for reading encryption key */
121
 
#ifndef PWLEN           /* for compatibility with previous zcrypt release... */
122
 
#  define PWLEN IZ_PWLEN
123
 
#endif
124
 
#define RAND_HEAD_LEN  12       /* length of encryption random header */
125
 
 
126
 
/* the crc_32_tab array has to be provided externally for the crypt calculus */
127
 
#ifndef CRC_32_TAB                   /* UnZip provides this in globals.h */
128
 
# if (!defined(USE_ZLIB) || defined(USE_OWN_CRCTAB))
129
 
   extern ZCONST ulg near *crc_32_tab;
130
 
# else
131
 
   extern ZCONST ulg Far *crc_32_tab;
132
 
# endif
133
 
#endif /* !CRC_32_TAB */
134
 
 
135
 
/* encode byte c, using temp t.  Warning: c must not have side effects. */
136
 
#define zencode(c,t)  (t=decrypt_byte(__G), update_keys(c), t^(c))
137
 
 
138
 
/* decode byte c in place */
139
 
#define zdecode(c)   update_keys(__G__ c ^= decrypt_byte(__G))
140
 
 
141
 
int  decrypt_byte OF((__GPRO));
142
 
int  update_keys OF((__GPRO__ int c));
143
 
void init_keys OF((__GPRO__ ZCONST char *passwd));
144
 
 
145
 
#ifdef ZIP
146
 
   void crypthead OF((ZCONST char *, ulg, FILE *));
147
 
#  ifdef UTIL
148
 
     int zipcloak OF((struct zlist far *, FILE *, FILE *, ZCONST char *));
149
 
     int zipbare OF((struct zlist far *, FILE *, FILE *, ZCONST char *));
150
 
#  else
151
 
     unsigned zfwrite OF((zvoid *, extent, extent, FILE *));
152
 
     extern char *key;
153
 
#  endif
154
 
#endif /* ZIP */
155
 
 
156
 
#if (defined(UNZIP) && !defined(FUNZIP))
157
 
   int  decrypt OF((__GPRO__ ZCONST char *passwrd));
158
 
#endif
159
 
 
160
 
#ifdef FUNZIP
161
 
   extern int encrypted;
162
 
#  ifdef NEXTBYTE
163
 
#    undef NEXTBYTE
164
 
#  endif
165
 
#  define NEXTBYTE \
166
 
   (encrypted? update_keys(__G__ getc(G.in)^decrypt_byte(__G)) : getc(G.in))
167
 
#endif /* FUNZIP */
168
 
 
169
 
#else /* !CRYPT */
170
 
/* dummy version */
171
 
 
172
 
#define zencode
173
 
#define zdecode
174
 
 
175
 
#define zfwrite  fwrite
176
 
 
177
 
#endif /* ?CRYPT */
178
 
#endif /* !__crypt_h */