DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

prngd(1)





NAME

       prngd - Pseudo Random Number Generator Daemon


SYNOPSIS

       prngd [ command_opts ] /path/to/socket [ /path/to/other_socket ]

       prngd -k/--killmode /path/to/socket [ /path/to/other_socket ]


DESCRIPTION

       PRNGD is the Pseudo Random Number Generator Daemon.  It offers an EGD
       compatible interface to obtain random data and is intended to be used
       as an entropy source to feed other software, especially software based
       on OpenSSL.

       Like EGD (http://sourceforge.net/projects/egd/) it calls system pro-
       grams to collect entropy.  Unlike EGD it does not generate a pool of
       random bits that can be called from other software.

       Rather it feeds the bits gathered into its internal PRNG from which the
       "random bits" are obtained when requested. This way, PRNGD is never
       drained and can never block (unlike EGD), so it is also suitable to
       seed inetd-started programs.

       It also features a seed-save file, so that it is immediately usable
       after system start.


USAGE

       Startup - (reads the seed file)
        /usr/local/bin/prngd [other options] /var/run/egd-pool

       Clean shutdown - (saves current data to the seed file)
        /usr/local/bin/prngd --kill /var/run/egd-pool

       The above line should be added to the system startup files so that
       prngd starts up before any program that would query the random data
       socket, such as OpenSSH.

       PRNGD supports both UNIX sockets (as shown in the examples) as well as
       TCP sockets (localhost only!). There is no port number registered
       (yet), so pick a free port on your system, e.g. 708 when running with
       root perms and you want to offer it as a system service, or 4840 with-
       out root perms.

       Both ports are not assigned to any service as of
        http://www.isi.edu/in-notes/iana/assignments/port-numbers

       To have PRNGD listen on both the Unix socket and TCP do
        prngd [other options] /var/run/egd-pool tcp/localhost:708 tcp/local-
       host:4840

       You should add these lines to /etc/services: (substitute your chosen
       ports)
        prngd         708/tcp     # prngd/EGD system service
        prngd-user    4840/tcp    # prngd/EGD user service

       PRNGD itself by now only handles numerical port numbers.


OPTIONS

       PRNGD has the following options:

       -c / --cmdfile file
           Read the entropy gathering commands from "file" instead of reading
           from the compiled in default location.

       -d / --debug
           Do not go into daemon (background) mode and print diagnostic mes-
           sages to stderr.

       -f / --fg
           Stay in foreground, do not fork. Do not print diagnostic messages.
           This is e.g. usefull when using AIX System Resource Controller, so
           that the resource controler could detect a crash of prngd.

       -k / --kill
           Kill the daemon(s) at the locations given. It is possible to kill
           more than one prngd at a time with this command. If several loca-
           tions are given at one time, prngd will try to contact them one
           after the other, query the process id according to the EGD protocol
           and send a SIGTERM to the process. As one daemon may server more
           than one socket, one may wish to kill the daemon with the same
           argument that was used to start prngd.  The kill operation will
           however only succeed for the first socket, as the daemon will be
           killed in the first attempt. prngd -k ... will therefore silently
           ignore the failure at the other location(s).

       -m / --mode mode
           Set the file access mode of the UNIX socket to be "mode". The mode
           is set after creation of the socket. This option can be used to
           restrict access to prngd. If more than one UNIX socket is served by
           prngd, the same mode setting applies to all UNIX sockets. The mode
           must be given in numeric notation, e.g. 777 for read and write and
           execute permission for owner/group/other.

       -n / --no-seedfile
           Do not read from any seedfile and do not create a seedfile or write
           to any seedfile.

       -p / --pidfile file
           Write the pid of the prngd process into the specified file. If this
           option is not explicitly used, no pid-file will be written, as
           prngd -k can be used to kill a running prngd.

       -s / --seedfile file
           Location of the seedfile. The file is read at startup to initially
           seed the PRNG. On clean shutdown entropy is retrieved from the pool
           and written back to the file. If no location is given, the compiled
           in location of the seedfile is used. If the seedfile does not exist
           on startup, it is created automatically.

       -v / --version
           Print the version of prngd and exit.


DIAGNOSTICS


AUTHOR/LICENSE

       Author: Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE>

       This software is free. You can do with it whatever you want.  I would
       however kindly ask you to acknowledge the use of this package, if you
       are going use it in your software, which you might be going to distrib-
       ute. I would also like to receive a note if you are a satisfied user
       :-)


SEE ALSO

       PRNGD Home Page:
         http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html

       Related Sites:
         http://sourceforge.net/projects/egd/
         http://www.openssh.org/
         http://www.openssl.org/

2002-05-17                      SCO OpenServer                        PRNGD(1)

Man(1) output converted with man2html