rsc | cfa37a7 | 2004-04-10 18:53:55 +0000 | [diff] [blame] | 1 | .TH GENRANDOM 3 |
| 2 | .SH NAME |
| 3 | genrandom, prng \- random number generation |
| 4 | .SH SYNOPSIS |
| 5 | .B #include <u.h> |
| 6 | .br |
| 7 | .B #include <libc.h> |
| 8 | .br |
| 9 | .B #include <mp.h> |
| 10 | .br |
| 11 | .B #include <libsec.h> |
| 12 | .PP |
| 13 | .B |
| 14 | void genrandom(uchar *buf, int nbytes) |
| 15 | .PP |
| 16 | .B |
| 17 | void prng(uchar *buf, int nbytes) |
| 18 | .SH DESCRIPTION |
rsc | cfa37a7 | 2004-04-10 18:53:55 +0000 | [diff] [blame] | 19 | Most security software requires a source of random or, at the |
| 20 | very least, unguessable numbers. |
| 21 | .PP |
| 22 | .I Genrandom |
| 23 | fills a buffer with bytes from the X9.17 pseudo-random |
| 24 | number generator. The X9.17 generator is seeded by 24 |
rsc | c8b6342 | 2005-01-13 04:49:19 +0000 | [diff] [blame] | 25 | truly random bytes read via |
| 26 | .I truerand |
| 27 | (see |
| 28 | .IR rand (3)). |
rsc | cfa37a7 | 2004-04-10 18:53:55 +0000 | [diff] [blame] | 29 | .PP |
| 30 | .I Prng |
| 31 | uses the native |
rsc | bf8a59f | 2004-04-11 03:42:27 +0000 | [diff] [blame] | 32 | .IR rand (3) |
rsc | cfa37a7 | 2004-04-10 18:53:55 +0000 | [diff] [blame] | 33 | pseudo-random number generator to fill the buffer. Used with |
| 34 | .IR srand , |
| 35 | this function can produce a reproducible stream of pseudo random |
| 36 | numbers useful in testing. |
| 37 | .PP |
| 38 | Both functions may be passed to |
| 39 | .I mprand |
| 40 | (see |
rsc | bf8a59f | 2004-04-11 03:42:27 +0000 | [diff] [blame] | 41 | .IR mp (3)). |
rsc | cfa37a7 | 2004-04-10 18:53:55 +0000 | [diff] [blame] | 42 | .SH SOURCE |
rsc | c3674de | 2005-01-11 17:37:33 +0000 | [diff] [blame] | 43 | .B \*9/src/libsec |
rsc | cfa37a7 | 2004-04-10 18:53:55 +0000 | [diff] [blame] | 44 | .SH SEE ALSO |
rsc | bf8a59f | 2004-04-11 03:42:27 +0000 | [diff] [blame] | 45 | .IR mp (3) |