Sophie

Sophie

distrib > Mandriva > 10.2 > i586 > media > contrib > by-pkgid > 7457b841ac8136d3a1a9d3d960c5252e > files > 940

libcryptopp-doc-5.2.1-2mdk.i586.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>Crypto++: SHA256 class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.7 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>SHA256 Class Reference</h1><code>#include &lt;<a class="el" href="sha_8h-source.html">sha.h</a>&gt;</code>
<p>
<p>Inheritance diagram for SHA256:
<p><center><img src="class_s_h_a256.png" usemap="#SHA256_map" border="0" alt=""></center>
<map name="SHA256_map">
<area href="class_iterated_hash_with_static_transform.html" alt="IteratedHashWithStaticTransform< word32, BigEndian, 64, 32, SHA256 >" shape="rect" coords="0,448,600,472">
<area href="class_clonable_impl.html" alt="ClonableImpl< SHA256, AlgorithmImpl< IteratedHash< word32, BigEndian, T_BlockSize >, SHA256 > >" shape="rect" coords="0,392,600,416">
<area href="class_algorithm_impl.html" alt="AlgorithmImpl< IteratedHash< word32, BigEndian, T_BlockSize >, SHA256 >" shape="rect" coords="0,336,600,360">
<area href="class_iterated_hash.html" alt="IteratedHash< word32, BigEndian, T_BlockSize >" shape="rect" coords="0,280,600,304">
<area href="class_iterated_hash_base2.html" alt="IteratedHashBase2< word32, BigEndian, HashTransformation >" shape="rect" coords="0,224,600,248">
<area href="class_iterated_hash_base.html" alt="IteratedHashBase< word32, HashTransformation >" shape="rect" coords="0,168,600,192">
<area href="class_hash_transformation.html" alt="HashTransformation" shape="rect" coords="0,112,600,136">
<area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="0,56,600,80">
<area href="class_clonable.html" alt="Clonable" shape="rect" coords="0,0,600,24">
</map>
<a href="class_s_h_a256-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
implements the SHA-256 standard 
<p>

<p>
Definition at line <a class="el" href="sha_8h-source.html#l00020">20</a> of file <a class="el" href="sha_8h-source.html">sha.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2w0" doxytag="SHA256::ByteOrderClass" ></a>
typedef BigEndian&nbsp;</td><td class="memItemRight" valign=bottom><b>ByteOrderClass</b></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2w1" doxytag="SHA256::HashWordType" ></a>
typedef <a class="el" href="class_iterated_hash_base.html">IteratedHashBase</a>&lt;<br>
 word32, <a class="el" href="class_hash_transformation.html">HashTransformation</a> <br>
&gt;::HashWordType&nbsp;</td><td class="memItemRight" valign=bottom><b>HashWordType</b></td></tr>

