--- pgp/src/random.h 2018/04/24 16:37:52 1.1 +++ pgp/src/random.h 2018/04/24 16:45:48 1.1.1.8 @@ -1,64 +1,17 @@ -/* random.h - Header include file for random.c - Last revised 15 Dec 90 - (c) 1989 Philip Zimmermann. All rights reserved. -*/ +#include "usuals.h" +#include "idea.h" /* Declaration of IdeaCfbContext */ +int cryptRandOpen(struct IdeaCfbContext *); +byte cryptRandByte(void); +void cryptRandInit(struct IdeaCfbContext *); +int cryptRandWriteFile(char const *, struct IdeaCfbContext *, unsigned); +void cryptRandSave(struct IdeaCfbContext *); + +unsigned trueRandEvent(int event); +void trueRandFlush(void); +void trueRandConsume(unsigned count); +void trueRandAccumLater(unsigned bitcount); +void trueRandAccum(unsigned count); +int trueRandByte(void); -/* Elaborate protection mechanisms to assure no redefinitions of types...*/ -#ifndef BOOLSTUFF -#define BOOLSTUFF -#ifndef TRUE -#define FALSE 0 -#define TRUE (!FALSE) -#endif /* if TRUE not already defined */ -typedef unsigned char boolean; /* values are TRUE or FALSE */ -#endif /* if BOOLSTUFF not already defined */ -#ifndef BYTESTUFF -#define BYTESTUFF -typedef unsigned char byte; /* values are 0-255 */ -typedef byte *byteptr; /* pointer to byte */ -typedef char *string; /* pointer to ASCII character string */ -#endif /* if BYTESTUFF not already defined */ -#ifndef min /* if min macro not already defined */ -#define min(a,b) ( (a)<(b) ? (a) : (b) ) -#define max(a,b) ( (a)>(b) ? (a) : (b) ) -#endif /* if min macro not already defined */ - - -int pseudorand(void); /* 16-bit LCG pseudorandom generator */ - -/* Don't define PSEUDORANDOM unless you want only pseudorandom numbers */ - -#ifdef PSEUDORANDOM /* use pseudorandom numbers */ -#define randombyte() ((byte) pseudorand()) /* pseudorandom generator */ -#define randaccum(bitcount) /* null function */ -#define randload(bitcount) /* null function */ -#define randflush() /* null function */ -#define capturecounter() /* null function */ -#define keypress() kbhit() /* TRUE iff keyboard input ready */ -#define getkey() getch() /* returns data from keyboard (no echo). */ -#endif /* ifdef PSEUDORANDOM */ - -#ifndef PSEUDORANDOM /* use truly random numbers */ - -extern int randcount; /* number of random bytes accumulated in pool */ - -void capturecounter(void); /* capture a fast counter into the random pool. */ -/* Should be called when the user clicks the mouse, or from getkey(). */ - -short randombyte(void); /* returns truly random byte from pool */ - -int getstring(char *strbuf,int maxlen,boolean echo); - -void randaccum(short bitcount); /* get this many raw random bits ready */ - -short randload(short bitcount); -/* Get fresh load of raw random bits into recyclepool for key generation */ - -void randflush(void); /* flush recycled random bytes */ - -boolean keypress(void); /* TRUE iff keyboard input ready */ -short getkey(void); /* returns data from keyboard (no echo). */ - -#endif /* ifndef PSEUDORANDOM */ - +int getstring(char *strbuf, unsigned maxlen, int echo);