<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ldns documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <div class="logo"> <img src="LogoInGradientBar2-y100.png"/> </div> <!-- Generated by Doxygen 1.7.4 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#define-members">Defines</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">sha2.c File Reference</div> </div> </div> <div class="contents"> <p><a href="sha2_8c_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a30f0f7734f48f233ee4ea8b328342067">ldns_sha256_SHORT_BLOCK_LENGTH</a>   (LDNS_SHA256_BLOCK_LENGTH - 8)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a0af4aa084f4f7b4418f967568b4e1249">ldns_sha384_SHORT_BLOCK_LENGTH</a>   (LDNS_SHA384_BLOCK_LENGTH - 16)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a53ebe62ce8c8959c921160f16ecf83b0">ldns_sha512_SHORT_BLOCK_LENGTH</a>   (LDNS_SHA512_BLOCK_LENGTH - 16)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a7164c79bb6bc80abcb61cb96eef4194e">REVERSE32</a>(w, x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a5399a7e8dab676a6c36fe85c91ae1366">REVERSE64</a>(w, x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a32ce6a800376f90c7cee70ac2e7255d6">ADDINC128</a>(w, n)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a324569b417209f3e941991d642302d51">SHA2_USE_MEMSET_MEMCPY</a>   1</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a8e212a8c6f84340a49f10895833e2f2d">MEMSET_BZERO</a>(p, l)   memset((p), 0, (l))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#aa357cebb0a4ac20de95565894de5f793">MEMCPY_BCOPY</a>(d, s, l)   memcpy((d), (s), (l))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#af299e0982ce71aad5027c4a7315e536f">R</a>(b, x)   ((x) >> (b))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#afe83c8790798dddd30665496143a853b">S32</a>(b, x)   (((x) >> (b)) | ((x) << (32 - (b))))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a04c57d7554181e15fe6063a477d28236">S64</a>(b, x)   (((x) >> (b)) | ((x) << (64 - (b))))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#ab0a0d1ad13c7e4d3cb38c89f7127c85a">Ch</a>(x, y, z)   (((x) & (y)) ^ ((~(x)) & (z)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a447cd1d7fb703b62666400976be24bf3">Maj</a>(x, y, z)   (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a1d3b933bf48a1c763775d358313f44a6">Sigma0_256</a>(x)   (S32(2, (x)) ^ S32(13, (x)) ^ S32(22, (x)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a98f25dda8f234733acf0386d6d5187fd">Sigma1_256</a>(x)   (S32(6, (x)) ^ S32(11, (x)) ^ S32(25, (x)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#afdc787683d72110451742acd5bf41d16">sigma0_256</a>(x)   (S32(7, (x)) ^ S32(18, (x)) ^ R(3 , (x)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a6daf5f3524cf68e6a2e19de772070e77">sigma1_256</a>(x)   (S32(17, (x)) ^ S32(19, (x)) ^ R(10, (x)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a07b4672fd77b0b5f2bf0041e2faf0b45">Sigma0_512</a>(x)   (S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a6a0406d09af6eaa6d933070801f74002">Sigma1_512</a>(x)   (S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a449da15ce26bdf3bf58925e17c7864b3">sigma0_512</a>(x)   (S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7, (x)))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#adcf0e492a43c6f34a3a5023a0a448e2d">sigma1_512</a>(x)   (S64(19, (x)) ^ S64(61, (x)) ^ R( 6, (x)))</td></tr> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a0f9949252a32367cfad50583447e3f5f">sha2_word32</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#aa546cbc3e1ac5d6426230fbf71e7caa9">sha2_word64</a></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a7247a2faf1bb3e33b9535ebe24d5a78f">ldns_sha256_init</a> (<a class="el" href="struct__ldns__sha256__CTX.html">ldns_sha256_CTX</a> *context)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a262db1dfb48ef54e404afd5ea3d0f912">ldns_sha256_update</a> (<a class="el" href="struct__ldns__sha256__CTX.html">ldns_sha256_CTX</a> *context, const <a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> *data, size_t len)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#adb27a52671cc00f00a3eb601deb19070">ldns_sha256_final</a> (<a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> digest[], <a class="el" href="struct__ldns__sha256__CTX.html">ldns_sha256_CTX</a> *context)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#af8f3852a5a417bc3fe786a477ec86f0f">ldns_sha256</a> (unsigned char *data, unsigned int data_len, unsigned char *digest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to digest a fixed block of data at once. <a href="#af8f3852a5a417bc3fe786a477ec86f0f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a38a7d2743cb7a0d4eedfdd835f7b6157">ldns_sha512_init</a> (<a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha512_CTX</a> *context)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a8d3c22ce0c1e995b63fc025ce0acd919">ldns_sha512_update</a> (<a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha512_CTX</a> *context, const <a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> *data, size_t len)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a6222b5f02b5c1222a801be5d6def0340">ldns_sha512_final</a> (<a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> digest[], <a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha512_CTX</a> *context)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a8d5fb1fd280a58618420c4a24e83cba8">ldns_sha512</a> (unsigned char *data, unsigned int data_len, unsigned char *digest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to digest a fixed block of data at once. <a href="#a8d5fb1fd280a58618420c4a24e83cba8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#afde6a224995abcbeca0eae414326e310">ldns_sha384_init</a> (<a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha384_CTX</a> *context)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a6b9a1c163a057e4c30e8ec1dc283abed">ldns_sha384_update</a> (<a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha384_CTX</a> *context, const <a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> *data, size_t len)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a4ee7d4d8b2edffb19851d2a2c1f9844b">ldns_sha384_final</a> (<a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> digest[], <a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha384_CTX</a> *context)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#adb96cbe7b4edf0bd1f162613706996e0">ldns_sha384</a> (unsigned char *data, unsigned int data_len, unsigned char *digest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to digest a fixed block of data at once. <a href="#adb96cbe7b4edf0bd1f162613706996e0"></a><br/></td></tr> </table> <hr/><h2>Define Documentation</h2> <a class="anchor" id="a30f0f7734f48f233ee4ea8b328342067"></a><!-- doxytag: member="sha2.c::ldns_sha256_SHORT_BLOCK_LENGTH" ref="a30f0f7734f48f233ee4ea8b328342067" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ldns_sha256_SHORT_BLOCK_LENGTH   (LDNS_SHA256_BLOCK_LENGTH - 8)</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00111">111</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a0af4aa084f4f7b4418f967568b4e1249"></a><!-- doxytag: member="sha2.c::ldns_sha384_SHORT_BLOCK_LENGTH" ref="a0af4aa084f4f7b4418f967568b4e1249" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ldns_sha384_SHORT_BLOCK_LENGTH   (LDNS_SHA384_BLOCK_LENGTH - 16)</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00112">112</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a53ebe62ce8c8959c921160f16ecf83b0"></a><!-- doxytag: member="sha2.c::ldns_sha512_SHORT_BLOCK_LENGTH" ref="a53ebe62ce8c8959c921160f16ecf83b0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ldns_sha512_SHORT_BLOCK_LENGTH   (LDNS_SHA512_BLOCK_LENGTH - 16)</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00113">113</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a7164c79bb6bc80abcb61cb96eef4194e"></a><!-- doxytag: member="sha2.c::REVERSE32" ref="a7164c79bb6bc80abcb61cb96eef4194e" args="(w, x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define REVERSE32</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">w, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">x </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">{ \ <a class="code" href="sha2_8c.html#a0f9949252a32367cfad50583447e3f5f">sha2_word32</a> tmp = (w); \ tmp = (tmp >> 16) | (tmp << 16); \ (x) = ((tmp & 0xff00ff00UL) >> 8) | ((tmp & 0x00ff00ffUL) << 8); \ } </pre></div> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00118">118</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a5399a7e8dab676a6c36fe85c91ae1366"></a><!-- doxytag: member="sha2.c::REVERSE64" ref="a5399a7e8dab676a6c36fe85c91ae1366" args="(w, x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define REVERSE64</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">w, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">x </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">{ \ <a class="code" href="sha2_8c.html#aa546cbc3e1ac5d6426230fbf71e7caa9">sha2_word64</a> tmp = (w); \ tmp = (tmp >> 32) | (tmp << 32); \ tmp = ((tmp & 0xff00ff00ff00ff00ULL) >> 8) | \ ((tmp & 0x00ff00ff00ff00ffULL) << 8); \ (x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \ ((tmp & 0x0000ffff0000ffffULL) << 16); \ } </pre></div> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00124">124</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a32ce6a800376f90c7cee70ac2e7255d6"></a><!-- doxytag: member="sha2.c::ADDINC128" ref="a32ce6a800376f90c7cee70ac2e7255d6" args="(w, n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ADDINC128</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">w, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">n </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">{ \ (w)[0] += (<a class="code" href="sha2_8c.html#aa546cbc3e1ac5d6426230fbf71e7caa9">sha2_word64</a>)(n); \ <span class="keywordflow">if</span> ((w)[0] < (n)) { \ (w)[1]++; \ } \ } </pre></div> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00142">142</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a324569b417209f3e941991d642302d51"></a><!-- doxytag: member="sha2.c::SHA2_USE_MEMSET_MEMCPY" ref="a324569b417209f3e941991d642302d51" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SHA2_USE_MEMSET_MEMCPY   1</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00164">164</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a8e212a8c6f84340a49f10895833e2f2d"></a><!-- doxytag: member="sha2.c::MEMSET_BZERO" ref="a8e212a8c6f84340a49f10895833e2f2d" args="(p, l)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MEMSET_BZERO</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">p, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">l </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   memset((p), 0, (l))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00172">172</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="aa357cebb0a4ac20de95565894de5f793"></a><!-- doxytag: member="sha2.c::MEMCPY_BCOPY" ref="aa357cebb0a4ac20de95565894de5f793" args="(d, s, l)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MEMCPY_BCOPY</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">d, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">s, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">l </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   memcpy((d), (s), (l))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00173">173</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="af299e0982ce71aad5027c4a7315e536f"></a><!-- doxytag: member="sha2.c::R" ref="af299e0982ce71aad5027c4a7315e536f" args="(b, x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define R</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">x </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   ((x) >> (b))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00191">191</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="afe83c8790798dddd30665496143a853b"></a><!-- doxytag: member="sha2.c::S32" ref="afe83c8790798dddd30665496143a853b" args="(b, x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define S32</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">x </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (((x) >> (b)) | ((x) << (32 - (b))))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00193">193</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a04c57d7554181e15fe6063a477d28236"></a><!-- doxytag: member="sha2.c::S64" ref="a04c57d7554181e15fe6063a477d28236" args="(b, x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define S64</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">b, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">x </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (((x) >> (b)) | ((x) << (64 - (b))))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00195">195</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="ab0a0d1ad13c7e4d3cb38c89f7127c85a"></a><!-- doxytag: member="sha2.c::Ch" ref="ab0a0d1ad13c7e4d3cb38c89f7127c85a" args="(x, y, z)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define Ch</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">y, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">z </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (((x) & (y)) ^ ((~(x)) & (z)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00198">198</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a447cd1d7fb703b62666400976be24bf3"></a><!-- doxytag: member="sha2.c::Maj" ref="a447cd1d7fb703b62666400976be24bf3" args="(x, y, z)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define Maj</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">y, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">z </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00199">199</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a1d3b933bf48a1c763775d358313f44a6"></a><!-- doxytag: member="sha2.c::Sigma0_256" ref="a1d3b933bf48a1c763775d358313f44a6" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define Sigma0_256</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S32(2, (x)) ^ S32(13, (x)) ^ S32(22, (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00202">202</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a98f25dda8f234733acf0386d6d5187fd"></a><!-- doxytag: member="sha2.c::Sigma1_256" ref="a98f25dda8f234733acf0386d6d5187fd" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define Sigma1_256</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S32(6, (x)) ^ S32(11, (x)) ^ S32(25, (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00203">203</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="afdc787683d72110451742acd5bf41d16"></a><!-- doxytag: member="sha2.c::sigma0_256" ref="afdc787683d72110451742acd5bf41d16" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define sigma0_256</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S32(7, (x)) ^ S32(18, (x)) ^ R(3 , (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00204">204</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a6daf5f3524cf68e6a2e19de772070e77"></a><!-- doxytag: member="sha2.c::sigma1_256" ref="a6daf5f3524cf68e6a2e19de772070e77" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define sigma1_256</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S32(17, (x)) ^ S32(19, (x)) ^ R(10, (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00205">205</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a07b4672fd77b0b5f2bf0041e2faf0b45"></a><!-- doxytag: member="sha2.c::Sigma0_512" ref="a07b4672fd77b0b5f2bf0041e2faf0b45" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define Sigma0_512</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00208">208</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a6a0406d09af6eaa6d933070801f74002"></a><!-- doxytag: member="sha2.c::Sigma1_512" ref="a6a0406d09af6eaa6d933070801f74002" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define Sigma1_512</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00209">209</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a449da15ce26bdf3bf58925e17c7864b3"></a><!-- doxytag: member="sha2.c::sigma0_512" ref="a449da15ce26bdf3bf58925e17c7864b3" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define sigma0_512</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7, (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00210">210</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="adcf0e492a43c6f34a3a5023a0a448e2d"></a><!-- doxytag: member="sha2.c::sigma1_512" ref="adcf0e492a43c6f34a3a5023a0a448e2d" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define sigma1_512</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td><td>)</td> <td>   (S64(19, (x)) ^ S64(61, (x)) ^ R( 6, (x)))</td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00211">211</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="a078da424bb2de5634b5e52fff5a73815"></a><!-- doxytag: member="sha2.c::sha2_byte" ref="a078da424bb2de5634b5e52fff5a73815" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef uint8_t <a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00101">101</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="a0f9949252a32367cfad50583447e3f5f"></a><!-- doxytag: member="sha2.c::sha2_word32" ref="a0f9949252a32367cfad50583447e3f5f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef uint32_t <a class="el" href="sha2_8c.html#a0f9949252a32367cfad50583447e3f5f">sha2_word32</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00102">102</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <a class="anchor" id="aa546cbc3e1ac5d6426230fbf71e7caa9"></a><!-- doxytag: member="sha2.c::sha2_word64" ref="aa546cbc3e1ac5d6426230fbf71e7caa9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef uint64_t <a class="el" href="sha2_8c.html#aa546cbc3e1ac5d6426230fbf71e7caa9">sha2_word64</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00106">106</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a7247a2faf1bb3e33b9535ebe24d5a78f"></a><!-- doxytag: member="sha2.c::ldns_sha256_init" ref="a7247a2faf1bb3e33b9535ebe24d5a78f" args="(ldns_sha256_CTX *context)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha256_init </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ldns__sha256__CTX.html">ldns_sha256_CTX</a> * </td> <td class="paramname"><em>context</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00315">315</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8h_source.html#l00084">_ldns_sha256_CTX::bitcount</a>, <a class="el" href="sha2_8h_source.html#l00085">_ldns_sha256_CTX::buffer</a>, <a class="el" href="sha2_8h_source.html#l00069">LDNS_SHA256_BLOCK_LENGTH</a>, <a class="el" href="sha2_8h_source.html#l00070">LDNS_SHA256_DIGEST_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>, <a class="el" href="sha2_8c_source.html#l00172">MEMSET_BZERO</a>, and <a class="el" href="sha2_8h_source.html#l00083">_ldns_sha256_CTX::state</a>.</p> </div> </div> <a class="anchor" id="a262db1dfb48ef54e404afd5ea3d0f912"></a><!-- doxytag: member="sha2.c::ldns_sha256_update" ref="a262db1dfb48ef54e404afd5ea3d0f912" args="(ldns_sha256_CTX *context, const sha2_byte *data, size_t len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha256_update </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ldns__sha256__CTX.html">ldns_sha256_CTX</a> * </td> <td class="paramname"><em>context</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> * </td> <td class="paramname"><em>data</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></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00501">501</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8h_source.html#l00084">_ldns_sha256_CTX::bitcount</a>, <a class="el" href="sha2_8h_source.html#l00085">_ldns_sha256_CTX::buffer</a>, <a class="el" href="sha2_8h_source.html#l00069">LDNS_SHA256_BLOCK_LENGTH</a>, and <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>.</p> </div> </div> <a class="anchor" id="adb27a52671cc00f00a3eb601deb19070"></a><!-- doxytag: member="sha2.c::ldns_sha256_final" ref="adb27a52671cc00f00a3eb601deb19070" args="(sha2_byte digest[], ldns_sha256_CTX *context)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha256_final </td> <td>(</td> <td class="paramtype"><a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> </td> <td class="paramname"><em>digest</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__ldns__sha256__CTX.html">ldns_sha256_CTX</a> * </td> <td class="paramname"><em>context</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00549">549</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8h_source.html#l00084">_ldns_sha256_CTX::bitcount</a>, <a class="el" href="sha2_8h_source.html#l00085">_ldns_sha256_CTX::buffer</a>, <a class="el" href="sha2_8h_source.html#l00069">LDNS_SHA256_BLOCK_LENGTH</a>, <a class="el" href="sha2_8h_source.html#l00070">LDNS_SHA256_DIGEST_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00111">ldns_sha256_SHORT_BLOCK_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>, <a class="el" href="sha2_8c_source.html#l00172">MEMSET_BZERO</a>, <a class="el" href="sha2_8c_source.html#l00118">REVERSE32</a>, <a class="el" href="sha2_8c_source.html#l00124">REVERSE64</a>, and <a class="el" href="sha2_8h_source.html#l00083">_ldns_sha256_CTX::state</a>.</p> </div> </div> <a class="anchor" id="af8f3852a5a417bc3fe786a477ec86f0f"></a><!-- doxytag: member="sha2.c::ldns_sha256" ref="af8f3852a5a417bc3fe786a477ec86f0f" args="(unsigned char *data, unsigned int data_len, unsigned char *digest)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned char* ldns_sha256 </td> <td>(</td> <td class="paramtype">unsigned char * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>data_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char * </td> <td class="paramname"><em>digest</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convenience function to digest a fixed block of data at once. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>the data to digest </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">data_len</td><td>the length of data in bytes </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">digest</td><td>the length of data in bytes This pointer MUST have LDNS_SHA256_DIGEST_LENGTH bytes available </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the SHA1 digest of the given data </dd></dl> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00613">613</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8c_source.html#l00549">ldns_sha256_final()</a>, <a class="el" href="sha2_8c_source.html#l00315">ldns_sha256_init()</a>, and <a class="el" href="sha2_8c_source.html#l00501">ldns_sha256_update()</a>.</p> </div> </div> <a class="anchor" id="a38a7d2743cb7a0d4eedfdd835f7b6157"></a><!-- doxytag: member="sha2.c::ldns_sha512_init" ref="a38a7d2743cb7a0d4eedfdd835f7b6157" args="(ldns_sha512_CTX *context)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha512_init </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha512_CTX</a> * </td> <td class="paramname"><em>context</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00623">623</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8h_source.html#l00089">_ldns_sha512_CTX::bitcount</a>, <a class="el" href="sha2_8h_source.html#l00090">_ldns_sha512_CTX::buffer</a>, <a class="el" href="sha2_8h_source.html#l00075">LDNS_SHA512_BLOCK_LENGTH</a>, <a class="el" href="sha2_8h_source.html#l00076">LDNS_SHA512_DIGEST_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>, <a class="el" href="sha2_8c_source.html#l00172">MEMSET_BZERO</a>, and <a class="el" href="sha2_8h_source.html#l00088">_ldns_sha512_CTX::state</a>.</p> </div> </div> <a class="anchor" id="a8d3c22ce0c1e995b63fc025ce0acd919"></a><!-- doxytag: member="sha2.c::ldns_sha512_update" ref="a8d3c22ce0c1e995b63fc025ce0acd919" args="(ldns_sha512_CTX *context, const sha2_byte *data, size_t len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha512_update </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha512_CTX</a> * </td> <td class="paramname"><em>context</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> * </td> <td class="paramname"><em>data</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></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00803">803</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8c_source.html#l00142">ADDINC128</a>, <a class="el" href="sha2_8h_source.html#l00089">_ldns_sha512_CTX::bitcount</a>, <a class="el" href="sha2_8h_source.html#l00090">_ldns_sha512_CTX::buffer</a>, <a class="el" href="sha2_8h_source.html#l00075">LDNS_SHA512_BLOCK_LENGTH</a>, and <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>.</p> </div> </div> <a class="anchor" id="a6222b5f02b5c1222a801be5d6def0340"></a><!-- doxytag: member="sha2.c::ldns_sha512_final" ref="a6222b5f02b5c1222a801be5d6def0340" args="(sha2_byte digest[], ldns_sha512_CTX *context)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha512_final </td> <td>(</td> <td class="paramtype"><a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> </td> <td class="paramname"><em>digest</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha512_CTX</a> * </td> <td class="paramname"><em>context</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00892">892</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8h_source.html#l00076">LDNS_SHA512_DIGEST_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>, <a class="el" href="sha2_8c_source.html#l00172">MEMSET_BZERO</a>, <a class="el" href="sha2_8c_source.html#l00124">REVERSE64</a>, and <a class="el" href="sha2_8h_source.html#l00088">_ldns_sha512_CTX::state</a>.</p> </div> </div> <a class="anchor" id="a8d5fb1fd280a58618420c4a24e83cba8"></a><!-- doxytag: member="sha2.c::ldns_sha512" ref="a8d5fb1fd280a58618420c4a24e83cba8" args="(unsigned char *data, unsigned int data_len, unsigned char *digest)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned char* ldns_sha512 </td> <td>(</td> <td class="paramtype">unsigned char * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>data_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char * </td> <td class="paramname"><em>digest</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convenience function to digest a fixed block of data at once. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>the data to digest </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">data_len</td><td>the length of data in bytes </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">digest</td><td>the length of data in bytes This pointer MUST have LDNS_SHA512_DIGEST_LENGTH bytes available </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the SHA1 digest of the given data </dd></dl> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00922">922</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8c_source.html#l00892">ldns_sha512_final()</a>, <a class="el" href="sha2_8c_source.html#l00623">ldns_sha512_init()</a>, and <a class="el" href="sha2_8c_source.html#l00803">ldns_sha512_update()</a>.</p> </div> </div> <a class="anchor" id="afde6a224995abcbeca0eae414326e310"></a><!-- doxytag: member="sha2.c::ldns_sha384_init" ref="afde6a224995abcbeca0eae414326e310" args="(ldns_sha384_CTX *context)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha384_init </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha384_CTX</a> * </td> <td class="paramname"><em>context</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00932">932</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8h_source.html#l00089">_ldns_sha512_CTX::bitcount</a>, <a class="el" href="sha2_8h_source.html#l00090">_ldns_sha512_CTX::buffer</a>, <a class="el" href="sha2_8h_source.html#l00072">LDNS_SHA384_BLOCK_LENGTH</a>, <a class="el" href="sha2_8h_source.html#l00076">LDNS_SHA512_DIGEST_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>, <a class="el" href="sha2_8c_source.html#l00172">MEMSET_BZERO</a>, and <a class="el" href="sha2_8h_source.html#l00088">_ldns_sha512_CTX::state</a>.</p> </div> </div> <a class="anchor" id="a6b9a1c163a057e4c30e8ec1dc283abed"></a><!-- doxytag: member="sha2.c::ldns_sha384_update" ref="a6b9a1c163a057e4c30e8ec1dc283abed" args="(ldns_sha384_CTX *context, const sha2_byte *data, size_t len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha384_update </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha384_CTX</a> * </td> <td class="paramname"><em>context</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> * </td> <td class="paramname"><em>data</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></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00941">941</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8c_source.html#l00803">ldns_sha512_update()</a>.</p> </div> </div> <a class="anchor" id="a4ee7d4d8b2edffb19851d2a2c1f9844b"></a><!-- doxytag: member="sha2.c::ldns_sha384_final" ref="a4ee7d4d8b2edffb19851d2a2c1f9844b" args="(sha2_byte digest[], ldns_sha384_CTX *context)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void ldns_sha384_final </td> <td>(</td> <td class="paramtype"><a class="el" href="sha2_8c.html#a078da424bb2de5634b5e52fff5a73815">sha2_byte</a> </td> <td class="paramname"><em>digest</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__ldns__sha512__CTX.html">ldns_sha384_CTX</a> * </td> <td class="paramname"><em>context</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00945">945</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8h_source.html#l00073">LDNS_SHA384_DIGEST_LENGTH</a>, <a class="el" href="sha2_8c_source.html#l00173">MEMCPY_BCOPY</a>, <a class="el" href="sha2_8c_source.html#l00172">MEMSET_BZERO</a>, <a class="el" href="sha2_8c_source.html#l00124">REVERSE64</a>, and <a class="el" href="sha2_8h_source.html#l00088">_ldns_sha512_CTX::state</a>.</p> </div> </div> <a class="anchor" id="adb96cbe7b4edf0bd1f162613706996e0"></a><!-- doxytag: member="sha2.c::ldns_sha384" ref="adb96cbe7b4edf0bd1f162613706996e0" args="(unsigned char *data, unsigned int data_len, unsigned char *digest)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned char* ldns_sha384 </td> <td>(</td> <td class="paramtype">unsigned char * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>data_len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char * </td> <td class="paramname"><em>digest</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convenience function to digest a fixed block of data at once. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>the data to digest </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">data_len</td><td>the length of data in bytes </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">digest</td><td>the length of data in bytes This pointer MUST have LDNS_SHA384_DIGEST_LENGTH bytes available </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the SHA1 digest of the given data </dd></dl> <p>Definition at line <a class="el" href="sha2_8c_source.html#l00975">975</a> of file <a class="el" href="sha2_8c_source.html">sha2.c</a>.</p> <p>References <a class="el" href="sha2_8c_source.html#l00945">ldns_sha384_final()</a>, <a class="el" href="sha2_8c_source.html#l00932">ldns_sha384_init()</a>, and <a class="el" href="sha2_8c_source.html#l00941">ldns_sha384_update()</a>.</p> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Wed Jan 11 2012 for ldns by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>