BSD::arc4random man page on MirBSD

Man page or keyword search:  
man Server   6113 pages
apropos Keyword Search (all sections)
Output format
MirBSD logo
[printable version]

BSD::arc4random(3p)   User Contributed Perl Documentation  BSD::arc4random(3p)

NAME
       BSD::arc4random - Perl interface to the arc4 random number generator

SYNOPSIS
	 use BSD::arc4random qw(:all);
	 $v = arc4random();
	 $v = arc4random_uniform($hz);
	 if (!BSD::arc4random::have_kintf()) {
	   $v = arc4random_addrandom("entropy to pass to the system");
	 } else {
	   $v = arc4random_pushb("entropy to pass to the system");
	   $v = arc4random_pushk("entropy to pass to the kernel");
	 }
	 $s = arc4random_bytes(16, "entropy to pass to libc");
	 arc4random_stir();
	 $s = arc4random_bytes(16);
	 print $RANDOM;

DESCRIPTION
       This set of functions maps the arc4random(3) family of libc functions
       into Perl code.	All functions listed below are ithreads-safe.  The
       internal XS functions are not, but you are not supposed to call them,
       either.

       On module load, perl's internal PRNG is re-seeded, as a bonus, using
       srand with an argument calculated from using arc4random_pushb on some
       entropy returned from rand's previous state.

       LOW-LEVEL FUNCTIONS

       arc4random()
	   This function returns an unsigned 32-bit integer random value.

       arc4random_addrandom(pbuf)
	   This function adds the entropy from pbuf into the libc pool and
	   returns an unsigned 32-bit integer random value from it.

       arc4random_pushb(pbuf)
	   This function first pushes the pbuf argument to the kernel if pos‐
	   sible, then the entropy returned by the kernel into the libc pool,
	   then returns an unsigned 32-bit integer random value from it.

       arc4random_pushk(pbuf)
	   This function first pushes the pbuf argument to the kernel if pos‐
	   sible, then returns an unsigned 32-bit integer random value from
	   the kernel.

	   This function is deprecated. Use arc4random_pushb instead.

       arc4random_stir()
	   This procedure attempts to retrieve new entropy from the kernel and
	   add it to the libc pool.  Usually, this means you must have access
	   to the urandom(4) device; create it inside chroot(2) jails first if
	   you use them.

       have_kintf()
	   This constant function returns 1 if arc4random_pushb and/or
	   arc4random_pushk actually call the kernel interfaces, 0 if they
	   merely map to arc4random_addrandom instead.

       HIGH-LEVEL FUNCTIONS

       arc4random_bytes(num[, pbuf])
	   This function returns a string containing as many random bytes as
	   requested by the integral argument num.  An optional pbuf argument
	   is passed to the system first.

       arc4random_uniform(upper_bound)
	   Calculate a uniformly distributed random number less than
	   upper_bound avoiding "modulo bias".

       PACKAGE VARIABLES

       $RANDOM
	   The $RANDOM returns a random value in the range [0; 32767] on each
	   read attempt and pushes any value it is assigned to the kernel.  It
	   is tied at module load time.

       tie variable, 'BSD::arc4random'[, max]
	   You can tie any scalar variable to this package; the max argument
	   is the maximum number returned; if undefined, 0 or >= 0xFFFFFFFF,
	   no bound is used, and values in the range [0; 2**32-1] are
	   returned.  They will behave like $RANDOM.

AUTHOR
       Thorsten Glaser <tg@mirbsd.de>

SEE ALSO
       The arc4random(3) manual page, available online at:
       <https://www.mirbsd.org/man/arc4random.3>

       Perl's rand and srand functions via perlfunc and perlfaq4.

       The randex.pl plugin for Irssi, implementing the MirOS RANDEX protocol
       (entropy exchange over IRC), with CVSweb at:
       <http://cvs.mirbsd.de/ports/net/irssi/files/randex.pl>

       <https://www.mirbsd.org/a4rp5bsd.htm> when it's done being written.

COPYRIGHT AND LICENSE
       Copyright (c) 2008, 2009 Thorsten "mirabilos" Glaser Copyright (c) 2009
       Benny Siegert

       This module is covered by the MirOS Licence:
       <http://mirbsd.de/MirOS-Licence>

       The original C implementation of arc4random_uniform was contributed by
       Damien Miller from OpenBSD, with simplifications by Jinmei Tatuya.

perl v5.8.8			  2009-11-29		   BSD::arc4random(3p)
[top]

List of man pages available for MirBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net