diff options
author | markm <markm@FreeBSD.org> | 2000-10-14 16:16:42 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2000-10-14 16:16:42 +0000 |
commit | 1beb657e46e57fde773c6c9f5c36583729327bd1 (patch) | |
tree | 54497b1c246e5025730255a2c5f2d05be762269a | |
parent | afe5dc9e12094f0fa2d3bf890491ae3fb38eb537 (diff) | |
download | FreeBSD-src-1beb657e46e57fde773c6c9f5c36583729327bd1.zip FreeBSD-src-1beb657e46e57fde773c6c9f5c36583729327bd1.tar.gz |
Add a man page for part of the PRNG API.
-rw-r--r-- | share/man/man9/Makefile | 3 | ||||
-rw-r--r-- | share/man/man9/random.9 | 135 |
2 files changed, 137 insertions, 1 deletions
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index c135e30..4f7757b 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -15,7 +15,7 @@ MAN9= CONDSPLASSERT.9 KASSERT.9 MD5.9 SPLASSERT.9 \ devfs_add_devswf.9 devfs_link.9 devfs_remove_dev.9 devstat.9 \ devtoname.9 fetch.9 ifnet.9 inittodr.9 intro.9 kernacc.9 malloc.9 \ make_dev.9 microseq.9 mi_switch.9 mutex.9 namei.9 panic.9 physio.9 \ - posix4.9 psignal.9 resettodr.9 rtalloc.9 rtentry.9 sleep.9 spl.9 \ + posix4.9 psignal.9 random.9 resettodr.9 rtalloc.9 rtentry.9 sleep.9 spl.9 \ store.9 style.9 suser.9 time.9 timeout.9 uio.9 \ vget.9 vnode.9 vput.9 vref.9 vrele.9 vslock.9 \ microtime.9 microuptime.9 tvtohz.9 @@ -73,6 +73,7 @@ MLINKS+=namei.9 NDINIT.9 MLINKS+=namei.9 NDFREE.9 MLINKS+=posix4.9 p1003_1b.9 MLINKS+=psignal.9 gsignal.9 psignal.9 pgsignal.9 +MLINKS+=random.9 srandom.9 random.9 arc4random.9 random.9 read_random.9 MLINKS+=rtalloc.9 rtalloc1.9 rtalloc.9 rtalloc_ign.9 MLINKS+=sleep.9 tsleep.9 sleep.9 wakeup.9 sleep.9 wakeup_one.9 MLINKS+=sleep.9 asleep.9 sleep.9 await.9 sleep.9 msleep.9 diff --git a/share/man/man9/random.9 b/share/man/man9/random.9 new file mode 100644 index 0000000..a347f18 --- /dev/null +++ b/share/man/man9/random.9 @@ -0,0 +1,135 @@ +.\" +.\" Copyright (c) 2000 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" " +.Dd September 25, 2000 +.Os +.Dt RANDOM 9 +.Sh NAME +.Nm srandom, +.Nm random, +.Nm arc4random, +.Nm read_random +.Nd supply pseudo-random numbers. +.Sh SYNOPSIS +.Fd #include <sys/libkern.h> +.Ft void +.Fn srandom "u_long seed" +.Ft u_long +.Fn random "void" +.Ft u_int32_t +.Fn arc4random "void" +.Pp +.Fd #include <sys/random.h> +.Ft u_int +.Fn read_random "void *buffer" "u_int count" +.Sh DESCRIPTION +The +.Fn random +function will by default produce a sequence of numbers that can be duplicated +by calling +.Fn srandom +with +.Ql 1 +as the +.Ar seed . +The +.Fn srandom +function may be called with any arbitrary +.Ar seed +value to get slightly more unpredictable numbers. +It is important to remember that the +.Fn random +function is entirely predictable, and is therefore not of use where +knowledge of the sequence of numbers may be of benefit to an attacker. +.Pp +The +.Fn arc4random +function will return very good quality random numbers, slightly better +suited for security-related purposes. +The random numbers from +.Fn arc4random +are seeded from the entropy device if it is available. +.Pp +The +.Fn read_random +function is used to return entropy directly from the entropy device +if it has been loaded. If the entropy device is not loaded, then +the +.Ar buffer +is filled with output generated by +.Fn random . +The +.Ar buffer +is filled with no more than +.Ar count +bytes. It is advised that +.Fn read_random +is not used; instead use +.Fn arc4random . +.Pp +All the bits generated by +.Fn random , +.Fn arc4random +and +.Fn read_random +are usable. For example, +.Sq Li random()&01 +will produce a random binary value. +.Sh RETURN VALUES +The +.Fn random +function +uses a non-linear additive feedback random number generator employing a +default table of size 31 long integers to return successive pseudo-random +numbers in the range from 0 to +.if t 2\u\s731\s10\d\(mi1. +.if n (2**31)\(mi1. +The period of this random number generator is very large, approximately +.if t 16\(mu(2\u\s731\s10\d\(mi1). +.if n 16*((2**31)\(mi1). +.Pp +The +.Fn arc4random +function +uses the RC4 algorithm to generate successive pseudo-random +numbers in the range from 0 to +.if t 2\u\s732\s10\d\(mi1. +.if n (2**32)\(mi1. +.Pp +The +.Fn read_random +function returns the number of bytes placed in +.Ar buffer . +.Pp +.Sh AUTHORS +.An Dan Moschuk +wrote +.Fn arc4random . +.An Mark R V Murray +wrote +.Fn read_random . |