Add a man page for part of the PRNG API.
This commit is contained in:
parent
2d99f9a72c
commit
67297998c8
@ -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
|
||||
|
135
share/man/man9/random.9
Normal file
135
share/man/man9/random.9
Normal file
@ -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 .
|
Loading…
Reference in New Issue
Block a user