<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_with_static_transforma0" doxytag="SHA256::DigestSize" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_with_static_transform.html#_iterated_hash_with_static_transforma0">DigestSize</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">size of the hash returned by Final() <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_clonable_impla0" doxytag="SHA256::Clone" ></a>
<a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_clonable_impl.html#_clonable_impla0">Clone</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this is not implemented by most classes yet <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_algorithm_impla0" doxytag="SHA256::AlgorithmName" ></a>
std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_algorithm_impl.html#_algorithm_impla0">AlgorithmName</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns name of this algorithm, not universally implemented yet <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2a0" doxytag="SHA256::TruncatedFinal" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_base2.html#_iterated_hash_base2a0">TruncatedFinal</a> (byte *digest, unsigned int size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">truncated version of Final() <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2a1" doxytag="SHA256::BlockSize" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_base.html#_iterated_hash_base2a1">BlockSize</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">block size of underlying compression function, or 0 if not block based <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2a2" doxytag="SHA256::OptimalBlockSize" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_base.html#_iterated_hash_base2a2">OptimalBlockSize</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">input to Update() should have length a multiple of this for optimal speed <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2a3" doxytag="SHA256::OptimalDataAlignment" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_base.html#_iterated_hash_base2a3">OptimalDataAlignment</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns how input should be aligned for optimal performance <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2a4" doxytag="SHA256::Update" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_base.html#_iterated_hash_base2a4">Update</a> (const byte *input, unsigned int length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">process more input <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2a5" doxytag="SHA256::CreateUpdateSpace" ></a>
byte *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_base.html#_iterated_hash_base2a5">CreateUpdateSpace</a> (unsigned int &amp;size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">request space to write input into <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2a6" doxytag="SHA256::Restart" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_iterated_hash_base.html#_iterated_hash_base2a6">Restart</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">discard the current state, and restart with a new message <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_hash_transformation.html#_x_m_a_c_c___basea7">Final</a> (byte *digest)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compute hash for current message, then restart for a new message  <a href="#_x_m_a_c_c___basea7"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea9" doxytag="SHA256::CalculateDigest" ></a>
virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_hash_transformation.html#_x_m_a_c_c___basea9">CalculateDigest</a> (byte *digest, const byte *input, unsigned int length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">use this if your input is in one piece and you don't want to call Update() and Final() separately <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_hash_transformation.html#_x_m_a_c_c___basea10">Verify</a> (const byte *digest)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">verify that digest is a valid digest for the current message, then reinitialize the object  <a href="#_x_m_a_c_c___basea10"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea11" doxytag="SHA256::VerifyDigest" ></a>
virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_hash_transformation.html#_x_m_a_c_c___basea11">VerifyDigest</a> (const byte *digest, const byte *input, unsigned int length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">use this if your input is in one piece and you don't want to call Update() and Verify() separately <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea12" doxytag="SHA256::CalculateTruncatedDigest" ></a>
virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_hash_transformation.html#_x_m_a_c_c___basea12">CalculateTruncatedDigest</a> (byte *digest, unsigned int digestSize, const byte *input, unsigned int length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">truncated version of CalculateDigest() <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea13" doxytag="SHA256::TruncatedVerify" ></a>
virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_hash_transformation.html#_x_m_a_c_c___basea13">TruncatedVerify</a> (const byte *digest, unsigned int digestLength)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">truncated version of Verify() <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea14" doxytag="SHA256::VerifyTruncatedDigest" ></a>
virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_hash_transformation.html#_x_m_a_c_c___basea14">VerifyTruncatedDigest</a> (const byte *digest, unsigned int digestLength, const byte *input, unsigned int length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">truncated version of VerifyDigest() <br><br></td></tr>
<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_s_h_a256e0" doxytag="SHA256::InitState" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>InitState</b> (HashWordType *state)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_s_h_a256e1" doxytag="SHA256::Transform" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>Transform</b> (word32 *digest, const word32 *data)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_s_h_a256e2" doxytag="SHA256::StaticAlgorithmName" ></a>
const char *&nbsp;</td><td class="memItemRight" valign=bottom><b>StaticAlgorithmName</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2e0" doxytag="SHA256::CorrectEndianess" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>CorrectEndianess</b> (HashWordType *out, const HashWordType *in, unsigned int byteCount)</td></tr>

<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hashs0" doxytag="SHA256::cryptopp_assert___LINE__" ></a>
CompileAssert&lt;((BLOCKSIZE <br>
&amp;(BLOCKSIZE-1))==0)&nbsp;</td><td class="memItemRight" valign=bottom><b>cryptopp_assert___LINE__</b> )</td></tr>

