aboutsummaryrefslogtreecommitdiffstats
path: root/info/krandom.texinfo
blob: add03ce42a99d63eabc0572bd1ce630058abdd9f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
\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