--- pgp/src/crypto.h 2018/04/24 16:38:52 1.1.1.2 +++ pgp/src/crypto.h 2018/04/24 16:43:50 1.1.1.6 @@ -1,5 +1,5 @@ /* crypto.h - C headers for crypto.c -*/ + */ /* Used to determine if nesting should be allowed */ boolean legal_ctb(byte ctb); @@ -7,21 +7,22 @@ boolean legal_ctb(byte ctb); /* Write an RSA-signed message digest of input file to specified output file, and append input file to output file */ int signfile(boolean nested, boolean separate_signature, char *mcguffin, - char *infile, char *outfile, char lit_mode, char *literalfile); + char *infile, char *outfile, char lit_mode, char *literalfile); /* Reads the first count bytes from infile into header */ -int get_header_info_from_file(char *infile, byte *header, int count); +int get_header_info_from_file(char *infile, byte * header, int count); /* RSA-encrypt a file */ -int encryptfile(char *mcguffin, char *infile, char *outfile, - boolean attempt_compression); +int encryptfile(char **mcguffin, char *infile, char *outfile, + boolean attempt_compression); /* Encrypt file with IPES/IDEA cipher */ -int idea_encryptfile(char *infile, char *outfile, - boolean attempt_compression); +int idea_encryptfile(char *infile, char *outfile, + boolean attempt_compression); /* Prepend a CTB_LITERAL prefix to a file */ -int make_literal(char *infile, char *outfile, char lit_mode, char *literalfile); +int make_literal(char *infile, char *outfile, char lit_mode, + char *literalfile); /* Decrypt a file (RSA or IPES/IDEA) */ int decryptfile(char *infile, char *outfile); @@ -39,46 +40,59 @@ int decompress_file(char *infile, char * /* Strip off literal prefix from infile, copying to outfile */ int strip_literal(char *infile, char *outfile, char *preserved_name, - char *lit_mode); + char *lit_mode); +#ifndef VMS +struct IdeaCfbContext; /* Write a multiprecision integer to a file */ -void write_mpi(unitptr n, FILE *f, boolean scrambled); +void write_mpi(unitptr n, FILE * f, struct IdeaCfbContext *cfb); /* Read a mutiprecision integer from a file */ -int read_mpi(unitptr r, FILE *f, boolean adjust_precision, boolean scrambled); +int read_mpi(unitptr r, FILE * f, boolean adjust_precision, + struct IdeaCfbContext *cfb); +#else /* !VMS */ +void write_mpi(); +int read_mpi(); +#endif /* VMS */ /* Convert C <-> Quiche strings */ void CToPascal(char *s); -void PascalToC( char *s ); +void PascalToC(char *s); -/* Reads IPES/IDEA random key and random number seed from file, cranks the - the seed through the idearand strong pseudorandom number generator, and - writes them back out */ -int strong_pseudorandom(byte *buf, int bufsize); +/* Tests if a randseed.bin file exists already */ +int seedfile_exists(void); -/* Return date string, given pointer to 32-bit timestamp */ -char *cdate(word32 *tstamp); +/* Creates a randseed.bin file (call if above returns false) */ +void create_seedfile(void); -/* Return date and time string, given pointer to 32-bit timestamp */ -char *ctdate(word32 *tstamp); +/* Return date string, given pointer to 32-bit timestamp */ +char *cdate(word32 * tstamp); + +/* Return date and time string, given pointer to 32-bit timestamp */ +char *ctdate(word32 * tstamp); /* Return current timestamp as a byte array and as a 32-bit word */ -word32 get_timestamp(byte *timestamp); +word32 get_timestamp(byte * timestamp); -/* Returns the length of a packet according to the CTB and the length field */ -word32 getpastlength(byte ctb, FILE *f); +/* Returns the length of a packet according to the CTB and the + length field */ +word32 getpastlength(byte ctb, FILE * f); /* Write a CTB with the appropriate length field */ -void write_ctb_len (FILE *f, byte ctb_type, word32 length, boolean big); +void write_ctb_len(FILE * f, byte ctb_type, word32 length, boolean big); /* Print an error message and return nonzero if val != checkval */ -int version_error (int val, int checkval); - -int check_key_sig(FILE *fkey, long fpkey, int keypktlen, char *keyuserid, - FILE *fsig, long fpsig, char *keyfile, char *siguserid, byte *xtimestamp, - byte *sigclass); +int version_error(int val, int checkval); +/* The same, if val is not a recognized version */ +int version_byte_error(int val); + +int check_key_sig(FILE * fkey, long fpkey, int keypktlen, char *keyuserid, + FILE * fsig, long fpsig, char *keyfile, char *siguserid, + byte * xtimestamp, + byte * sigclass); int squish_file(char *infile, char *outfile); int signkey(char *keyguffin, char *sigguffin, char *keyfile); +extern int compromise(byte * keyID, char *keyfile);