/* Prototypes for functions defined in
zunzip.c
 */

extern long csize;

extern unsigned long mask_bits[33];

extern unsigned char * inbuf;

extern unsigned char * inptr;

extern int incnt;

extern unsigned long bitbuf;

extern int bits_left;

extern unsigned char zipeof;

extern int zipfd;

extern unsigned char * outbuf;

extern unsigned char * outptr;

extern unsigned char * outout;

extern long outpos;

extern int outcnt;

extern int outfd;

int unzip(struct __iobuf * , struct __iobuf * );

/* Prototypes for functions defined in
ztrees.c
 */

void ct_init(unsigned short * , int * );

void ct_free(void);

unsigned long flush_block(char * , unsigned long , int );

int ct_tally(int , int );

/* Prototypes for functions defined in
zipup.c
 */

int zipup(struct __iobuf * , struct __iobuf * );

int read_buf(char * , unsigned int );

/* Prototypes for functions defined in
zip.c
 */

void err(int , char * );

void error(char * );

/* Prototypes for functions defined in
zinflate.c
 */

extern unsigned int wp;

extern unsigned long bb;

extern unsigned int bk;

extern unsigned short bytebuf;

extern int lbits;

extern int dbits;

extern unsigned int hufts;

int huft_build(unsigned int * , unsigned int , unsigned int , unsigned short * , unsigned short * , struct huft ** , int * );

int huft_free(struct huft * );

void flush(unsigned int );

int inflate_codes(struct huft * , struct huft * , int , int );

int inflate_stored(void);

int inflate_fixed(void);

int inflate_dynamic(void);

int inflate_block(int * );

int inflate_entry(void);

void inflate(void);

/* Prototypes for functions defined in
zglobals.c
 */

extern char * errors[18];

extern int method;

extern int level;

extern char * special;

/* Prototypes for functions defined in
zfile_io.c
 */

int FillBitBuffer(void);

int ReadByte(unsigned short * );

int FlushOutput(void);

/* Prototypes for functions defined in
zdeflate.c
 */

extern unsigned char * window;

extern unsigned short * prev;

extern long block_start;

extern unsigned int prev_length;

extern unsigned int strstart;

extern unsigned int match_start;

extern unsigned int max_chain_length;

extern int good_match;

void lm_init(int , unsigned short * );

void lm_free(void);

int longest_match(unsigned int );

unsigned long deflate(void);

/* Prototypes for functions defined in
zbits.c
 */

void bi_init(struct __iobuf * );

void send_bits(int , int );

unsigned int bi_reverse(unsigned int , int );

void bi_windup(void);

void copy_block(char * , unsigned int , int );

/* Prototypes for functions defined in
rsaglue.c
 */

int rsa_public_encrypt(unsigned long * , unsigned char * , short , unsigned long * , unsigned long * );

int rsa_private_encrypt(unsigned long * , unsigned char * , short , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * );

int rsa_public_decrypt(unsigned char * , unsigned long * , unsigned long * , unsigned long * );

int rsa_private_decrypt(unsigned char * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * );

/* Prototypes for functions defined in
charset.c
 */

extern int CONVERSION;

extern unsigned char * ext_c_ptr;

extern char charset[64];

void init_charset(void);

char EXT_C(char );

char INT_C(char );

int to_upper(int );

int to_lower(int );

/* Prototypes for functions defined in
keymaint.c
 */

extern int marg_min;

extern int compl_min;

extern char trust_lst[8][16];

extern char legit_lst[4][16];

extern char floppyring[256];

extern int max_cert_depth;

int maint_update(char * );

int maint_check(char * , int );

int maint_list(char * );

void init_trust_lst(void);

int ask_owntrust(char * , unsigned char );

long lookup_by_keyID(struct __iobuf * , unsigned char * );

void show_userid(struct __iobuf * , unsigned char * );

int show_key(struct __iobuf * , long , int );

void show_update(char * );

int readkpacket(struct __iobuf * , unsigned char * , char * , unsigned char * , unsigned char * );

void write_trust_pos(struct __iobuf * , unsigned char , long );