<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_with_static_transformb1" doxytag="SHA256::HashEndianCorrectedBlock" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>HashEndianCorrectedBlock</b> (const word32 *data)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b1" doxytag="SHA256::HashEndianCorrectedBlock" ></a>
virtual void&nbsp;</td><td class="memItemRight" valign=bottom><b>HashEndianCorrectedBlock</b> (const HashWordType *data)=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_with_static_transformb2" doxytag="SHA256::Init" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>Init</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b0" doxytag="SHA256::HashBlock" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>HashBlock</b> (const HashWordType *input)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b9" doxytag="SHA256::HashBlock" ></a>
virtual void&nbsp;</td><td class="memItemRight" valign=bottom><b>HashBlock</b> (const word32 *input)=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b2" doxytag="SHA256::SetBlockSize" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>SetBlockSize</b> (unsigned int blockSize)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b3" doxytag="SHA256::SetStateSize" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>SetStateSize</b> (unsigned int stateSize)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b4" doxytag="SHA256::GetBitCountHi" ></a>
word32&nbsp;</td><td class="memItemRight" valign=bottom><b>GetBitCountHi</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b5" doxytag="SHA256::GetBitCountLo" ></a>
word32&nbsp;</td><td class="memItemRight" valign=bottom><b>GetBitCountLo</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b6" doxytag="SHA256::HashMultipleBlocks" ></a>
virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>HashMultipleBlocks</b> (const word32 *input, unsigned int length)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b7" doxytag="SHA256::PadLastBlock" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>PadLastBlock</b> (unsigned int lastBlockSize, byte padFirst=0x80)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___baseb10" doxytag="SHA256::ThrowIfInvalidTruncatedSize" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>ThrowIfInvalidTruncatedSize</b> (unsigned int size) const</td></tr>

<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2p0" doxytag="SHA256::m_data" ></a>
<a class="el" href="class_sec_block.html">SecBlock</a>&lt; word32 &gt;&nbsp;</td><td class="memItemRight" valign=bottom><b>m_data</b></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2p1" doxytag="SHA256::m_digest" ></a>
<a class="el" href="class_sec_block.html">SecBlock</a>&lt; word32 &gt;&nbsp;</td><td class="memItemRight" valign=bottom><b>m_digest</b></td></tr>

<tr><td colspan=2><br><h2>Static Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>const word32&nbsp;</td><td class="memItemRight" valign=bottom><b>K</b> [64]</td></tr>

</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="_x_m_a_c_c___basea7" doxytag="SHA256::Final" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> virtual void HashTransformation::Final           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">byte *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>digest</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
compute hash for current message, then restart for a new message 
<p>
<dl compact><dt><b>Precondition:</b></dt><dd>size of digest == DigestSize(). </dd></dl>

<p>
Definition at line <a class="el" href="cryptlib_8h-source.html#l00532">532</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>.
<p>
Referenced by <a class="el" href="pwdbased_8h-source.html#l00085">PKCS5_PBKDF2_HMAC&lt; T &gt;::DeriveKey()</a>, <a class="el" href="filters_8cpp-source.html#l00662">HashFilter::Put2()</a>, and <a class="el" href="hmac_8cpp-source.html#l00065">HMAC_Base::TruncatedFinal()</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_x_m_a_c_c___basea10" doxytag="SHA256::Verify" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> virtual bool HashTransformation::Verify           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const byte *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>digest</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
verify that digest is a valid digest for the current message, then reinitialize the object 
<p>
Default implementation is to call Final() and do a bitwise comparison between its output and digest. 
<p>
Definition at line <a class="el" href="cryptlib_8h-source.html#l00558">558</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>.    </td>
  </tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="_s_h_a256t0" doxytag="SHA256::K" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const word32 SHA256::K<code> [static, protected]</code>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Initial value:</b><pre class="fragment"><div> {
        0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
        0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
        0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
        0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
        0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
        0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
        0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
        0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
        0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
        0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
        0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
        0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
        0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
        0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
        0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
        0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
}
</div></pre>
<p>
Definition at line <a class="el" href="sha_8cpp-source.html#l00150">150</a> of file <a class="el" href="sha_8cpp-source.html">sha.cpp</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="sha_8h-source.html">sha.h</a><li><a class="el" href="sha_8cpp-source.html">sha.cpp</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:24:09 2004 for Crypto++ by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address>
</body>
</html>