Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 9e72f3e7ecf68cce016a7c5c59e863d3 > files > 349

lib64polarssl-devel-1.3.8-1.mga4.x86_64.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>PolarSSL v1.3.8: entropy.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">PolarSSL v1.3.8
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_6a9bbd12bf4e19a18c45e270f8fae3fd.html">include</a></li><li class="navelem"><a class="el" href="dir_04272d44da4745cf8b8bfc767d6c6523.html">polarssl</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">entropy.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Entropy accumulator implementation.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;string.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="config_8h_source.html">config.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="sha512_8h_source.html">sha512.h</a>&quot;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for entropy.h:</div>
<div class="dyncontent">
<div class="center"><img src="entropy_8h__incl.png" border="0" usemap="#entropy_8h" alt=""/></div>
<map name="entropy_8h" id="entropy_8h">
</map>
</div>
</div>
<p><a href="entropy_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsource__state.html">source_state</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entropy source state.  <a href="structsource__state.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structentropy__context.html">entropy_context</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entropy context structure.  <a href="structentropy__context.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a9d15b029b1caee03c5c2b77b81c1147f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a9d15b029b1caee03c5c2b77b81c1147f">POLARSSL_ENTROPY_SHA512_ACCUMULATOR</a></td></tr>
<tr class="separator:a9d15b029b1caee03c5c2b77b81c1147f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9ff2b3b04c80aa19556ed9676bf35e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#ab9ff2b3b04c80aa19556ed9676bf35e2">POLARSSL_ERR_ENTROPY_SOURCE_FAILED</a>&#160;&#160;&#160;-0x003C</td></tr>
<tr class="memdesc:ab9ff2b3b04c80aa19556ed9676bf35e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Critical entropy source failure.  <a href="#ab9ff2b3b04c80aa19556ed9676bf35e2">More...</a><br/></td></tr>
<tr class="separator:ab9ff2b3b04c80aa19556ed9676bf35e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91eeab75dbfc3730efdc415f57e9f4ac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a91eeab75dbfc3730efdc415f57e9f4ac">POLARSSL_ERR_ENTROPY_MAX_SOURCES</a>&#160;&#160;&#160;-0x003E</td></tr>
<tr class="memdesc:a91eeab75dbfc3730efdc415f57e9f4ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">No more sources can be added.  <a href="#a91eeab75dbfc3730efdc415f57e9f4ac">More...</a><br/></td></tr>
<tr class="separator:a91eeab75dbfc3730efdc415f57e9f4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b3765116f6d9d1cbdd5d2c4faee5d33"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a0b3765116f6d9d1cbdd5d2c4faee5d33">POLARSSL_ERR_ENTROPY_NO_SOURCES_DEFINED</a>&#160;&#160;&#160;-0x0040</td></tr>
<tr class="memdesc:a0b3765116f6d9d1cbdd5d2c4faee5d33"><td class="mdescLeft">&#160;</td><td class="mdescRight">No sources have been added to poll.  <a href="#a0b3765116f6d9d1cbdd5d2c4faee5d33">More...</a><br/></td></tr>
<tr class="separator:a0b3765116f6d9d1cbdd5d2c4faee5d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a348fa499b6e890de696df6b23d9cce39"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a348fa499b6e890de696df6b23d9cce39">POLARSSL_ERR_ENTROPY_FILE_IO_ERROR</a>&#160;&#160;&#160;-0x0058</td></tr>
<tr class="memdesc:a348fa499b6e890de696df6b23d9cce39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read/write error in file.  <a href="#a348fa499b6e890de696df6b23d9cce39">More...</a><br/></td></tr>
<tr class="separator:a348fa499b6e890de696df6b23d9cce39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4610ce6582323b8906b9e05ae6253dfb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a4610ce6582323b8906b9e05ae6253dfb">ENTROPY_BLOCK_SIZE</a>&#160;&#160;&#160;64</td></tr>
<tr class="memdesc:a4610ce6582323b8906b9e05ae6253dfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block size of entropy accumulator (SHA-512)  <a href="#a4610ce6582323b8906b9e05ae6253dfb">More...</a><br/></td></tr>
<tr class="separator:a4610ce6582323b8906b9e05ae6253dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23cd05df3838590ba3b1688290c9c1fa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a23cd05df3838590ba3b1688290c9c1fa">ENTROPY_MAX_SEED_SIZE</a>&#160;&#160;&#160;1024</td></tr>
<tr class="memdesc:a23cd05df3838590ba3b1688290c9c1fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size of seed we read from seed file.  <a href="#a23cd05df3838590ba3b1688290c9c1fa">More...</a><br/></td></tr>
<tr class="separator:a23cd05df3838590ba3b1688290c9c1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c3a8b8e81c2b4e3c03d3704029bca39"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a8c3a8b8e81c2b4e3c03d3704029bca39">ENTROPY_SOURCE_MANUAL</a>&#160;&#160;&#160;<a class="el" href="entropy_8h.html#a5e9ba2c083acc78efc758deca62d162d">ENTROPY_MAX_SOURCES</a></td></tr>
<tr class="separator:a8c3a8b8e81c2b4e3c03d3704029bca39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">SECTION: Module settings</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>The configuration options you can set for this module are in this section.</p>
<p>Either change them in <a class="el" href="config_8h.html" title="Configuration options (set of defines) ">config.h</a> or define them on the compiler command line. </p>
</div></td></tr>
<tr class="memitem:a5e9ba2c083acc78efc758deca62d162d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a5e9ba2c083acc78efc758deca62d162d">ENTROPY_MAX_SOURCES</a>&#160;&#160;&#160;20</td></tr>
<tr class="memdesc:a5e9ba2c083acc78efc758deca62d162d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of sources supported.  <a href="#a5e9ba2c083acc78efc758deca62d162d">More...</a><br/></td></tr>
<tr class="separator:a5e9ba2c083acc78efc758deca62d162d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc7f201066c056a514433c5a6224b720"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#acc7f201066c056a514433c5a6224b720">ENTROPY_MAX_GATHER</a>&#160;&#160;&#160;128</td></tr>
<tr class="memdesc:acc7f201066c056a514433c5a6224b720"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum amount requested from entropy sources.  <a href="#acc7f201066c056a514433c5a6224b720">More...</a><br/></td></tr>
<tr class="separator:acc7f201066c056a514433c5a6224b720"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a4267ff128fbe2ca4da2584359821d09d"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a4267ff128fbe2ca4da2584359821d09d">f_source_ptr</a> )(void *data, unsigned char *output, size_t len, size_t *olen)</td></tr>
<tr class="memdesc:a4267ff128fbe2ca4da2584359821d09d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entropy poll callback pointer.  <a href="#a4267ff128fbe2ca4da2584359821d09d">More...</a><br/></td></tr>
<tr class="separator:a4267ff128fbe2ca4da2584359821d09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a07cc14e42768b04bbcc48a632ad8c442"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a07cc14e42768b04bbcc48a632ad8c442">entropy_init</a> (<a class="el" href="structentropy__context.html">entropy_context</a> *ctx)</td></tr>
<tr class="memdesc:a07cc14e42768b04bbcc48a632ad8c442"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the context.  <a href="#a07cc14e42768b04bbcc48a632ad8c442">More...</a><br/></td></tr>
<tr class="separator:a07cc14e42768b04bbcc48a632ad8c442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace26c056043473a7f12be97117262fd4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#ace26c056043473a7f12be97117262fd4">entropy_free</a> (<a class="el" href="structentropy__context.html">entropy_context</a> *ctx)</td></tr>
<tr class="memdesc:ace26c056043473a7f12be97117262fd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the data in the context.  <a href="#ace26c056043473a7f12be97117262fd4">More...</a><br/></td></tr>
<tr class="separator:ace26c056043473a7f12be97117262fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a9c269e560537d59a4730faaa835fd5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a5a9c269e560537d59a4730faaa835fd5">entropy_add_source</a> (<a class="el" href="structentropy__context.html">entropy_context</a> *ctx, <a class="el" href="entropy_8h.html#a4267ff128fbe2ca4da2584359821d09d">f_source_ptr</a> f_source, void *p_source, size_t threshold)</td></tr>
<tr class="memdesc:a5a9c269e560537d59a4730faaa835fd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an entropy source to poll (Thread-safe if POLARSSL_THREADING_C is enabled)  <a href="#a5a9c269e560537d59a4730faaa835fd5">More...</a><br/></td></tr>
<tr class="separator:a5a9c269e560537d59a4730faaa835fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe16e67991416febc3144c0c8888e792"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#abe16e67991416febc3144c0c8888e792">entropy_gather</a> (<a class="el" href="structentropy__context.html">entropy_context</a> *ctx)</td></tr>
<tr class="memdesc:abe16e67991416febc3144c0c8888e792"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger an extra gather poll for the accumulator (Thread-safe if POLARSSL_THREADING_C is enabled)  <a href="#abe16e67991416febc3144c0c8888e792">More...</a><br/></td></tr>
<tr class="separator:abe16e67991416febc3144c0c8888e792"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b7d7123b31b42902364989975740fe2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a2b7d7123b31b42902364989975740fe2">entropy_func</a> (void *data, unsigned char *output, size_t len)</td></tr>
<tr class="memdesc:a2b7d7123b31b42902364989975740fe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve entropy from the accumulator (Maximum length: ENTROPY_BLOCK_SIZE) (Thread-safe if POLARSSL_THREADING_C is enabled)  <a href="#a2b7d7123b31b42902364989975740fe2">More...</a><br/></td></tr>
<tr class="separator:a2b7d7123b31b42902364989975740fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a474ff02ff7707ebffd00672d8e46ddf3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a474ff02ff7707ebffd00672d8e46ddf3">entropy_update_manual</a> (<a class="el" href="structentropy__context.html">entropy_context</a> *ctx, const unsigned char *data, size_t len)</td></tr>
<tr class="memdesc:a474ff02ff7707ebffd00672d8e46ddf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add data to the accumulator manually (Thread-safe if POLARSSL_THREADING_C is enabled)  <a href="#a474ff02ff7707ebffd00672d8e46ddf3">More...</a><br/></td></tr>
<tr class="separator:a474ff02ff7707ebffd00672d8e46ddf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeec06418558ccfd52a9967ad54f197c4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#aeec06418558ccfd52a9967ad54f197c4">entropy_write_seed_file</a> (<a class="el" href="structentropy__context.html">entropy_context</a> *ctx, const char *path)</td></tr>
<tr class="memdesc:aeec06418558ccfd52a9967ad54f197c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a seed file.  <a href="#aeec06418558ccfd52a9967ad54f197c4">More...</a><br/></td></tr>
<tr class="separator:aeec06418558ccfd52a9967ad54f197c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d16f198ece9ccdfe5f80780bf5cee33"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#a5d16f198ece9ccdfe5f80780bf5cee33">entropy_update_seed_file</a> (<a class="el" href="structentropy__context.html">entropy_context</a> *ctx, const char *path)</td></tr>
<tr class="memdesc:a5d16f198ece9ccdfe5f80780bf5cee33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read and update a seed file.  <a href="#a5d16f198ece9ccdfe5f80780bf5cee33">More...</a><br/></td></tr>
<tr class="separator:a5d16f198ece9ccdfe5f80780bf5cee33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee40647ce61215ca2765e9ab3c84a47c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="entropy_8h.html#aee40647ce61215ca2765e9ab3c84a47c">entropy_self_test</a> (int verbose)</td></tr>
<tr class="memdesc:aee40647ce61215ca2765e9ab3c84a47c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checkup routine.  <a href="#aee40647ce61215ca2765e9ab3c84a47c">More...</a><br/></td></tr>
<tr class="separator:aee40647ce61215ca2765e9ab3c84a47c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Entropy accumulator implementation. </p>
<p>Copyright (C) 2006-2014, Brainspark B.V.</p>
<p>This file is part of PolarSSL (<a href="http://www.polarssl.org">http://www.polarssl.org</a>) Lead Maintainer: Paul Bakker &lt;polarssl_maintainer at polarssl.org&gt;</p>
<p>All rights reserved.</p>
<p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. </p>

<p>Definition in file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a4610ce6582323b8906b9e05ae6253dfb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENTROPY_BLOCK_SIZE&#160;&#160;&#160;64</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Block size of entropy accumulator (SHA-512) </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00080">80</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="acc7f201066c056a514433c5a6224b720"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENTROPY_MAX_GATHER&#160;&#160;&#160;128</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum amount requested from entropy sources. </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00074">74</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="a23cd05df3838590ba3b1688290c9c1fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENTROPY_MAX_SEED_SIZE&#160;&#160;&#160;1024</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum size of seed we read from seed file. </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00085">85</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5e9ba2c083acc78efc758deca62d162d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENTROPY_MAX_SOURCES&#160;&#160;&#160;20</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum number of sources supported. </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00070">70</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8c3a8b8e81c2b4e3c03d3704029bca39"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENTROPY_SOURCE_MANUAL&#160;&#160;&#160;<a class="el" href="entropy_8h.html#a5e9ba2c083acc78efc758deca62d162d">ENTROPY_MAX_SOURCES</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00086">86</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9d15b029b1caee03c5c2b77b81c1147f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ENTROPY_SHA512_ACCUMULATOR</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00040">40</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="a348fa499b6e890de696df6b23d9cce39"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ERR_ENTROPY_FILE_IO_ERROR&#160;&#160;&#160;-0x0058</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read/write error in file. </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00059">59</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="a91eeab75dbfc3730efdc415f57e9f4ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ERR_ENTROPY_MAX_SOURCES&#160;&#160;&#160;-0x003E</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>No more sources can be added. </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00057">57</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0b3765116f6d9d1cbdd5d2c4faee5d33"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ERR_ENTROPY_NO_SOURCES_DEFINED&#160;&#160;&#160;-0x0040</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>No sources have been added to poll. </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00058">58</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab9ff2b3b04c80aa19556ed9676bf35e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define POLARSSL_ERR_ENTROPY_SOURCE_FAILED&#160;&#160;&#160;-0x003C</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Critical entropy source failure. </p>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00056">56</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a4267ff128fbe2ca4da2584359821d09d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* f_source_ptr)(void *data, unsigned char *output, size_t len, size_t *olen)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Entropy poll callback pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>Callback-specific data pointer </td></tr>
    <tr><td class="paramname">output</td><td>Data to fill </td></tr>
    <tr><td class="paramname">len</td><td>Maximum size to provide </td></tr>
    <tr><td class="paramname">olen</td><td>The actual amount of bytes put into the buffer (Can be 0)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if no critical failures occurred, POLARSSL_ERR_ENTROPY_SOURCE_FAILED otherwise </dd></dl>

<p>Definition at line <a class="el" href="entropy_8h_source.html#l00103">103</a> of file <a class="el" href="entropy_8h_source.html">entropy.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a5a9c269e560537d59a4730faaa835fd5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int entropy_add_source </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structentropy__context.html">entropy_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="entropy_8h.html#a4267ff128fbe2ca4da2584359821d09d">f_source_ptr</a>&#160;</td>
          <td class="paramname"><em>f_source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>p_source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>threshold</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds an entropy source to poll (Thread-safe if POLARSSL_THREADING_C is enabled) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Entropy context </td></tr>
    <tr><td class="paramname">f_source</td><td>Entropy function </td></tr>
    <tr><td class="paramname">p_source</td><td>Function data </td></tr>
    <tr><td class="paramname">threshold</td><td>Minimum required from source before entropy is released ( with <a class="el" href="entropy_8h.html#a2b7d7123b31b42902364989975740fe2" title="Retrieve entropy from the accumulator (Maximum length: ENTROPY_BLOCK_SIZE) (Thread-safe if POLARSSL_T...">entropy_func()</a> )</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful or POLARSSL_ERR_ENTROPY_MAX_SOURCES </dd></dl>

</div>
</div>
<a class="anchor" id="ace26c056043473a7f12be97117262fd4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void entropy_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structentropy__context.html">entropy_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free the data in the context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Entropy context to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2b7d7123b31b42902364989975740fe2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int entropy_func </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve entropy from the accumulator (Maximum length: ENTROPY_BLOCK_SIZE) (Thread-safe if POLARSSL_THREADING_C is enabled) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>Entropy context </td></tr>
    <tr><td class="paramname">output</td><td>Buffer to fill </td></tr>
    <tr><td class="paramname">len</td><td>Number of bytes desired, must be at most ENTROPY_BLOCK_SIZE</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or POLARSSL_ERR_ENTROPY_SOURCE_FAILED </dd></dl>

</div>
</div>
<a class="anchor" id="abe16e67991416febc3144c0c8888e792"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int entropy_gather </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structentropy__context.html">entropy_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Trigger an extra gather poll for the accumulator (Thread-safe if POLARSSL_THREADING_C is enabled) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Entropy context</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or POLARSSL_ERR_ENTROPY_SOURCE_FAILED </dd></dl>

</div>
</div>
<a class="anchor" id="a07cc14e42768b04bbcc48a632ad8c442"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void entropy_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structentropy__context.html">entropy_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Entropy context to initialize </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aee40647ce61215ca2765e9ab3c84a47c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int entropy_self_test </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>verbose</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checkup routine. </p>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, or 1 if a test failed </dd></dl>

</div>
</div>
<a class="anchor" id="a474ff02ff7707ebffd00672d8e46ddf3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int entropy_update_manual </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structentropy__context.html">entropy_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add data to the accumulator manually (Thread-safe if POLARSSL_THREADING_C is enabled) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Entropy context </td></tr>
    <tr><td class="paramname">data</td><td>Data to add </td></tr>
    <tr><td class="paramname">len</td><td>Length of data</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful </dd></dl>

</div>
</div>
<a class="anchor" id="a5d16f198ece9ccdfe5f80780bf5cee33"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int entropy_update_seed_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structentropy__context.html">entropy_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read and update a seed file. </p>
<p>Seed is added to this instance. No more than ENTROPY_MAX_SEED_SIZE bytes are read from the seed file. The rest is ignored.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Entropy context </td></tr>
    <tr><td class="paramname">path</td><td>Name of the file</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, POLARSSL_ERR_ENTROPY_FILE_IO_ERROR on file error, POLARSSL_ERR_ENTROPY_SOURCE_FAILED </dd></dl>

</div>
</div>
<a class="anchor" id="aeec06418558ccfd52a9967ad54f197c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int entropy_write_seed_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structentropy__context.html">entropy_context</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a seed file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>Entropy context </td></tr>
    <tr><td class="paramname">path</td><td>Name of the file</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if successful, POLARSSL_ERR_ENTROPY_FILE_IO_ERROR on file error, or POLARSSL_ERR_ENTROPY_SOURCE_FAILED </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jul 31 2014 11:35:56 for PolarSSL v1.3.8 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>