int read_trust(struct __iobuf * , unsigned char * );

char * user_from_keyID(unsigned char * );

int setkrent(char * );

void endkrent(void);

int init_userhash(void);

extern long totalsize;

/* Prototypes for functions defined in
config.c
 */

int processConfigLine(char * );

int processConfigFile(char * );

/* Prototypes for functions defined in
keyadd.c
 */

int _addto_keyring(char * , char * );

int addto_keyring(char * , char * );

int get_publickey(long * , int * , unsigned char * , unsigned char * , unsigned char * , unsigned long * , unsigned long * );

int gpk_open(char * );

void gpk_close(void);

/* Prototypes for functions defined in
getopt.c
 */

extern int opterr;

extern int optind;

extern int optopt;

extern char * optarg;

int getopt(int , char ** , char * );

/* Prototypes for functions defined in
language.c
 */

extern char language[16];

char * PSTR(char * );

/* Prototypes for functions defined in
system.c
 */

extern char * requesterdesc;

int AmigaRequestString(char * , int , int );

int sendpacket(struct MsgPort * , long , long );

void ttycbreak(void);

void ttynorm(void);

int getch(void);

int kbhit(void);

void __regargs _CXBRK(void);

char * __strlwr(char * );

/* Prototypes for functions defined in
md5.c
 */

void MD5Init(struct { unsigned long buf[4]; unsigned long i[2]; unsigned char in[64];  }  * );

void MD5Update(struct { unsigned long buf[4]; unsigned long i[2]; unsigned char in[64];  }  * , unsigned char * , unsigned int );

void MD5Final(unsigned char * , struct { unsigned long buf[4]; unsigned long i[2]; unsigned char in[64];  }  * );

void Transform(unsigned long * , unsigned long * );

/* Prototypes for functions defined in
passwd.c
 */

extern unsigned char showpass;

void hashpass(char * , int , unsigned char * );

int GetHashedPassPhrase(char * , unsigned char );

/* Prototypes for functions defined in
idea.c
 */

void initcfb_idea(unsigned short * , unsigned char * , unsigned char );

void ideacfb(unsigned char * , int );

void close_idea(void);

void init_idearand(unsigned char * , unsigned char * , unsigned long );

unsigned char idearand(void);

void close_idearand(void);

/* Prototypes for functions defined in
random.c
 */

extern int aecho;

short randload(short );

void randflush(void);

short try_randombyte(void);

short randombyte(void);

void randaccum_later(short );

void randaccum(short );

int getstring(char * , int , unsigned char );

void flush_input(void);

/* Prototypes for functions defined in
rsagen.c
 */

int rsa_keygen(unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , short , short );

/* Prototypes for functions defined in
genprime.c
 */

int randomprime(unsigned long * , short );

void mp_gcd(unsigned long * , unsigned long * , unsigned long * );

void mp_inv(unsigned long * , unsigned long * , unsigned long * );

/* Prototypes for functions defined in
mpiio.c
 */

int string_length(char * );

void mp_display(char * , unsigned long * );

unsigned short checksum(unsigned char * , unsigned short );

void cbc_xor(unsigned long * , unsigned long * , unsigned short );

void hiloswap(unsigned char * , short );

unsigned short fetch_word16(unsigned char * );

unsigned char * put_word16(unsigned short , unsigned char * );

unsigned long fetch_word32(unsigned char * );

unsigned char * put_word32(unsigned long , unsigned char * );

short mpi2reg(unsigned long * , unsigned char * );

short reg2mpi(unsigned char * , unsigned long * );

/* Prototypes for functions defined in
mpilib.c
 */

extern short global_precision;

void mp_shift_right_bits(unsigned long * , short );

short mp_compare(unsigned long * , unsigned long * );

unsigned char mp_inc(unsigned long * );

unsigned char mp_dec(unsigned long * );

void mp_neg(unsigned long * );

void mp_init(unsigned long * , unsigned short );

short significance(unsigned long * );

int mp_udiv(unsigned long * , unsigned long * , unsigned long * , unsigned long * );

int mp_recip(unsigned long * , unsigned long * );

