which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
100 lines
2.5 KiB
C
Executable File
100 lines
2.5 KiB
C
Executable File
/*
|
|
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 */
|