aboutsummaryrefslogblamecommitdiffstats
path: root/info/krandom.texinfo
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