int mp_div(unsigned long * , unsigned long * , unsigned long * , unsigned long * );

unsigned short mp_shortdiv(unsigned long * , unsigned long * , unsigned short );

int mp_mod(unsigned long * , unsigned long * , unsigned long * );

unsigned short mp_shortmod(unsigned long * , unsigned short );

int mp_mult(unsigned long * , unsigned long * , unsigned long * );

extern short munit_prec;

void mp_dmul(unsigned long * , unsigned long * , unsigned long * );

int stage_upton_modulus(unsigned long * );

int upton_modmult(unsigned long * , unsigned long * , unsigned long * );

void upton_burn(void);

int countbits(unsigned long * );

char * copyright_notice(void);

int mp_modexp(unsigned long * , unsigned long * , unsigned long * , unsigned long * );

int mp_modexp_crt(unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * );

/* Prototypes for functions defined in
armor.c
 */

unsigned long crcbytes(unsigned char * , unsigned int , unsigned long );

void init_crc(void);

extern int pem_lines;

int armor_file(char * , char * , char * , char * );

int de_armor_file(char * , char * , long * );

unsigned char is_armor_file(char * , long );

/* Prototypes for functions defined in
more.c
 */

extern char pager[80];

int more_file(char * );

int open_more(void);

int close_more(void);

/* Prototypes for functions defined in
mdfile.c
 */

int MDfile0_len(struct { unsigned long buf[4]; unsigned long i[2]; unsigned char in[64];  }  * , struct __iobuf * , unsigned long );

int MDfile(struct { unsigned long buf[4]; unsigned long i[2]; unsigned char in[64];  }  * , char * );

void MD_addbuffer(struct { unsigned long buf[4]; unsigned long i[2]; unsigned char in[64];  }  * , unsigned char * , int , unsigned char * );

/* Prototypes for functions defined in
fileio.c
 */

extern unsigned char textbuf[4096];

unsigned char file_exists(char * );

int wipefile(char * );

char * file_tail(char * );

unsigned char has_extension(char * , char * );

unsigned char is_tempfile(char * );

unsigned char no_extension(char * );

void drop_extension(char * );

void default_extension(char * , char * );

void force_extension(char * , char * );

unsigned char getyesno(char );

char * maybe_force_extension(char * , char * );

char * buildfilename(char * , char * );

void file_to_canon(char * );

int write_error(struct __iobuf * );

int copyfile(struct __iobuf * , struct __iobuf * , unsigned long );

int copyfilepos(struct __iobuf * , struct __iobuf * , unsigned long , unsigned long );

int copyfile_to_canon(struct __iobuf * , struct __iobuf * , unsigned long );

int copyfile_from_canon(struct __iobuf * , struct __iobuf * , unsigned long );

int copyfiles_by_name(char * , char * );

int make_canonical(char * , char * );

int rename2(char * , char * );

int readPhantomInput(char * );

int writePhantomOutput(char * );

unsigned long fsize(struct __iobuf * );

int is_text_file(char * );

void * xmalloc(unsigned int );

void settmpdir(char * );

void setoutdir(char * );

char * tempfile(int );

void rmtemp(char * );

char * savetemp(char * , char * );

int savetempbak(char * , char * );

void cleanup_tmpf(void);

/* Prototypes for functions defined in
keymgmt.c
 */

int is_key_ctb(unsigned char );

char * keyIDstring(unsigned char * );

void extract_keyID(unsigned char * , unsigned long * );

char * key2IDstring(unsigned long * );

void writekeyID(unsigned long * , struct __iobuf * );

void write_trust(struct __iobuf * , unsigned char );

short nextkeypacket(struct __iobuf * , unsigned char * );

short readkeypacket(struct __iobuf * , unsigned char , unsigned char * , unsigned char * , char * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned char * , unsigned char * );

int getpublickey(int , char * , long * , int * , unsigned char * , unsigned char * , unsigned char * , unsigned long * , unsigned long * );

int getpubuserid(char * , long , unsigned char * , long * , int * , unsigned char );

int getpubusersig(char * , long , unsigned char * , unsigned char * , long * , int * );

