📄 crypt.h
字号:
/* Copyright (c) 1990-2000 Info-ZIP. All rights reserved. See the accompanying file LICENSE, version 2000-Apr-09 or later (the contents of which are also included in 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] */#ifndef __crypt_h /* don't include more than once */#define __crypt_h#ifdef CRYPT# undef CRYPT#endif#if !defined(NO_CRYPT)# define CRYPT 1 /* full version */#else# define CRYPT 0 /* dummy version */#endif#if CRYPT/* full version */#ifdef CR_BETA# undef CR_BETA /* this is not a beta release */#endif#define CR_MAJORVER 2#define CR_MINORVER 9#ifdef CR_BETA# define CR_BETA_VER "a BETA"# define CR_VERSION_DATE "9 April 2000" /* last real code change */#else# define CR_BETA_VER ""# define CR_VERSION_DATE "22 April 2000" /* 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 */#ifndef CRC_32_TAB /* UnZip provides this in globals.h */# if (!defined(USE_ZLIB) || defined(USE_OWN_CRCTAB)) extern ZCONST ulg near *crc_32_tab;# else extern ZCONST ulg Far *crc_32_tab;# endif#endif /* !CRC_32_TAB *//* 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -