1
0
mirror of https://github.com/taigrr/arduinolibs synced 2025-01-18 04:33:12 -08:00

Update docs

This commit is contained in:
Rhys Weatherley 2015-04-02 16:37:15 +10:00
parent 95a162cdfd
commit 772ecf46e8
331 changed files with 835 additions and 566 deletions

View File

@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -415,7 +415,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -330,7 +330,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -163,7 +163,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -322,7 +322,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -694,7 +694,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -271,7 +271,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -196,7 +196,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -208,7 +208,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -233,7 +233,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:50 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -228,7 +228,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -262,7 +262,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -311,7 +311,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -232,7 +232,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:09 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -710,14 +710,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; }</div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="preprocessor"></span>}</div>
<div class="ttc" id="classRNGClass_html_a418a833cf18198fd7e5d6dbd78c99c29"><div class="ttname"><a href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a></div><div class="ttdeci">void rand(uint8_t *data, size_t len)</div><div class="ttdoc">Generates random bytes into a caller-supplied buffer. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00296">RNG.cpp:296</a></div></div>
<div class="ttc" id="classRNGClass_html_a418a833cf18198fd7e5d6dbd78c99c29"><div class="ttname"><a href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a></div><div class="ttdeci">void rand(uint8_t *data, size_t len)</div><div class="ttdoc">Generates random bytes into a caller-supplied buffer. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00298">RNG.cpp:298</a></div></div>
<div class="ttc" id="classCurve25519_html_a2e4b7dd83a019b32c76584c99bfda21a"><div class="ttname"><a href="classCurve25519.html#a2e4b7dd83a019b32c76584c99bfda21a">Curve25519::eval</a></div><div class="ttdeci">static bool eval(uint8_t result[32], const uint8_t s[32], const uint8_t x[32])</div><div class="ttdoc">Evaluates the raw Curve25519 function. </div><div class="ttdef"><b>Definition:</b> <a href="Curve25519_8cpp_source.html#l00068">Curve25519.cpp:68</a></div></div>
<div class="ttc" id="classCurve25519_html_a2b6911583d17ea9a36bbbb40d58b3d89"><div class="ttname"><a href="classCurve25519.html#a2b6911583d17ea9a36bbbb40d58b3d89">Curve25519::dh1</a></div><div class="ttdeci">static void dh1(uint8_t k[32], uint8_t f[32])</div><div class="ttdoc">Performs phase 1 of a Diffie-Hellman key exchange using Curve25519. </div><div class="ttdef"><b>Definition:</b> <a href="Curve25519_8cpp_source.html#l00231">Curve25519.cpp:231</a></div></div>
<div class="ttc" id="classCurve25519_html_a14022d6ac68ec691ffb0247275078ab9"><div class="ttname"><a href="classCurve25519.html#a14022d6ac68ec691ffb0247275078ab9">Curve25519::dh2</a></div><div class="ttdeci">static bool dh2(uint8_t k[32], uint8_t f[32])</div><div class="ttdoc">Performs phase 2 of a Diffie-Hellman key exchange using Curve25519. </div><div class="ttdef"><b>Definition:</b> <a href="Curve25519_8cpp_source.html#l00269">Curve25519.cpp:269</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -456,7 +456,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -415,7 +415,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -657,7 +657,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -575,7 +575,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -190,7 +190,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -257,7 +257,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -257,7 +257,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -257,7 +257,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -282,7 +282,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -196,7 +196,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -278,7 +278,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -352,7 +352,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -261,7 +261,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -208,7 +208,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -358,7 +358,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -166,7 +166,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -290,7 +290,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -221,7 +221,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -258,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -246,7 +246,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -121,18 +121,24 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1"> 102</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> len, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> credit)</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;{</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; RNG.<a class="code" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">stir</a>(data, len, credit);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba"> 95</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba">NoiseSource::added</a>()</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// Nothing to do here.</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1"> 117</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> len, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> credit)</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; RNG.<a class="code" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">stir</a>(data, len, credit);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div>
<div class="ttc" id="classNoiseSource_html_a601479b7d8cc215f97f2f8a18d3ef4c2"><div class="ttname"><a href="classNoiseSource.html#a601479b7d8cc215f97f2f8a18d3ef4c2">NoiseSource::NoiseSource</a></div><div class="ttdeci">NoiseSource()</div><div class="ttdoc">Constructs a new random noise source. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00036">NoiseSource.cpp:36</a></div></div>
<div class="ttc" id="classNoiseSource_html_a1af7449a5ae4a8acd34ac218c9eec6c1"><div class="ttname"><a href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a></div><div class="ttdeci">virtual void output(const uint8_t *data, size_t len, unsigned int credit)</div><div class="ttdoc">Called from subclasses to output noise to the global random number pool. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00102">NoiseSource.cpp:102</a></div></div>
<div class="ttc" id="classNoiseSource_html_a48d0efabd71ff6e557a0898be79c49ba"><div class="ttname"><a href="classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba">NoiseSource::added</a></div><div class="ttdeci">virtual void added()</div><div class="ttdoc">Called when the noise source is added to RNG with RNG.addNoiseSource(). </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00095">NoiseSource.cpp:95</a></div></div>
<div class="ttc" id="classNoiseSource_html_a1af7449a5ae4a8acd34ac218c9eec6c1"><div class="ttname"><a href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a></div><div class="ttdeci">virtual void output(const uint8_t *data, size_t len, unsigned int credit)</div><div class="ttdoc">Called from subclasses to output noise to the global random number pool. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00117">NoiseSource.cpp:117</a></div></div>
<div class="ttc" id="classNoiseSource_html_a4eca1e894a5d719fb9bf4df34a791cdb"><div class="ttname"><a href="classNoiseSource.html#a4eca1e894a5d719fb9bf4df34a791cdb">NoiseSource::~NoiseSource</a></div><div class="ttdeci">virtual ~NoiseSource()</div><div class="ttdoc">Destroys this random noise source. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00043">NoiseSource.cpp:43</a></div></div>
<div class="ttc" id="classRNGClass_html_ad99535ea23ae2fec55bdebb8c24def02"><div class="ttname"><a href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a></div><div class="ttdeci">void stir(const uint8_t *data, size_t len, unsigned int credit=0)</div><div class="ttdoc">Stirs additional entropy data into the random pool. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00406">RNG.cpp:406</a></div></div>
<div class="ttc" id="classRNGClass_html_ad99535ea23ae2fec55bdebb8c24def02"><div class="ttname"><a href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a></div><div class="ttdeci">void stir(const uint8_t *data, size_t len, unsigned int credit=0)</div><div class="ttdoc">Stirs additional entropy data into the random pool. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00408">RNG.cpp:408</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -125,21 +125,24 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classNoiseSource.html#ac8ac086f830efb5ffe3e8d506aa61c85">calibrating</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classNoiseSource.html#a7ce647815524fe84f562aca5256e12f3">stir</a>() = 0;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">output</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> len, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> credit);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;};</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba">added</a>();</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">output</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> len, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> credit);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;};</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="classNoiseSource_html_a601479b7d8cc215f97f2f8a18d3ef4c2"><div class="ttname"><a href="classNoiseSource.html#a601479b7d8cc215f97f2f8a18d3ef4c2">NoiseSource::NoiseSource</a></div><div class="ttdeci">NoiseSource()</div><div class="ttdoc">Constructs a new random noise source. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00036">NoiseSource.cpp:36</a></div></div>
<div class="ttc" id="classNoiseSource_html_a7ce647815524fe84f562aca5256e12f3"><div class="ttname"><a href="classNoiseSource.html#a7ce647815524fe84f562aca5256e12f3">NoiseSource::stir</a></div><div class="ttdeci">virtual void stir()=0</div><div class="ttdoc">Stirs entropy from this noise source into the global random number pool. </div></div>
<div class="ttc" id="classNoiseSource_html"><div class="ttname"><a href="classNoiseSource.html">NoiseSource</a></div><div class="ttdoc">Abstract base class for random noise sources. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8h_source.html#l00029">NoiseSource.h:29</a></div></div>
<div class="ttc" id="classNoiseSource_html_a1af7449a5ae4a8acd34ac218c9eec6c1"><div class="ttname"><a href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a></div><div class="ttdeci">virtual void output(const uint8_t *data, size_t len, unsigned int credit)</div><div class="ttdoc">Called from subclasses to output noise to the global random number pool. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00102">NoiseSource.cpp:102</a></div></div>
<div class="ttc" id="classNoiseSource_html_a48d0efabd71ff6e557a0898be79c49ba"><div class="ttname"><a href="classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba">NoiseSource::added</a></div><div class="ttdeci">virtual void added()</div><div class="ttdoc">Called when the noise source is added to RNG with RNG.addNoiseSource(). </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00095">NoiseSource.cpp:95</a></div></div>
<div class="ttc" id="classNoiseSource_html_a1af7449a5ae4a8acd34ac218c9eec6c1"><div class="ttname"><a href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a></div><div class="ttdeci">virtual void output(const uint8_t *data, size_t len, unsigned int credit)</div><div class="ttdoc">Called from subclasses to output noise to the global random number pool. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00117">NoiseSource.cpp:117</a></div></div>
<div class="ttc" id="classNoiseSource_html_a4eca1e894a5d719fb9bf4df34a791cdb"><div class="ttname"><a href="classNoiseSource.html#a4eca1e894a5d719fb9bf4df34a791cdb">NoiseSource::~NoiseSource</a></div><div class="ttdeci">virtual ~NoiseSource()</div><div class="ttdoc">Destroys this random noise source. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00043">NoiseSource.cpp:43</a></div></div>
<div class="ttc" id="classNoiseSource_html_ac8ac086f830efb5ffe3e8d506aa61c85"><div class="ttname"><a href="classNoiseSource.html#ac8ac086f830efb5ffe3e8d506aa61c85">NoiseSource::calibrating</a></div><div class="ttdeci">virtual bool calibrating() const =0</div><div class="ttdoc">Determine if the noise source is still calibrating itself. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -353,7 +353,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -155,7 +155,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -158,7 +158,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -435,7 +435,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -206,173 +206,176 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classRNGClass.html#aacf23b192b0e4cc8726d9abe05f5a9db"> 249</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#aacf23b192b0e4cc8726d9abe05f5a9db">RNGClass::addNoiseSource</a>(<a class="code" href="classNoiseSource.html">NoiseSource</a> &amp;source)</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;{</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"> #define MAX_NOISE_SOURCES (sizeof(noiseSources) / sizeof(noiseSources[0]))</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (count &lt; MAX_NOISE_SOURCES)</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"></span> <span class="keywordflow">if</span> (count &lt; MAX_NOISE_SOURCES) {</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; noiseSources[count++] = &amp;source;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d"> 272</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d">RNGClass::setAutoSaveTime</a>(uint16_t minutes)</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span> (!minutes)</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; minutes = 1; <span class="comment">// Just in case.</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; timeout = ((uint32_t)minutes) * 60000U;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29"> 296</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a>(uint8_t *data, <span class="keywordtype">size_t</span> len)</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;{</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// Decrease the amount of entropy in the pool.</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span> (len &gt; (credits / 8))</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; credits = 0;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; credits -= len * 8;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// Generate the random data.</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; uint8_t count = 0;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">while</span> (len &gt; 0) {</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// Force a rekey if we have generated too many blocks in this request.</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span> (count &gt;= RNG_REKEY_BLOCKS) {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; rekey();</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; count = 1;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; ++count;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="comment">// Increment the low counter word and generate a new keystream block.</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; ++(block[12]);</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="classChaCha.html#a41ac3262e52ff49dcd916d0b3b2e2038">ChaCha::hashCore</a>(stream, block, RNG_ROUNDS);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">// Copy the data to the return buffer.</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span> (len &lt; 64) {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; memcpy(data, stream, len);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; memcpy(data, stream, 64);</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; data += 64;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; len -= 64;</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">// Force a rekey after every request.</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; rekey();</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659"> 373</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659">RNGClass::available</a>(<span class="keywordtype">size_t</span> len)<span class="keyword"> const</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">if</span> (len &gt;= (RNG_MAX_CREDITS / 8))</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> credits &gt;= RNG_MAX_CREDITS;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> len &lt;= (credits / 8);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;}</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02"> 406</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> len, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> credit)</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">// Increase the entropy credit.</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span> ((credit / 8) &gt;= len)</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; credit = len * 8;</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> ((RNG_MAX_CREDITS - credits) &gt; credit)</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; credits += credit;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; credits = RNG_MAX_CREDITS;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="comment">// Process the supplied input data.</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span> (len &gt; 0) {</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">// XOR the data with the ChaCha input block in 48 byte</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// chunks and rekey the ChaCha cipher for each chunk to mix</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">// the data in. This should scatter any &quot;true entropy&quot; in</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">// the input across the entire block.</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">while</span> (len &gt; 0) {</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordtype">size_t</span> templen = len;</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span> (templen &gt; 48)</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; templen = 48;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; uint8_t *output = ((uint8_t *)block) + 16;</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; len -= templen;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">while</span> (templen &gt; 0) {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; *output++ ^= *data++;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; --templen;</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; rekey();</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; source.<a class="code" href="classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba">added</a>();</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d"> 274</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d">RNGClass::setAutoSaveTime</a>(uint16_t minutes)</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;{</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> (!minutes)</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; minutes = 1; <span class="comment">// Just in case.</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; timeout = ((uint32_t)minutes) * 60000U;</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29"> 298</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a>(uint8_t *data, <span class="keywordtype">size_t</span> len)</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;{</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">// Decrease the amount of entropy in the pool.</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span> (len &gt; (credits / 8))</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; credits = 0;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; credits -= len * 8;</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="comment">// Generate the random data.</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; uint8_t count = 0;</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">while</span> (len &gt; 0) {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Force a rekey if we have generated too many blocks in this request.</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span> (count &gt;= RNG_REKEY_BLOCKS) {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; rekey();</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; count = 1;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; ++count;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">// Increment the low counter word and generate a new keystream block.</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; ++(block[12]);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="classChaCha.html#a41ac3262e52ff49dcd916d0b3b2e2038">ChaCha::hashCore</a>(stream, block, RNG_ROUNDS);</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">// Copy the data to the return buffer.</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (len &lt; 64) {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; memcpy(data, stream, len);</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; memcpy(data, stream, 64);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; data += 64;</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; len -= 64;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// Force a rekey after every request.</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; rekey();</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;}</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659"> 375</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659">RNGClass::available</a>(<span class="keywordtype">size_t</span> len)<span class="keyword"> const</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">if</span> (len &gt;= (RNG_MAX_CREDITS / 8))</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> credits &gt;= RNG_MAX_CREDITS;</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> len &lt;= (credits / 8);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;}</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02"> 408</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> len, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> credit)</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;{</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="comment">// Increase the entropy credit.</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> ((credit / 8) &gt;= len)</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; credit = len * 8;</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span> ((RNG_MAX_CREDITS - credits) &gt; credit)</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; credits += credit;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; credits = RNG_MAX_CREDITS;</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">// Process the supplied input data.</span></div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span> (len &gt; 0) {</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">// XOR the data with the ChaCha input block in 48 byte</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">// chunks and rekey the ChaCha cipher for each chunk to mix</span></div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">// the data in. This should scatter any &quot;true entropy&quot; in</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="comment">// the input across the entire block.</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">while</span> (len &gt; 0) {</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordtype">size_t</span> templen = len;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span> (templen &gt; 48)</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; templen = 48;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; uint8_t *output = ((uint8_t *)block) + 16;</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; len -= templen;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">while</span> (templen &gt; 0) {</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; *output++ ^= *data++;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; --templen;</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">// There was no input data, so just force a rekey so we</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">// get some mixing of the state even without new data.</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; rekey();</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// Save if this is the first time we have reached max entropy.</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// This provides some protection if the system is powered off before</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// the first auto-save timeout occurs.</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span> (firstSave &amp;&amp; credits &gt;= RNG_MAX_CREDITS) {</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; firstSave = 0;</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">save</a>();</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;}</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div>
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7"> 475</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">RNGClass::save</a>()</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;{</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">// Generate random data from the current state and save</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// that as the seed. Then force a rekey.</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; ++(block[12]);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classChaCha.html#a41ac3262e52ff49dcd916d0b3b2e2038">ChaCha::hashCore</a>(stream, block, RNG_ROUNDS);</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; eeprom_write_block(stream, (<span class="keywordtype">void</span> *)(address + 1), 48);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; eeprom_update_byte((uint8_t *)address, <span class="charliteral">&#39;S&#39;</span>);</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; rekey();</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; timer = millis();</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
<div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13"> 493</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13">RNGClass::loop</a>()</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;{</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="comment">// Stir in the entropy from all registered noise sources.</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">for</span> (uint8_t posn = 0; posn &lt; count; ++posn)</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; noiseSources[posn]-&gt;<a class="code" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">stir</a>();</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// Save the seed if the auto-save timer has expired.</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span> ((millis() - timer) &gt;= timeout)</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">save</a>();</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;}</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00"> 523</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00">RNGClass::destroy</a>()</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;{</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; clean(block);</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; clean(stream);</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> posn = 0; posn &lt; <a class="code" href="classRNGClass.html#ae3a013bfc73795fd26ee36e70d89f4c2">SEED_SIZE</a>; ++posn)</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; eeprom_write_byte((uint8_t *)(address + posn), 0xFF);</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;}</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="keywordtype">void</span> RNGClass::rekey()</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;{</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="comment">// Rekey the cipher for the next request by generating a new block.</span></div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// This is intended to make it difficult to wind the random number</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="comment">// backwards if the state is captured later. The first 16 bytes of</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="comment">// &quot;block&quot; remain set to &quot;tagRNG&quot;.</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; ++(block[12]);</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <a class="code" href="classChaCha.html#a41ac3262e52ff49dcd916d0b3b2e2038">ChaCha::hashCore</a>(stream, block, RNG_ROUNDS);</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; memcpy(block + 4, stream, 48);</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="comment">// Permute the high word of the counter using the system microsecond</span></div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="comment">// counter to introduce a little bit of non-stir randomness for each</span></div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="comment">// request. Note: If random data is requested on a predictable schedule</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// then this may not help very much. It is still necessary to stir in</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="comment">// high quality entropy data on a regular basis using stir().</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; block[13] ^= micros();</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div>
<div class="ttc" id="classRNGClass_html_a139584fb249148e2058d1d645d090db7"><div class="ttname"><a href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">RNGClass::save</a></div><div class="ttdeci">void save()</div><div class="ttdoc">Saves the random seed to EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00475">RNG.cpp:475</a></div></div>
<div class="ttc" id="classRNGClass_html_a418a833cf18198fd7e5d6dbd78c99c29"><div class="ttname"><a href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a></div><div class="ttdeci">void rand(uint8_t *data, size_t len)</div><div class="ttdoc">Generates random bytes into a caller-supplied buffer. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00296">RNG.cpp:296</a></div></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; rekey();</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// There was no input data, so just force a rekey so we</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="comment">// get some mixing of the state even without new data.</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; rekey();</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// Save if this is the first time we have reached max entropy.</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// This provides some protection if the system is powered off before</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// the first auto-save timeout occurs.</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span> (firstSave &amp;&amp; credits &gt;= RNG_MAX_CREDITS) {</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; firstSave = 0;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">save</a>();</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7"> 477</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">RNGClass::save</a>()</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;{</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// Generate random data from the current state and save</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">// that as the seed. Then force a rekey.</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; ++(block[12]);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classChaCha.html#a41ac3262e52ff49dcd916d0b3b2e2038">ChaCha::hashCore</a>(stream, block, RNG_ROUNDS);</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; eeprom_write_block(stream, (<span class="keywordtype">void</span> *)(address + 1), 48);</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; eeprom_update_byte((uint8_t *)address, <span class="charliteral">&#39;S&#39;</span>);</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; rekey();</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; timer = millis();</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13"> 495</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13">RNGClass::loop</a>()</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;{</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// Stir in the entropy from all registered noise sources.</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">for</span> (uint8_t posn = 0; posn &lt; count; ++posn)</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; noiseSources[posn]-&gt;<a class="code" href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">stir</a>();</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// Save the seed if the auto-save timer has expired.</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span> ((millis() - timer) &gt;= timeout)</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">save</a>();</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;}</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00"> 525</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00">RNGClass::destroy</a>()</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;{</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; clean(block);</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; clean(stream);</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> posn = 0; posn &lt; <a class="code" href="classRNGClass.html#ae3a013bfc73795fd26ee36e70d89f4c2">SEED_SIZE</a>; ++posn)</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; eeprom_write_byte((uint8_t *)(address + posn), 0xFF);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="keywordtype">void</span> RNGClass::rekey()</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;{</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="comment">// Rekey the cipher for the next request by generating a new block.</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="comment">// This is intended to make it difficult to wind the random number</span></div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// backwards if the state is captured later. The first 16 bytes of</span></div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="comment">// &quot;block&quot; remain set to &quot;tagRNG&quot;.</span></div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; ++(block[12]);</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="classChaCha.html#a41ac3262e52ff49dcd916d0b3b2e2038">ChaCha::hashCore</a>(stream, block, RNG_ROUNDS);</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; memcpy(block + 4, stream, 48);</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="comment">// Permute the high word of the counter using the system microsecond</span></div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// counter to introduce a little bit of non-stir randomness for each</span></div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="comment">// request. Note: If random data is requested on a predictable schedule</span></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">// then this may not help very much. It is still necessary to stir in</span></div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="comment">// high quality entropy data on a regular basis using stir().</span></div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; block[13] ^= micros();</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;}</div>
<div class="ttc" id="classRNGClass_html_a139584fb249148e2058d1d645d090db7"><div class="ttname"><a href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">RNGClass::save</a></div><div class="ttdeci">void save()</div><div class="ttdoc">Saves the random seed to EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00477">RNG.cpp:477</a></div></div>
<div class="ttc" id="classRNGClass_html_a418a833cf18198fd7e5d6dbd78c99c29"><div class="ttname"><a href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a></div><div class="ttdeci">void rand(uint8_t *data, size_t len)</div><div class="ttdoc">Generates random bytes into a caller-supplied buffer. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00298">RNG.cpp:298</a></div></div>
<div class="ttc" id="classRNGClass_html_a7f1aab3c324f8e8a424d683425e0fcf8"><div class="ttname"><a href="classRNGClass.html#a7f1aab3c324f8e8a424d683425e0fcf8">RNGClass::begin</a></div><div class="ttdeci">void begin(const char *tag, int eepromAddress)</div><div class="ttdoc">Initializes the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00202">RNG.cpp:202</a></div></div>
<div class="ttc" id="classNoiseSource_html"><div class="ttname"><a href="classNoiseSource.html">NoiseSource</a></div><div class="ttdoc">Abstract base class for random noise sources. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8h_source.html#l00029">NoiseSource.h:29</a></div></div>
<div class="ttc" id="classRNGClass_html_aef3ee2fb14a39caf650dc90a0226dd31"><div class="ttname"><a href="classRNGClass.html#aef3ee2fb14a39caf650dc90a0226dd31">RNGClass::~RNGClass</a></div><div class="ttdeci">~RNGClass()</div><div class="ttdoc">Destroys this random number generator instance. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00180">RNG.cpp:180</a></div></div>
<div class="ttc" id="classNoiseSource_html_a48d0efabd71ff6e557a0898be79c49ba"><div class="ttname"><a href="classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba">NoiseSource::added</a></div><div class="ttdeci">virtual void added()</div><div class="ttdoc">Called when the noise source is added to RNG with RNG.addNoiseSource(). </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00095">NoiseSource.cpp:95</a></div></div>
<div class="ttc" id="classRNGClass_html_aacf23b192b0e4cc8726d9abe05f5a9db"><div class="ttname"><a href="classRNGClass.html#aacf23b192b0e4cc8726d9abe05f5a9db">RNGClass::addNoiseSource</a></div><div class="ttdeci">void addNoiseSource(NoiseSource &amp;source)</div><div class="ttdoc">Adds a noise source to the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00249">RNG.cpp:249</a></div></div>
<div class="ttc" id="classRNGClass_html_acbcf327242f51ae2d9209aeaa45e30e9"><div class="ttname"><a href="classRNGClass.html#acbcf327242f51ae2d9209aeaa45e30e9">RNGClass::RNGClass</a></div><div class="ttdeci">RNGClass()</div><div class="ttdoc">Constructs a new random number generator instance. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00167">RNG.cpp:167</a></div></div>
<div class="ttc" id="classRNGClass_html_a9901367d86f2303a59bbc12fe91cad00"><div class="ttname"><a href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00">RNGClass::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Destroys the data in the random number pool and the saved seed in EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00523">RNG.cpp:523</a></div></div>
<div class="ttc" id="classRNGClass_html_a49e3231ba65a5e4b045bc90976e0a659"><div class="ttname"><a href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659">RNGClass::available</a></div><div class="ttdeci">bool available(size_t len) const </div><div class="ttdoc">Determine if there is sufficient entropy available for a specific request size. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00373">RNG.cpp:373</a></div></div>
<div class="ttc" id="classRNGClass_html_a8cb91e39f0c4591de5bf98b1e2880b13"><div class="ttname"><a href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13">RNGClass::loop</a></div><div class="ttdeci">void loop()</div><div class="ttdoc">Run periodic housekeeping tasks on the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00493">RNG.cpp:493</a></div></div>
<div class="ttc" id="classRNGClass_html_a9901367d86f2303a59bbc12fe91cad00"><div class="ttname"><a href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00">RNGClass::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Destroys the data in the random number pool and the saved seed in EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00525">RNG.cpp:525</a></div></div>
<div class="ttc" id="classRNGClass_html_a49e3231ba65a5e4b045bc90976e0a659"><div class="ttname"><a href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659">RNGClass::available</a></div><div class="ttdeci">bool available(size_t len) const </div><div class="ttdoc">Determine if there is sufficient entropy available for a specific request size. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00375">RNG.cpp:375</a></div></div>
<div class="ttc" id="classRNGClass_html_a8cb91e39f0c4591de5bf98b1e2880b13"><div class="ttname"><a href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13">RNGClass::loop</a></div><div class="ttdeci">void loop()</div><div class="ttdoc">Run periodic housekeeping tasks on the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00495">RNG.cpp:495</a></div></div>
<div class="ttc" id="classRNGClass_html"><div class="ttname"><a href="classRNGClass.html">RNGClass</a></div><div class="ttdoc">Pseudo random number generator suitable for cryptography. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8h_source.html#l00031">RNG.h:31</a></div></div>
<div class="ttc" id="classRNGClass_html_ae3a013bfc73795fd26ee36e70d89f4c2"><div class="ttname"><a href="classRNGClass.html#ae3a013bfc73795fd26ee36e70d89f4c2">RNGClass::SEED_SIZE</a></div><div class="ttdeci">static const int SEED_SIZE</div><div class="ttdoc">Size of a saved random number seed in EEPROM space. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8h_source.html#l00053">RNG.h:53</a></div></div>
<div class="ttc" id="classChaCha_html_a41ac3262e52ff49dcd916d0b3b2e2038"><div class="ttname"><a href="classChaCha.html#a41ac3262e52ff49dcd916d0b3b2e2038">ChaCha::hashCore</a></div><div class="ttdeci">static void hashCore(uint32_t *output, const uint32_t *input, uint8_t rounds)</div><div class="ttdoc">Executes the ChaCha hash core on an input memory block. </div><div class="ttdef"><b>Definition:</b> <a href="ChaCha_8cpp_source.html#l00253">ChaCha.cpp:253</a></div></div>
<div class="ttc" id="classRNGClass_html_ad99535ea23ae2fec55bdebb8c24def02"><div class="ttname"><a href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a></div><div class="ttdeci">void stir(const uint8_t *data, size_t len, unsigned int credit=0)</div><div class="ttdoc">Stirs additional entropy data into the random pool. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00406">RNG.cpp:406</a></div></div>
<div class="ttc" id="classRNGClass_html_a5848e87a5f2f0302c88b0377f0e3366d"><div class="ttname"><a href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d">RNGClass::setAutoSaveTime</a></div><div class="ttdeci">void setAutoSaveTime(uint16_t minutes)</div><div class="ttdoc">Sets the amount of time between automatic seed saves. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00272">RNG.cpp:272</a></div></div>
<div class="ttc" id="classRNGClass_html_ad99535ea23ae2fec55bdebb8c24def02"><div class="ttname"><a href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a></div><div class="ttdeci">void stir(const uint8_t *data, size_t len, unsigned int credit=0)</div><div class="ttdoc">Stirs additional entropy data into the random pool. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00408">RNG.cpp:408</a></div></div>
<div class="ttc" id="classRNGClass_html_a5848e87a5f2f0302c88b0377f0e3366d"><div class="ttname"><a href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d">RNGClass::setAutoSaveTime</a></div><div class="ttdeci">void setAutoSaveTime(uint16_t minutes)</div><div class="ttdoc">Sets the amount of time between automatic seed saves. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00274">RNG.cpp:274</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -159,24 +159,24 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">extern</span> <a class="code" href="classRNGClass.html">RNGClass</a> RNG;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="classRNGClass_html_a139584fb249148e2058d1d645d090db7"><div class="ttname"><a href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">RNGClass::save</a></div><div class="ttdeci">void save()</div><div class="ttdoc">Saves the random seed to EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00475">RNG.cpp:475</a></div></div>
<div class="ttc" id="classRNGClass_html_a418a833cf18198fd7e5d6dbd78c99c29"><div class="ttname"><a href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a></div><div class="ttdeci">void rand(uint8_t *data, size_t len)</div><div class="ttdoc">Generates random bytes into a caller-supplied buffer. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00296">RNG.cpp:296</a></div></div>
<div class="ttc" id="classRNGClass_html_a139584fb249148e2058d1d645d090db7"><div class="ttname"><a href="classRNGClass.html#a139584fb249148e2058d1d645d090db7">RNGClass::save</a></div><div class="ttdeci">void save()</div><div class="ttdoc">Saves the random seed to EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00477">RNG.cpp:477</a></div></div>
<div class="ttc" id="classRNGClass_html_a418a833cf18198fd7e5d6dbd78c99c29"><div class="ttname"><a href="classRNGClass.html#a418a833cf18198fd7e5d6dbd78c99c29">RNGClass::rand</a></div><div class="ttdeci">void rand(uint8_t *data, size_t len)</div><div class="ttdoc">Generates random bytes into a caller-supplied buffer. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00298">RNG.cpp:298</a></div></div>
<div class="ttc" id="classRNGClass_html_a7f1aab3c324f8e8a424d683425e0fcf8"><div class="ttname"><a href="classRNGClass.html#a7f1aab3c324f8e8a424d683425e0fcf8">RNGClass::begin</a></div><div class="ttdeci">void begin(const char *tag, int eepromAddress)</div><div class="ttdoc">Initializes the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00202">RNG.cpp:202</a></div></div>
<div class="ttc" id="classNoiseSource_html"><div class="ttname"><a href="classNoiseSource.html">NoiseSource</a></div><div class="ttdoc">Abstract base class for random noise sources. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8h_source.html#l00029">NoiseSource.h:29</a></div></div>
<div class="ttc" id="classRNGClass_html_aef3ee2fb14a39caf650dc90a0226dd31"><div class="ttname"><a href="classRNGClass.html#aef3ee2fb14a39caf650dc90a0226dd31">RNGClass::~RNGClass</a></div><div class="ttdeci">~RNGClass()</div><div class="ttdoc">Destroys this random number generator instance. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00180">RNG.cpp:180</a></div></div>
<div class="ttc" id="classRNGClass_html_aacf23b192b0e4cc8726d9abe05f5a9db"><div class="ttname"><a href="classRNGClass.html#aacf23b192b0e4cc8726d9abe05f5a9db">RNGClass::addNoiseSource</a></div><div class="ttdeci">void addNoiseSource(NoiseSource &amp;source)</div><div class="ttdoc">Adds a noise source to the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00249">RNG.cpp:249</a></div></div>
<div class="ttc" id="classRNGClass_html_acbcf327242f51ae2d9209aeaa45e30e9"><div class="ttname"><a href="classRNGClass.html#acbcf327242f51ae2d9209aeaa45e30e9">RNGClass::RNGClass</a></div><div class="ttdeci">RNGClass()</div><div class="ttdoc">Constructs a new random number generator instance. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00167">RNG.cpp:167</a></div></div>
<div class="ttc" id="classRNGClass_html_a9901367d86f2303a59bbc12fe91cad00"><div class="ttname"><a href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00">RNGClass::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Destroys the data in the random number pool and the saved seed in EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00523">RNG.cpp:523</a></div></div>
<div class="ttc" id="classRNGClass_html_a49e3231ba65a5e4b045bc90976e0a659"><div class="ttname"><a href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659">RNGClass::available</a></div><div class="ttdeci">bool available(size_t len) const </div><div class="ttdoc">Determine if there is sufficient entropy available for a specific request size. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00373">RNG.cpp:373</a></div></div>
<div class="ttc" id="classRNGClass_html_a8cb91e39f0c4591de5bf98b1e2880b13"><div class="ttname"><a href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13">RNGClass::loop</a></div><div class="ttdeci">void loop()</div><div class="ttdoc">Run periodic housekeeping tasks on the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00493">RNG.cpp:493</a></div></div>
<div class="ttc" id="classRNGClass_html_a9901367d86f2303a59bbc12fe91cad00"><div class="ttname"><a href="classRNGClass.html#a9901367d86f2303a59bbc12fe91cad00">RNGClass::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Destroys the data in the random number pool and the saved seed in EEPROM. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00525">RNG.cpp:525</a></div></div>
<div class="ttc" id="classRNGClass_html_a49e3231ba65a5e4b045bc90976e0a659"><div class="ttname"><a href="classRNGClass.html#a49e3231ba65a5e4b045bc90976e0a659">RNGClass::available</a></div><div class="ttdeci">bool available(size_t len) const </div><div class="ttdoc">Determine if there is sufficient entropy available for a specific request size. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00375">RNG.cpp:375</a></div></div>
<div class="ttc" id="classRNGClass_html_a8cb91e39f0c4591de5bf98b1e2880b13"><div class="ttname"><a href="classRNGClass.html#a8cb91e39f0c4591de5bf98b1e2880b13">RNGClass::loop</a></div><div class="ttdeci">void loop()</div><div class="ttdoc">Run periodic housekeeping tasks on the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00495">RNG.cpp:495</a></div></div>
<div class="ttc" id="classRNGClass_html"><div class="ttname"><a href="classRNGClass.html">RNGClass</a></div><div class="ttdoc">Pseudo random number generator suitable for cryptography. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8h_source.html#l00031">RNG.h:31</a></div></div>
<div class="ttc" id="classRNGClass_html_ae3a013bfc73795fd26ee36e70d89f4c2"><div class="ttname"><a href="classRNGClass.html#ae3a013bfc73795fd26ee36e70d89f4c2">RNGClass::SEED_SIZE</a></div><div class="ttdeci">static const int SEED_SIZE</div><div class="ttdoc">Size of a saved random number seed in EEPROM space. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8h_source.html#l00053">RNG.h:53</a></div></div>
<div class="ttc" id="classRNGClass_html_ad99535ea23ae2fec55bdebb8c24def02"><div class="ttname"><a href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a></div><div class="ttdeci">void stir(const uint8_t *data, size_t len, unsigned int credit=0)</div><div class="ttdoc">Stirs additional entropy data into the random pool. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00406">RNG.cpp:406</a></div></div>
<div class="ttc" id="classRNGClass_html_a5848e87a5f2f0302c88b0377f0e3366d"><div class="ttname"><a href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d">RNGClass::setAutoSaveTime</a></div><div class="ttdeci">void setAutoSaveTime(uint16_t minutes)</div><div class="ttdoc">Sets the amount of time between automatic seed saves. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00272">RNG.cpp:272</a></div></div>
<div class="ttc" id="classRNGClass_html_ad99535ea23ae2fec55bdebb8c24def02"><div class="ttname"><a href="classRNGClass.html#ad99535ea23ae2fec55bdebb8c24def02">RNGClass::stir</a></div><div class="ttdeci">void stir(const uint8_t *data, size_t len, unsigned int credit=0)</div><div class="ttdoc">Stirs additional entropy data into the random pool. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00408">RNG.cpp:408</a></div></div>
<div class="ttc" id="classRNGClass_html_a5848e87a5f2f0302c88b0377f0e3366d"><div class="ttname"><a href="classRNGClass.html#a5848e87a5f2f0302c88b0377f0e3366d">RNGClass::setAutoSaveTime</a></div><div class="ttdeci">void setAutoSaveTime(uint16_t minutes)</div><div class="ttdoc">Sets the amount of time between automatic seed saves. </div><div class="ttdef"><b>Definition:</b> <a href="RNG_8cpp_source.html#l00274">RNG.cpp:274</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -380,7 +380,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -237,7 +237,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_bc0718b08fb2015b8e59c47b2805f60c.html">libraries</a></li><li class="navelem"><a class="el" href="dir_e2ce51835550ba18edf07a8311722290.html">Crypto</a></li> </ul>
<li class="navelem"><a class="el" href="dir_bc0718b08fb2015b8e59c47b2805f60c.html">libraries</a></li><li class="navelem"><a class="el" href="dir_3dd03323535933fb3f714c41ff7a94da.html">RingOscillatorNoiseSource</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@ -281,11 +281,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div>
<div class="ttc" id="classRingOscillatorNoiseSource_html_ad71698b5c92b41eef2f1322999b3eff9"><div class="ttname"><a href="classRingOscillatorNoiseSource.html#ad71698b5c92b41eef2f1322999b3eff9">RingOscillatorNoiseSource::stir</a></div><div class="ttdeci">void stir()</div><div class="ttdoc">Stirs entropy from this noise source into the global random number pool. </div><div class="ttdef"><b>Definition:</b> <a href="RingOscillatorNoiseSource_8cpp_source.html#l00201">RingOscillatorNoiseSource.cpp:201</a></div></div>
<div class="ttc" id="classRingOscillatorNoiseSource_html_ade7f7ed390e23722347b3c207912b3f9"><div class="ttname"><a href="classRingOscillatorNoiseSource.html#ade7f7ed390e23722347b3c207912b3f9">RingOscillatorNoiseSource::calibrating</a></div><div class="ttdeci">bool calibrating() const </div><div class="ttdoc">Determine if the noise source is still calibrating itself. </div><div class="ttdef"><b>Definition:</b> <a href="RingOscillatorNoiseSource_8cpp_source.html#l00178">RingOscillatorNoiseSource.cpp:178</a></div></div>
<div class="ttc" id="classNoiseSource_html_a1af7449a5ae4a8acd34ac218c9eec6c1"><div class="ttname"><a href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a></div><div class="ttdeci">virtual void output(const uint8_t *data, size_t len, unsigned int credit)</div><div class="ttdoc">Called from subclasses to output noise to the global random number pool. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00102">NoiseSource.cpp:102</a></div></div>
<div class="ttc" id="classNoiseSource_html_a1af7449a5ae4a8acd34ac218c9eec6c1"><div class="ttname"><a href="classNoiseSource.html#a1af7449a5ae4a8acd34ac218c9eec6c1">NoiseSource::output</a></div><div class="ttdeci">virtual void output(const uint8_t *data, size_t len, unsigned int credit)</div><div class="ttdoc">Called from subclasses to output noise to the global random number pool. </div><div class="ttdef"><b>Definition:</b> <a href="NoiseSource_8cpp_source.html#l00117">NoiseSource.cpp:117</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -80,7 +80,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_bc0718b08fb2015b8e59c47b2805f60c.html">libraries</a></li><li class="navelem"><a class="el" href="dir_e2ce51835550ba18edf07a8311722290.html">Crypto</a></li> </ul>
<li class="navelem"><a class="el" href="dir_bc0718b08fb2015b8e59c47b2805f60c.html">libraries</a></li><li class="navelem"><a class="el" href="dir_3dd03323535933fb3f714c41ff7a94da.html">RingOscillatorNoiseSource</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -323,7 +323,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -339,7 +339,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -257,7 +257,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -188,7 +188,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

View File

@ -355,7 +355,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Apr 1 2015 16:36:10 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Thu Apr 2 2015 16:36:51 for ArduinoLibs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>

Some files were not shown because too many files have changed in this diff Show More