The files described below contain the encryption code for zip 2.0 and
unzip 5.0p1.  They constitute only an add-on to the exportable versions
(generally named zip20.zip or zip20.tar.Z, and unz50p1.tar.Z)
and cannot be used without the complete zip package.

This encryption code is not copyrighted and is put in the public domain. It
was originally written in Europe and can be freely distributed from
any country except the U.S.A. If this code is imported in the U.S.A,
it cannot be re-exported from the U.S.A to another country. (This
restriction might seem curious but this is what US law requires.)
However, Phil Katz has said that he got an export license for his
algorithm, so this hassle of separate distribution may cease one day.

LIKE ANYTHING ELSE THAT'S FREE, ZIP AND ITS ASSOCIATED UTILITIES ARE
PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR
IMPLIED. IN NO EVENT WILL THE AUTHORS BE LIABLE FOR ANY DAMAGES
RESULTING FROM THE USE OF THIS SOFTWARE.

The encryption code is a direct transcription of the algorithm from
Roger Schlafly, described by Phil Katz in the file appnote.txt. This
file is distributed with the PKZIP program (even in the version
without encryption capabilities). Note that the encryption will
probably resist attacks by amateurs if the password is well chosen and
long enough (at least 8 characters) but it will probably not resist
attacks by experts.  Short passwords consisting of lower case letters
only can be recovered in a few hours on any workstation. But for casual
cryptography designed to keep your mother from reading your mail, it's
OK.

zip 2.0 is is compatible with pkzip 2.04g. (Thanks to Phil Katz for accepting
our suggested minor changes to the zip file format.)

IMPORTANT NOTE:

  zip files produced by zip 2.0 must not be *updated* by zip 1.1 or
  pkzip 1.10 or pkzip 1.93a, if they contain encrypted members, or if
  they have been produced in a pipe or on a non seekable device. The
  old versions of zip or pkzip would destroy the zip structure. The
  old versions can list the contents of the zip file but cannot
  extract it anyway (because of the new compression algorithm).  If
  you do not use encryption and use regular disk files, you do not
  have to care about this problem.


Contents:

file               what it is
----               ----------
README             This file.
Where              where Zip/UnZip can be found
crypt.c            Code for encryption and decryption
crypt.h            Code for encryption and decryption
zipcloak.c         Main routine for ZipCloak.
unzpatch           Patch to the unzip 5.0p1 Makefile to get encryption support.

All of the files are in Unix (LF only) format. On MSDOS systems, you
can use the -a option of unzip to convert the source files to CRLF
format.  This is only necessary if you wish to edit the files -- they
will compile as is with Microsoft C and Turbo/Borland C++ 1.0 or
later.  However, you will have to convert the files (using unzip -a)
to the CRLF format to compile with the older Turbo C 1.0 or 2.0.  You
should be able to find unzip the same place you found this (see the file
Where for details).
