Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 259

ucommon-doc-5.0.4-1mdv2010.2.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ucommon: ucommon::Random Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00208.html">ucommon</a>::<a class="el" href="a00113.html">Random</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::Random Class Reference</h1><!-- doxytag: class="ucommon::Random" -->
<p>Cryptographically relevant random numbers.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00196_source.html">secure.h</a>&gt;</code></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a1e4c87467a2f158506f570aa79a2cc5a">fill</a> (unsigned char *memory, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill memory with pseudo-random values.  <a href="#a1e4c87467a2f158506f570aa79a2cc5a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a4d5f8b2d96f5be4b71c4503c35126b01">get</a> (int min, int max)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a pseudo-random integer in a preset range.  <a href="#a4d5f8b2d96f5be4b71c4503c35126b01"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a7c4f81c35038c4c6ad8879f0bc2b8e02">get</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a pseudo-random integer, range 0 - 32767.  <a href="#a7c4f81c35038c4c6ad8879f0bc2b8e02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a73fc61f99abe1960b283a898f8b0593c">key</a> (unsigned char *memory, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get high-entropy random data.  <a href="#a73fc61f99abe1960b283a898f8b0593c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a3360c66625ad03f677f099e1124c4ef8">real</a> (double min, double max)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a pseudo-random floating point value in a preset range.  <a href="#a3360c66625ad03f677f099e1124c4ef8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a29689f7eec6f2bf13412125eebfc4235">real</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a pseudo-random floating point value.  <a href="#a29689f7eec6f2bf13412125eebfc4235"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1bcf4a231043574ad73af2048473eded"></a><!-- doxytag: member="ucommon::Random::seed" ref="a1bcf4a231043574ad73af2048473eded" args="(void)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a1bcf4a231043574ad73af2048473eded">seed</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Re-seed pseudo-random generation and entropy pools. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a704a0ad3e3b70503667c379f92e2a760">seed</a> (const unsigned char *buffer, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Push entropic seed.  <a href="#a704a0ad3e3b70503667c379f92e2a760"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#aa46724e8c36d6798551cccbe0e21393c">status</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine if we have sufficient entropy to return random values.  <a href="#aa46724e8c36d6798551cccbe0e21393c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70cc3cd92786816119363ba7fdbc73f1"></a><!-- doxytag: member="ucommon::Random::uuid" ref="a70cc3cd92786816119363ba7fdbc73f1" args="(void)" -->
static <a class="el" href="a00148.html">String</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>uuid</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html#a7a79a514e26b588da1b8a3c26aef434e">uuid</a> (char *<a class="el" href="a00148.html">string</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create 36 character random uuid string.  <a href="#a7a79a514e26b588da1b8a3c26aef434e"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Cryptographically relevant random numbers. </p>
<p>This is used both to gather entropy pools and pseudo-random values. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="a00196_source.html#l00522">522</a> of file <a class="el" href="a00196_source.html">secure.h</a>.</p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a1e4c87467a2f158506f570aa79a2cc5a"></a><!-- doxytag: member="ucommon::Random::fill" ref="a1e4c87467a2f158506f570aa79a2cc5a" args="(unsigned char *memory, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t ucommon::Random::fill </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>memory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fill memory with pseudo-random values. </p>
<p>This is used as the basis for all get and real operations and does not depend on seed entropy. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>memory</em>&nbsp;</td><td>buffer to fill. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer to fill. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes set. </dd></dl>

</div>
</div>
<a class="anchor" id="a4d5f8b2d96f5be4b71c4503c35126b01"></a><!-- doxytag: member="ucommon::Random::get" ref="a4d5f8b2d96f5be4b71c4503c35126b01" args="(int min, int max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::Random::get </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>max</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pseudo-random integer in a preset range. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>min</em>&nbsp;</td><td>value of random integer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>value of random integer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>random value from min to max. </dd></dl>

</div>
</div>
<a class="anchor" id="a7c4f81c35038c4c6ad8879f0bc2b8e02"></a><!-- doxytag: member="ucommon::Random::get" ref="a7c4f81c35038c4c6ad8879f0bc2b8e02" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::Random::get </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pseudo-random integer, range 0 - 32767. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>random integer. </dd></dl>

</div>
</div>
<a class="anchor" id="a73fc61f99abe1960b283a898f8b0593c"></a><!-- doxytag: member="ucommon::Random::key" ref="a73fc61f99abe1960b283a898f8b0593c" args="(unsigned char *memory, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t ucommon::Random::key </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>memory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get high-entropy random data. </p>
<p>This is often used to initialize keys. This operation may block if there is insufficient entropy immediately available. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>memory</em>&nbsp;</td><td>buffer to fill. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes filled. </dd></dl>

</div>
</div>
<a class="anchor" id="a3360c66625ad03f677f099e1124c4ef8"></a><!-- doxytag: member="ucommon::Random::real" ref="a3360c66625ad03f677f099e1124c4ef8" args="(double min, double max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double ucommon::Random::real </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>max</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pseudo-random floating point value in a preset range. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>min</em>&nbsp;</td><td>value of random floating point number. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>value of random floating point number. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>random value from min to max. </dd></dl>

</div>
</div>
<a class="anchor" id="a29689f7eec6f2bf13412125eebfc4235"></a><!-- doxytag: member="ucommon::Random::real" ref="a29689f7eec6f2bf13412125eebfc4235" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double ucommon::Random::real </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a pseudo-random floating point value. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>psudo-random value 0 to 1. </dd></dl>

</div>
</div>
<a class="anchor" id="a704a0ad3e3b70503667c379f92e2a760"></a><!-- doxytag: member="ucommon::Random::seed" ref="a704a0ad3e3b70503667c379f92e2a760" args="(const unsigned char *buffer, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool ucommon::Random::seed </td>
          <td>(</td>
          <td class="paramtype">const unsigned char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Push entropic seed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>of random data to push. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if successful. </dd></dl>

</div>
</div>
<a class="anchor" id="aa46724e8c36d6798551cccbe0e21393c"></a><!-- doxytag: member="ucommon::Random::status" ref="aa46724e8c36d6798551cccbe0e21393c" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool ucommon::Random::status </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Determine if we have sufficient entropy to return random values. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if sufficient entropy. </dd></dl>

</div>
</div>
<a class="anchor" id="a7a79a514e26b588da1b8a3c26aef434e"></a><!-- doxytag: member="ucommon::Random::uuid" ref="a7a79a514e26b588da1b8a3c26aef434e" args="(char *string)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::Random::uuid </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>string</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create 36 character random uuid string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>to write uuid into, must be 37 bytes or more. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00196_source.html">secure.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:39:54 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>