|
|
1.1 ! root 1: /* random.h - Header include file for random.c ! 2: Last revised 15 Dec 90 ! 3: (c) 1989 Philip Zimmermann. All rights reserved. ! 4: */ ! 5: ! 6: ! 7: /* Elaborate protection mechanisms to assure no redefinitions of types...*/ ! 8: #ifndef BOOLSTUFF ! 9: #define BOOLSTUFF ! 10: #ifndef TRUE ! 11: #define FALSE 0 ! 12: #define TRUE (!FALSE) ! 13: #endif /* if TRUE not already defined */ ! 14: typedef unsigned char boolean; /* values are TRUE or FALSE */ ! 15: #endif /* if BOOLSTUFF not already defined */ ! 16: #ifndef BYTESTUFF ! 17: #define BYTESTUFF ! 18: typedef unsigned char byte; /* values are 0-255 */ ! 19: typedef byte *byteptr; /* pointer to byte */ ! 20: typedef char *string; /* pointer to ASCII character string */ ! 21: #endif /* if BYTESTUFF not already defined */ ! 22: #ifndef min /* if min macro not already defined */ ! 23: #define min(a,b) ( (a)<(b) ? (a) : (b) ) ! 24: #define max(a,b) ( (a)>(b) ? (a) : (b) ) ! 25: #endif /* if min macro not already defined */ ! 26: ! 27: ! 28: int pseudorand(void); /* 16-bit LCG pseudorandom generator */ ! 29: ! 30: /* Don't define PSEUDORANDOM unless you want only pseudorandom numbers */ ! 31: ! 32: #ifdef PSEUDORANDOM /* use pseudorandom numbers */ ! 33: #define randombyte() ((byte) pseudorand()) /* pseudorandom generator */ ! 34: #define randaccum(bitcount) /* null function */ ! 35: #define randload(bitcount) /* null function */ ! 36: #define randflush() /* null function */ ! 37: #define capturecounter() /* null function */ ! 38: #define keypress() kbhit() /* TRUE iff keyboard input ready */ ! 39: #define getkey() getch() /* returns data from keyboard (no echo). */ ! 40: #endif /* ifdef PSEUDORANDOM */ ! 41: ! 42: #ifndef PSEUDORANDOM /* use truly random numbers */ ! 43: ! 44: extern int randcount; /* number of random bytes accumulated in pool */ ! 45: ! 46: void capturecounter(void); /* capture a fast counter into the random pool. */ ! 47: /* Should be called when the user clicks the mouse, or from getkey(). */ ! 48: ! 49: short randombyte(void); /* returns truly random byte from pool */ ! 50: ! 51: int getstring(char *strbuf,int maxlen,boolean echo); ! 52: ! 53: void randaccum(short bitcount); /* get this many raw random bits ready */ ! 54: ! 55: short randload(short bitcount); ! 56: /* Get fresh load of raw random bits into recyclepool for key generation */ ! 57: ! 58: void randflush(void); /* flush recycled random bytes */ ! 59: ! 60: boolean keypress(void); /* TRUE iff keyboard input ready */ ! 61: short getkey(void); /* returns data from keyboard (no echo). */ ! 62: ! 63: #endif /* ifndef PSEUDORANDOM */ ! 64:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.