blob: 9781141dec38e3dba3c20868f48b8fa6752150bb [file] [log] [blame]
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05001<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html>
3<head>
4<title>3.2 rand -- An interface to the OpenSSL pseudo random number generator </title>
5<META NAME="description" CONTENT="3.2 rand -- An interface to the OpenSSL pseudo random number generator ">
6<META NAME="keywords" CONTENT="pyOpenSSL">
7<META NAME="resource-type" CONTENT="document">
8<META NAME="distribution" CONTENT="global">
9<link rel="STYLESHEET" href="pyOpenSSL.css">
10<LINK REL="next" href="openssl-ssl.html">
11<LINK REL="previous" href="openssl-crypto.html">
12<LINK REL="up" href="openssl.html">
13<LINK REL="next" href="openssl-ssl.html">
14</head>
15<body>
16<DIV CLASS="navigation">
17<table align="center" width="100%" cellpadding="0" cellspacing="2">
18<tr>
19<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
20border="0" height="32"
21 alt="Previous Page" width="32"></A></td>
22<td><A href="openssl.html"><img src="up.gif"
23border="0" height="32"
24 alt="Up One Level" width="32"></A></td>
25<td><A href="openssl-ssl.html"><img src="next.gif"
26border="0" height="32"
27 alt="Next Page" width="32"></A></td>
28<td align="center" width="100%">Python OpenSSL Manual</td>
29<td><A href="contents.html"><img src="contents.gif"
30border="0" height="32"
31 alt="Contents" width="32"></A></td>
32<td><img src="blank.gif"
33 border="0" height="32"
34 alt="" width="32"></td>
35<td><img src="blank.gif"
36 border="0" height="32"
37 alt="" width="32"></td>
38</tr></table>
39<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
40<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
41<b class="navlabel">Next:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
42<br><hr>
43</DIV>
44<!--End of Navigation Panel-->
45
46<H2><A NAME="SECTION000420000000000000000">&nbsp;</A>
47<BR>
483.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator
49</H2>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050050
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050051<P>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050052
53
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050054<P>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050055This module handles the OpenSSL pseudo random number generator (PRNG) and
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050056declares the following:
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050057
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050058<P>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040059<dl><dt><b><a name='l2h-89'><tt class='function'>add</tt></a></b>(<var>string, entropy</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050060<dd>
61Mix bytes from <var>string</var> into the PRNG state. The <var>entropy</var> argument is
62(the lower bound of) an estimate of how much randomness is contained in
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040063<var>string</var>, measured in bytes. For more information, see e.g. <a class="rfc" name="rfcref-1858"
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050064href="http://www.ietf.org/rfc/rfc1750.txt">RFC 1750</a>.
65</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050066
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050067<P>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040068<dl><dt><b><a name='l2h-90'><tt class='function'>egd</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050069<dd>
70Query the Entropy Gathering Daemon<A NAME="tex2html3"
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040071 HREF="#foot956"><SUP>3</SUP></A> on socket <var>path</var> for <var>bytes</var>
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050072bytes of random data and and uses <tt class="function">add</tt> to seed the PRNG. The default
73value of <var>bytes</var> is 255.
74</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050075
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050076<P>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040077<dl><dt><b><a name='l2h-91'><tt class='function'>load_file</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050078<dd>
79Read <var>bytes</var> bytes (or all of it, if <var>bytes</var> is negative) of data from
80the file <var>path</var> to seed the PRNG. The default value of <var>bytes</var> is -1.
81</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050082
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050083<P>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040084<dl><dt><b><a name='l2h-92'><tt class='function'>screen</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050085<dd>
86Add the current contents of the screen to the PRNG state.
87Availability: Windows.
88</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050089
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050090<P>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040091<dl><dt><b><a name='l2h-93'><tt class='function'>seed</tt></a></b>(<var>string</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050092<dd>
93This is equivalent to calling <tt class="function">add</tt> with <var>entropy</var> as the length
94of the string.
95</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -050096
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050097<P>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -040098<dl><dt><b><a name='l2h-94'><tt class='function'>status</tt></a></b>()
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050099<dd>
100Returns true if the PRNG has been seeded with enough data, and false otherwise.
101</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500102
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500103<P>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -0400104<dl><dt><b><a name='l2h-95'><tt class='function'>write_file</tt></a></b>(<var>path</var>)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500105<dd>
106Write a number of random bytes (currently 1024) to the file <var>path</var>. This
107file can then be used with <tt class="function">load_file</tt> to seed the PRNG again.
108</dl>
Jean-Paul Calderone2aa2b332008-03-06 21:43:14 -0500109
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500110<P>
111<BR><HR><H4>Footnotes</H4>
112<DL>
Jean-Paul Calderonec54cc182008-03-26 21:11:07 -0400113<DT><A NAME="foot956">... Daemon</A><A
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500114 href="openssl-rand.html#tex2html3"><SUP>3</SUP></A></DT>
115<DD>See
116<a class="url" href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech/crypto/</a>
117
118</DD>
119</DL>
120<DIV CLASS="navigation">
121<p><hr>
122<table align="center" width="100%" cellpadding="0" cellspacing="2">
123<tr>
124<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
125border="0" height="32"
126 alt="Previous Page" width="32"></A></td>
127<td><A href="openssl.html"><img src="up.gif"
128border="0" height="32"
129 alt="Up One Level" width="32"></A></td>
130<td><A href="openssl-ssl.html"><img src="next.gif"
131border="0" height="32"
132 alt="Next Page" width="32"></A></td>
133<td align="center" width="100%">Python OpenSSL Manual</td>
134<td><A href="contents.html"><img src="contents.gif"
135border="0" height="32"
136 alt="Contents" width="32"></A></td>
137<td><img src="blank.gif"
138 border="0" height="32"
139 alt="" width="32"></td>
140<td><img src="blank.gif"
141 border="0" height="32"
142 alt="" width="32"></td>
143</tr></table>
144<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
145<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
146<b class="navlabel">Next:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
147<hr>
Jean-Paul Calderoned2532d82008-03-25 15:20:39 -0400148<span class="release-info">Release 0.7a2.</span>
Jean-Paul Calderone897bc252008-02-18 20:50:23 -0500149</DIV>
150<!--End of Navigation Panel-->
151
152</BODY>
153</HTML>