Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > e3a718fcad37ff363f65d6a6e994e272 > files > 233

ldns-devel-1.6.12-1.fc15.i686.rpm

<!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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <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&#160;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> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a30f0f7734f48f233ee4ea8b328342067">ldns_sha256_SHORT_BLOCK_LENGTH</a>&#160;&#160;&#160;(LDNS_SHA256_BLOCK_LENGTH - 8)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a0af4aa084f4f7b4418f967568b4e1249">ldns_sha384_SHORT_BLOCK_LENGTH</a>&#160;&#160;&#160;(LDNS_SHA384_BLOCK_LENGTH - 16)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a53ebe62ce8c8959c921160f16ecf83b0">ldns_sha512_SHORT_BLOCK_LENGTH</a>&#160;&#160;&#160;(LDNS_SHA512_BLOCK_LENGTH - 16)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</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&#160;</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&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a324569b417209f3e941991d642302d51">SHA2_USE_MEMSET_MEMCPY</a>&#160;&#160;&#160;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a8e212a8c6f84340a49f10895833e2f2d">MEMSET_BZERO</a>(p, l)&#160;&#160;&#160;memset((p), 0, (l))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#aa357cebb0a4ac20de95565894de5f793">MEMCPY_BCOPY</a>(d, s, l)&#160;&#160;&#160;memcpy((d), (s), (l))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#af299e0982ce71aad5027c4a7315e536f">R</a>(b, x)&#160;&#160;&#160;((x) &gt;&gt; (b))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#afe83c8790798dddd30665496143a853b">S32</a>(b, x)&#160;&#160;&#160;(((x) &gt;&gt; (b)) | ((x) &lt;&lt; (32 - (b))))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a04c57d7554181e15fe6063a477d28236">S64</a>(b, x)&#160;&#160;&#160;(((x) &gt;&gt; (b)) | ((x) &lt;&lt; (64 - (b))))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#ab0a0d1ad13c7e4d3cb38c89f7127c85a">Ch</a>(x, y, z)&#160;&#160;&#160;(((x) &amp; (y)) ^ ((~(x)) &amp; (z)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a447cd1d7fb703b62666400976be24bf3">Maj</a>(x, y, z)&#160;&#160;&#160;(((x) &amp; (y)) ^ ((x) &amp; (z)) ^ ((y) &amp; (z)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a1d3b933bf48a1c763775d358313f44a6">Sigma0_256</a>(x)&#160;&#160;&#160;(S32(2,  (x)) ^ S32(13, (x)) ^ S32(22, (x)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a98f25dda8f234733acf0386d6d5187fd">Sigma1_256</a>(x)&#160;&#160;&#160;(S32(6,  (x)) ^ S32(11, (x)) ^ S32(25, (x)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#afdc787683d72110451742acd5bf41d16">sigma0_256</a>(x)&#160;&#160;&#160;(S32(7,  (x)) ^ S32(18, (x)) ^ R(3 ,   (x)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a6daf5f3524cf68e6a2e19de772070e77">sigma1_256</a>(x)&#160;&#160;&#160;(S32(17, (x)) ^ S32(19, (x)) ^ R(10,   (x)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a07b4672fd77b0b5f2bf0041e2faf0b45">Sigma0_512</a>(x)&#160;&#160;&#160;(S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a6a0406d09af6eaa6d933070801f74002">Sigma1_512</a>(x)&#160;&#160;&#160;(S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#a449da15ce26bdf3bf58925e17c7864b3">sigma0_512</a>(x)&#160;&#160;&#160;(S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7,   (x)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sha2_8c.html#adcf0e492a43c6f34a3a5023a0a448e2d">sigma1_512</a>(x)&#160;&#160;&#160;(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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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&#160;</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 *&#160;</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">&#160;</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&#160;</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&#160;</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&#160;</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 *&#160;</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">&#160;</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&#160;</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&#160;</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&#160;</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 *&#160;</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">&#160;</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&#160;&#160;&#160;(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&#160;&#160;&#160;(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&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">w, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x&#160;</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 &gt;&gt; 16) | (tmp &lt;&lt; 16); \
        (x) = ((tmp &amp; 0xff00ff00UL) &gt;&gt; 8) | ((tmp &amp; 0x00ff00ffUL) &lt;&lt; 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">&#160;</td>
          <td class="paramname">w, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x&#160;</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 &gt;&gt; 32) | (tmp &lt;&lt; 32); \
        tmp = ((tmp &amp; 0xff00ff00ff00ff00ULL) &gt;&gt; 8) | \
              ((tmp &amp; 0x00ff00ff00ff00ffULL) &lt;&lt; 8); \
        (x) = ((tmp &amp; 0xffff0000ffff0000ULL) &gt;&gt; 16) | \
              ((tmp &amp; 0x0000ffff0000ffffULL) &lt;&lt; 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">&#160;</td>
          <td class="paramname">w, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n&#160;</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] &lt; (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&#160;&#160;&#160;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">&#160;</td>
          <td class="paramname">p, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">l&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;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">&#160;</td>
          <td class="paramname">d, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">l&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;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">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((x) &gt;&gt; (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">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((x) &gt;&gt; (b)) | ((x) &lt;&lt; (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">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((x) &gt;&gt; (b)) | ((x) &lt;&lt; (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">&#160;</td>
          <td class="paramname">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">y, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">z&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((x) &amp; (y)) ^ ((~(x)) &amp; (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">&#160;</td>
          <td class="paramname">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">y, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">z&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(((x) &amp; (y)) ^ ((x) &amp; (z)) ^ ((y) &amp; (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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>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>&#160;</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> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</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 *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>data_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>digest</em>&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>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>&#160;</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> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</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 *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>data_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>digest</em>&#160;</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> *&#160;</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> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>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>&#160;</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> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</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 *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>data_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>digest</em>&#160;</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&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>