mirror of
https://github.com/taigrr/arduinolibs
synced 2025-01-18 04:33:12 -08:00
Update docs
This commit is contained in:
195
classHash.html
195
classHash.html
@@ -85,6 +85,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#pub-methods">Public Member Functions</a> |
|
||||
<a href="#pro-methods">Protected Member Functions</a> |
|
||||
<a href="classHash-members.html">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">Hash Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
|
||||
@@ -138,6 +139,18 @@ Public Member Functions</h2></td></tr>
|
||||
<tr class="memitem:a4a959469433cd9348ab7f3ac6228bb34"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classHash.html#a4a959469433cd9348ab7f3ac6228bb34">clear</a> ()=0</td></tr>
|
||||
<tr class="memdesc:a4a959469433cd9348ab7f3ac6228bb34"><td class="mdescLeft"> </td><td class="mdescRight">Clears the hash state, removing all sensitive data, and then resets the hash ready for a new hashing process. <a href="#a4a959469433cd9348ab7f3ac6228bb34">More...</a><br/></td></tr>
|
||||
<tr class="separator:a4a959469433cd9348ab7f3ac6228bb34"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:adf50359c1f525af884721cc9034e7945"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classHash.html#adf50359c1f525af884721cc9034e7945">resetHMAC</a> (const void *key, size_t keyLen)=0</td></tr>
|
||||
<tr class="memdesc:adf50359c1f525af884721cc9034e7945"><td class="mdescLeft"> </td><td class="mdescRight">Resets the hash ready for a new HMAC hashing process. <a href="#adf50359c1f525af884721cc9034e7945">More...</a><br/></td></tr>
|
||||
<tr class="separator:adf50359c1f525af884721cc9034e7945"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aab42fa5420cc0bda4321a3d3866cfd06"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classHash.html#aab42fa5420cc0bda4321a3d3866cfd06">finalizeHMAC</a> (const void *key, size_t keyLen, void *hash, size_t hashLen)=0</td></tr>
|
||||
<tr class="memdesc:aab42fa5420cc0bda4321a3d3866cfd06"><td class="mdescLeft"> </td><td class="mdescRight">Finalizes the HMAC hashing process and returns the hash. <a href="#aab42fa5420cc0bda4321a3d3866cfd06">More...</a><br/></td></tr>
|
||||
<tr class="separator:aab42fa5420cc0bda4321a3d3866cfd06"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
|
||||
Protected Member Functions</h2></td></tr>
|
||||
<tr class="memitem:ab6f40c9af91dc3d738d9fcce59af63cc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classHash.html#ab6f40c9af91dc3d738d9fcce59af63cc">formatHMACKey</a> (void *block, const void *key, size_t len, uint8_t pad)</td></tr>
|
||||
<tr class="memdesc:ab6f40c9af91dc3d738d9fcce59af63cc"><td class="mdescLeft"> </td><td class="mdescRight">Formats a HMAC key into a block. <a href="#ab6f40c9af91dc3d738d9fcce59af63cc">More...</a><br/></td></tr>
|
||||
<tr class="separator:ab6f40c9af91dc3d738d9fcce59af63cc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p>Abstract base class for cryptographic hash algorithms. </p>
|
||||
@@ -170,7 +183,7 @@ Public Member Functions</h2></td></tr>
|
||||
<dl class="section note"><dt>Note</dt><dd>Subclasses are responsible for clearing any sensitive data that remains in the hash object when it is destroyed.</dd></dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classHash.html#a4a959469433cd9348ab7f3ac6228bb34" title="Clears the hash state, removing all sensitive data, and then resets the hash ready for a new hashing ...">clear()</a> </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="Hash_8cpp_source.html#l00047">47</a> of file <a class="el" href="Hash_8cpp_source.html">Hash.cpp</a>.</p>
|
||||
<p>Definition at line <a class="el" href="Hash_8cpp_source.html#l00048">48</a> of file <a class="el" href="Hash_8cpp_source.html">Hash.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -273,10 +286,130 @@ Public Member Functions</h2></td></tr>
|
||||
</dl>
|
||||
<p>If <em>len</em> is less than <a class="el" href="classHash.html#adcdd30de3e5ecaa2f798c0c5644d9ef8" title="Size of the hash result from finalize(). ">hashSize()</a>, then the hash value will be truncated to the first <em>len</em> bytes. If <em>len</em> is greater than <a class="el" href="classHash.html#adcdd30de3e5ecaa2f798c0c5644d9ef8" title="Size of the hash result from finalize(). ">hashSize()</a>, then the remaining bytes will left unchanged.</p>
|
||||
<p>If <a class="el" href="classHash.html#a09b3ccec22763fc86b1415695862977c" title="Finalizes the hashing process and returns the hash. ">finalize()</a> is called again, then the returned <em>hash</em> value is undefined. Call <a class="el" href="classHash.html#a7b94309acaa5f52386785fb780e5be61" title="Resets the hash ready for a new hashing process. ">reset()</a> first to start a new hashing process.</p>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classHash.html#a7b94309acaa5f52386785fb780e5be61" title="Resets the hash ready for a new hashing process. ">reset()</a>, <a class="el" href="classHash.html#aec9761ee427d122e7450de8df200265c" title="Updates the hash with more data. ">update()</a> </dd></dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classHash.html#a7b94309acaa5f52386785fb780e5be61" title="Resets the hash ready for a new hashing process. ">reset()</a>, <a class="el" href="classHash.html#aec9761ee427d122e7450de8df200265c" title="Updates the hash with more data. ">update()</a>, <a class="el" href="classHash.html#aab42fa5420cc0bda4321a3d3866cfd06" title="Finalizes the HMAC hashing process and returns the hash. ">finalizeHMAC()</a> </dd></dl>
|
||||
|
||||
<p>Implemented in <a class="el" href="classSHA3__512.html#ac0227aafb5f047bb50f0bd84df0b4b5b">SHA3_512</a>, <a class="el" href="classBLAKE2b.html#a0cd8146b7868bd0f4c24a3856f106d17">BLAKE2b</a>, <a class="el" href="classBLAKE2s.html#a751a3d772cbe1cd1dad83dbd09853b1b">BLAKE2s</a>, <a class="el" href="classSHA3__256.html#a8fe7cad1f83bd1bae1a0d521324247a1">SHA3_256</a>, <a class="el" href="classSHA1.html#a5a6a8a6169aa48e0bccadb22a149ab7c">SHA1</a>, <a class="el" href="classSHA256.html#a695157bcdf5495ba892ebac309f3abd6">SHA256</a>, and <a class="el" href="classSHA512.html#afc136ad0e77de527b031db3fb8b32464">SHA512</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aab42fa5420cc0bda4321a3d3866cfd06"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void Hash::finalizeHMAC </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const void * </td>
|
||||
<td class="paramname"><em>key</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>keyLen</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>hash</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>hashLen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Finalizes the HMAC hashing process and returns the hash. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">key</td><td>Points to the HMAC key for the hashing process. The contents of this array must be identical to the value passed to <a class="el" href="classHash.html#adf50359c1f525af884721cc9034e7945" title="Resets the hash ready for a new HMAC hashing process. ">resetHMAC()</a>. </td></tr>
|
||||
<tr><td class="paramname">keyLen</td><td>Size of the HMAC <em>key</em> in bytes. </td></tr>
|
||||
<tr><td class="paramname">hash</td><td>The buffer to return the hash value in. </td></tr>
|
||||
<tr><td class="paramname">hashLen</td><td>The length of the <em>hash</em> buffer, normally <a class="el" href="classHash.html#adcdd30de3e5ecaa2f798c0c5644d9ef8" title="Size of the hash result from finalize(). ">hashSize()</a>.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classHash.html#adf50359c1f525af884721cc9034e7945" title="Resets the hash ready for a new HMAC hashing process. ">resetHMAC()</a>, <a class="el" href="classHash.html#a09b3ccec22763fc86b1415695862977c" title="Finalizes the hashing process and returns the hash. ">finalize()</a> </dd></dl>
|
||||
|
||||
<p>Implemented in <a class="el" href="classSHA3__512.html#a25c9d2da26d01d46ba6b72c8a7905ea0">SHA3_512</a>, <a class="el" href="classBLAKE2b.html#a29fafbba26e3c1d896b4d4c428f7d52a">BLAKE2b</a>, <a class="el" href="classBLAKE2s.html#a3f910f3bd48cc4a9c5330c31bcda31fc">BLAKE2s</a>, <a class="el" href="classSHA3__256.html#a001215fa1b7d2c30717b4b5b1618d68c">SHA3_256</a>, <a class="el" href="classSHA1.html#a791db53fe9d6cc0e383b25f1da0a97b8">SHA1</a>, <a class="el" href="classSHA256.html#a28bc2510c5bdaf210a012f9f21a753cd">SHA256</a>, and <a class="el" href="classSHA512.html#a1fe9533f0d3dfdb426eb3dc4bdc31904">SHA512</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab6f40c9af91dc3d738d9fcce59af63cc"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void Hash::formatHMACKey </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void * </td>
|
||||
<td class="paramname"><em>block</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const void * </td>
|
||||
<td class="paramname"><em>key</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>len</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">uint8_t </td>
|
||||
<td class="paramname"><em>pad</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Formats a HMAC key into a block. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">block</td><td>The block to format the key into. Must be at least <a class="el" href="classHash.html#a4e4297812e3483410556830fe5d47bdf" title="Size of the internal block used by the hash algorithm. ">blockSize()</a> bytes in length. </td></tr>
|
||||
<tr><td class="paramname">key</td><td>Points to the HMAC key for the hashing process. </td></tr>
|
||||
<tr><td class="paramname">len</td><td>Length of the HMAC <em>key</em> in bytes. </td></tr>
|
||||
<tr><td class="paramname">pad</td><td>Inner (0x36) or outer (0x5C) padding value to XOR with the formatted HMAC key.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>This function is intended to help subclasses implement <a class="el" href="classHash.html#adf50359c1f525af884721cc9034e7945" title="Resets the hash ready for a new HMAC hashing process. ">resetHMAC()</a> and <a class="el" href="classHash.html#aab42fa5420cc0bda4321a3d3866cfd06" title="Finalizes the HMAC hashing process and returns the hash. ">finalizeHMAC()</a> by directly formatting the HMAC key into the subclass's internal block buffer and resetting the hash. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="Hash_8cpp_source.html#l00162">162</a> of file <a class="el" href="Hash_8cpp_source.html">Hash.cpp</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="adcdd30de3e5ecaa2f798c0c5644d9ef8"></a>
|
||||
@@ -329,10 +462,64 @@ Public Member Functions</h2></td></tr>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Resets the hash ready for a new hashing process. </p>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classHash.html#aec9761ee427d122e7450de8df200265c" title="Updates the hash with more data. ">update()</a>, <a class="el" href="classHash.html#a09b3ccec22763fc86b1415695862977c" title="Finalizes the hashing process and returns the hash. ">finalize()</a> </dd></dl>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classHash.html#aec9761ee427d122e7450de8df200265c" title="Updates the hash with more data. ">update()</a>, <a class="el" href="classHash.html#a09b3ccec22763fc86b1415695862977c" title="Finalizes the hashing process and returns the hash. ">finalize()</a>, <a class="el" href="classHash.html#adf50359c1f525af884721cc9034e7945" title="Resets the hash ready for a new HMAC hashing process. ">resetHMAC()</a> </dd></dl>
|
||||
|
||||
<p>Implemented in <a class="el" href="classSHA3__512.html#a435746d5a8b012f7c65050337cc4a23f">SHA3_512</a>, <a class="el" href="classSHA3__256.html#a57b5f29347a733e04fe47d60621f3202">SHA3_256</a>, <a class="el" href="classBLAKE2b.html#a917beae2ca6e9831a35717a526089e8a">BLAKE2b</a>, <a class="el" href="classBLAKE2s.html#a778776d15316c182fdb2df5a89b3ca02">BLAKE2s</a>, <a class="el" href="classSHA1.html#ab71aaf39ed956320054861a2fbfa454f">SHA1</a>, <a class="el" href="classSHA256.html#ad9d80d8fdccffb15497bd36285afce65">SHA256</a>, and <a class="el" href="classSHA512.html#a0d009e8d9157c3f14323e68631c33e97">SHA512</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="adf50359c1f525af884721cc9034e7945"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="mlabels">
|
||||
<tr>
|
||||
<td class="mlabels-left">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void Hash::resetHMAC </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const void * </td>
|
||||
<td class="paramname"><em>key</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"><em>keyLen</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td class="mlabels-right">
|
||||
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Resets the hash ready for a new HMAC hashing process. </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramname">key</td><td>Points to the HMAC key for the hashing process. </td></tr>
|
||||
<tr><td class="paramname">keyLen</td><td>Size of the HMAC <em>key</em> in bytes.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>The following example computes a HMAC over a series of data blocks with a specific key:</p>
|
||||
<div class="fragment"><div class="line">hash.resetHMAC(key, <span class="keyword">sizeof</span>(key));</div>
|
||||
<div class="line">hash.update(data1, <span class="keyword">sizeof</span>(data1));</div>
|
||||
<div class="line">hash.update(data2, <span class="keyword">sizeof</span>(data2));</div>
|
||||
<div class="line">...</div>
|
||||
<div class="line">hash.update(dataN, <span class="keyword">sizeof</span>(dataN));</div>
|
||||
<div class="line">hash.finalizeHMAC(key, <span class="keyword">sizeof</span>(key), hmac, <span class="keyword">sizeof</span>(hmac));</div>
|
||||
</div><!-- fragment --><p>The same key must be passed to both <a class="el" href="classHash.html#adf50359c1f525af884721cc9034e7945" title="Resets the hash ready for a new HMAC hashing process. ">resetHMAC()</a> and <a class="el" href="classHash.html#aab42fa5420cc0bda4321a3d3866cfd06" title="Finalizes the HMAC hashing process and returns the hash. ">finalizeHMAC()</a>.</p>
|
||||
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classHash.html#aab42fa5420cc0bda4321a3d3866cfd06" title="Finalizes the HMAC hashing process and returns the hash. ">finalizeHMAC()</a>, <a class="el" href="classHash.html#a7b94309acaa5f52386785fb780e5be61" title="Resets the hash ready for a new hashing process. ">reset()</a> </dd></dl>
|
||||
|
||||
<p>Implemented in <a class="el" href="classSHA3__512.html#aac7133f420f2be0288965c2e863f389b">SHA3_512</a>, <a class="el" href="classBLAKE2b.html#acb1ca4081c509d1c34b3aee465cd4494">BLAKE2b</a>, <a class="el" href="classBLAKE2s.html#a7f9745854704b34a508497105ca5e2fd">BLAKE2s</a>, <a class="el" href="classSHA3__256.html#a324fe4d268bbf23d7b492033fe3bc632">SHA3_256</a>, <a class="el" href="classSHA1.html#ad0a09a5100d59ff90c04ed5d4071b606">SHA1</a>, <a class="el" href="classSHA256.html#a2271683d6f1c7c103272f1dec55a6871">SHA256</a>, and <a class="el" href="classSHA512.html#a2427ad8bf8b6958df91bd5806986167c">SHA512</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aec9761ee427d122e7450de8df200265c"></a>
|
||||
@@ -389,7 +576,7 @@ Public Member Functions</h2></td></tr>
|
||||
</div><!-- contents -->
|
||||
<!-- start footer part -->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
Generated on Sun Mar 22 2015 15:54:26 for ArduinoLibs by  <a href="http://www.doxygen.org/index.html">
|
||||
Generated on Wed Mar 25 2015 19:36:08 for ArduinoLibs by  <a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||
</a> 1.8.6
|
||||
</small></address>
|
||||
|
||||
Reference in New Issue
Block a user