blob: add03ce42a99d63eabc0572bd1ce630058abdd9f (
plain) (
tree)
|
|
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename krandom.info
@settitle krandom
@afourpaper
@documentencoding UTF-8
@documentlanguage en
@finalout
@c %**end of header
@dircategory Utilities
@direntry
* krandom: (krandom). Keccak-based userspace pseudorandom number generator
@end direntry
@copying
Copyright @copyright{} 2014 Mattias Andrée
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
``GNU Free Documentation License''.
@end quotation
@end copying
@ifnottex
@node Top
@top krandom -- Keccak-based userspace pseudorandom number generator
@insertcopying
@end ifnottex
@titlepage
@title krandom
@subtitle Keccak-based userspace pseudorandom number generator
@author by Mattias Andrée (maandree)
@page
@c @center `'
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@contents
@menu
* Overview:: Brief overview of @command{krandom}.
* Invoking:: Invocation of @command{krandom}.
* GNU Free Documentation License:: Copying and sharing this manual.
@end menu
@node Overview
@chapter Overview
@command{krandom} is a tunable userspace pseudorandom number generator
based on the Keccak hash-algorithm.
With @command{krandom} default parameters it is about twice as fast
as Linux's @file{/dev/urandom}, but it's performance can be tuned
both up and down.
@command{krandom} creates a Keccak sponge and initialises its state
@footnote{(25 @command{int_fast64_t}:s)} with random data from
@file{/dev/urandom}. This simulate it absorption phase of Keccak
from a random message. It then performance the squeezing phase
continuously until the standard output pipe breaks, that is,
when the program it pipes into exits or closes standard input.
On a more technical level, @command{krandom} will pause automatically
if the other program does not read its input, and resume when it does.
This is because the pipe will become full and block writting for
@command{krandom}.
@node Invoking
@chapter Invoking
@command{krandom} recognises the following options:
@table @option
@item -h
@itemx --help
Display a summary of options.
@item -v
@itemx --verbose
Print extra information.
@item -R
@itemx --bitrate
@itemx --rate RATE
Change the rate.
@item -C
@itemx --capacity CAPACITY
Change the capacity.
@item -N
@itemx -O
@itemx --output-size
@itemx --output SIZE
Change the output size.
This is the size of a squeezed block,
the total output is unlimited.
@item -S
@itemx -B
@itemx --state-size
@itemx --state SIZE
Change the state size.
@item -W
@itemx --word-size
@itemx --word SIZE
Change the word size.
@end table
@node GNU Free Documentation License
@appendix GNU Free Documentation License
@include fdl.texinfo
@bye
|