int getsecretkey(int , char * , unsigned char * , unsigned char * , unsigned char * , unsigned char * , unsigned char * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * , unsigned long * );

int is_compromised(struct __iobuf * );

void getKeyHash(unsigned char * , unsigned long * , unsigned long * );

void printKeyHash(unsigned char * , unsigned char );

void showKeyHash(unsigned long * , unsigned long * );

int view_keyring(char * , char * , unsigned char , unsigned char );

int dokeycheck(char * , char * , int );

int backup_rename(char * , char * );

int remove_sigs(char * , char * );

int remove_from_keyring(unsigned char * , char * , char * , unsigned char );

int extract_from_keyring(char * , char * , char * , unsigned char );

int dokeyedit(char * , char * );

int disable_key(char * , char * );

int dokeygen(char * , char * );

/* Prototypes for functions defined in
crypto.c
 */

extern int version_byte;

void CToPascal(char * );

void PascalToC(char * );

unsigned long get_timestamp(unsigned char * );

char * cdate(unsigned long * );

char * ctdate(unsigned long * );

unsigned char legal_ctb(unsigned char );

int version_error(int , int );

int version_range_error(int , int , int );

int seedfile_exists(void);

void create_seedfile(void);

int make_random_ideakey(unsigned char * );

unsigned long getpastlength(unsigned char , struct __iobuf * );

void write_ctb_len(struct __iobuf * , unsigned char , unsigned long , unsigned char );

extern unsigned short mpi_checksum;

int read_mpi(unsigned long * , struct __iobuf * , unsigned char , unsigned char );

void write_mpi(unsigned long * , struct __iobuf * , unsigned char );

int get_header_info_from_file(char * , unsigned char * , int );

int signfile(unsigned char , unsigned char , char * , char * , char * , char , char * );

int compromise(unsigned char * , char * );

int signkey(char * , char * , char * );

int check_signaturefile(char * , char * , unsigned char , char * );

int check_key_sig(struct __iobuf * , long , int , char * , struct __iobuf * , long , char * , char * , unsigned char * , unsigned char * );

int squish_file(char * , char * );

int idea_encryptfile(char * , char * , unsigned char );

int encryptfile(char ** , char * , char * , unsigned char );

int make_literal(char * , char * , char , char * );

int strip_literal(char * , char * , char * , char * );

int decryptfile(char * , char * );

int idea_decryptfile(char * , char * );

int decompress_file(char * , char * );

/* Prototypes for functions defined in
pgp.c
 */

extern char rel_version[6];

extern char armor_version[20];

extern char PGP_EXTENSION[5];

extern char ASC_EXTENSION[5];

extern char SIG_EXTENSION[5];

extern char BAK_EXTENSION[5];

extern char CONSOLE_FILENAME[9];

extern char PUBLIC_KEYRING_FILENAME[32];

extern char SECRET_KEYRING_FILENAME[32];

extern char RANDSEED_FILENAME[32];

extern unsigned char verbose;

extern struct __iobuf * pgpout;

int compressSignature(unsigned char * );

extern unsigned char emit_radix_64;

extern unsigned char moreflag;

extern unsigned char filter_mode;

extern unsigned char clear_signatures;

extern unsigned char strip_spaces;

extern unsigned char encrypt_to_self;

extern unsigned char batchmode;

extern unsigned char quietmode;

extern unsigned char force_flag;

extern unsigned char pkcs_compat;

extern char literal_mode;

extern char my_name[256];

extern unsigned char keepctx;

extern unsigned char interactive_add;

extern unsigned char compress_enabled;

extern long timeshift;

extern unsigned char signature_checked;

extern char plainfile[256];

extern int myArgc;

extern char ** myArgv;

extern struct hashedpw * passwds;

extern struct hashedpw * keypasswds;

int main(int , char ** );

void user_error(void);

void exitPGP(int );

/* Prototypes for functions defined in
amiga__main.c
 */

void __stdargs __main(char * );

int CountArgs(struct MinList * , struct ArgNode * );

void AddArgs(struct ArgNode ** , char *** );

