Annotation of pgp/src/lfsr.h, revision 1.1.1.1

1.1       root        1: /*     lfsr.h - C header include file for lfsr.c
                      2: **     Linear Feedback Shift Register (LFSR) routines
                      3: **     (c) 1988 Philip Zimmermann.  All rights reserved.
                      4: */
                      5: 
                      6: 
                      7: /* Elaborate protection mechanisms to assure no redefinitions of types...*/
                      8: #ifndef BYTESTUFF
                      9: #define BYTESTUFF
                     10: typedef unsigned char byte;    /* values are 0-255 */
                     11: typedef byte *byteptr; /* pointer to byte */
                     12: typedef char *string;  /* pointer to ASCII character string */
                     13: #endif /* if BYTESTUFF not already defined */
                     14: 
                     15: 
                     16: /*
                     17: **     steplfsr256 - Step big linear feedback shift register (LFSR)
                     18: **     256 cycles.  Use primitive polynomial:  X^255 + X^82 + X^0
                     19: **     Actually runs 8 LFSR's in parallel, outputting a whole byte
                     20: **     with each step.
                     21: */
                     22: void steplfsr256(register byteptr lfsr);
                     23: 
                     24: /*
                     25: **     getlfsr - get 1 byte from lfsr buffer.  Must be macro, not function.
                     26: **     Calls steplfsr256() if necessary to replenish lfsr buffer.
                     27: */
                     28: #define getlfsr(lfsr,rtail) (rtail ? lfsr[--rtail] : \
                     29:                                (steplfsr256(lfsr),lfsr[--rtail]))
                     30: 
                     31: 
                     32: /*
                     33: **     initlfsr - initialize linear feedback shift register
                     34: */
                     35: void initlfsr(byteptr seed, short size, byteptr lfsr, byte *rtail);
                     36: 
                     37: /*
                     38: **     stomplfsr - inverts about half the bits in an LFSR.
                     39: **
                     40: **     If the LFSR has a "rail" of almost all 0's or almost all 1's in
                     41: **     the same bit position, it will perform poorly as a random number
                     42: **     generator.  This function will probably fix this condition.
                     43: */
                     44: void stomplfsr(byteptr lfsr);
                     45: 
                     46: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.