Sophie

Sophie

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

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++: HAVAL 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>HAVAL Class Reference</h1><code>#include &lt;<a class="el" href="haval_8h-source.html">haval.h</a>&gt;</code>
<p>
<p>Inheritance diagram for HAVAL:
<p><center><img src="class_h_a_v_a_l.png" usemap="#HAVAL_map" border="0" alt=""></center>
<map name="HAVAL_map">
<area href="class_iterated_hash.html" alt="IteratedHash< word32, LittleEndian, 128 >" shape="rect" coords="390,280,770,304">
<area href="class_iterated_hash_base2.html" alt="IteratedHashBase2< word32, LittleEndian, HashTransformation >" shape="rect" coords="390,224,770,248">
<area href="class_iterated_hash_base.html" alt="IteratedHashBase< word32, HashTransformation >" shape="rect" coords="390,168,770,192">
<area href="class_hash_transformation.html" alt="HashTransformation" shape="rect" coords="390,112,770,136">
<area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="390,56,770,80">
<area href="class_clonable.html" alt="Clonable" shape="rect" coords="390,0,770,24">
<area href="class_h_a_v_a_l3.html" alt="HAVAL3" shape="rect" coords="0,392,380,416">
<area href="class_h_a_v_a_l4.html" alt="HAVAL4" shape="rect" coords="390,392,770,416">
<area href="class_h_a_v_a_l5.html" alt="HAVAL5" shape="rect" coords="780,392,1160,416">
</map>
<a href="class_h_a_v_a_l-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="http://www.weidai.com/scan-mirror/md.html#HAVAL">HAVAL</a> 
<p>

<p>
Definition at line <a class="el" href="haval_8h-source.html#l00009">9</a> of file <a class="el" href="haval_8h-source.html">haval.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>enum &nbsp;</td><td class="memItemRight" valign=bottom>{ <b>DIGESTSIZE</b> =  32, 
<b>HAVAL_VERSION</b> =  1
 }</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2w0" doxytag="HAVAL::ByteOrderClass" ></a>
typedef LittleEndian&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="HAVAL::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="_h_a_v_a_la0" doxytag="HAVAL::HAVAL" ></a>
&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_h_a_v_a_l.html#_h_a_v_a_la0">HAVAL</a> (unsigned int digestSize=DIGESTSIZE, unsigned int passes=3)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">digestSize can be 16, 20, 24, 28, or 32 (Default=32)<br>
 pass can be 3, 4 or 5 (Default=3) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_h_a_v_a_l5a1" doxytag="HAVAL::TruncatedFinal" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_h_a_v_a_l.html#_h_a_v_a_l5a1">TruncatedFinal</a> (byte *hash, 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="_h_a_v_a_l5a2" doxytag="HAVAL::DigestSize" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_h_a_v_a_l.html#_h_a_v_a_l5a2">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="_h_a_v_a_l5a3" doxytag="HAVAL::AlgorithmName" ></a>
std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_h_a_v_a_l.html#_h_a_v_a_l5a3">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_base2a1" doxytag="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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 class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_zlib_decompressora18" doxytag="HAVAL::Clone" ></a>
virtual <a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_clonable.html#_zlib_decompressora18">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 colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_h_a_v_a_l5e1" doxytag="HAVAL::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="HAVAL::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="HAVAL::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="_h_a_v_a_l5b0" doxytag="HAVAL::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="_h_a_v_a_l5b1" doxytag="HAVAL::Tailor" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>Tailor</b> (unsigned int FPTLEN)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_h_a_v_a_l5b2" doxytag="HAVAL::HashEndianCorrectedBlock" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>HashEndianCorrectedBlock</b> (const word32 *in)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2b0" doxytag="HAVAL::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="HAVAL::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_base2b1" doxytag="HAVAL::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_base2b2" doxytag="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="HAVAL::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="_h_a_v_a_l5p0" doxytag="HAVAL::digestSize" ></a>
const unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>digestSize</b></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_h_a_v_a_l5p1" doxytag="HAVAL::pass" ></a>
const unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>pass</b></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2p0" doxytag="HAVAL::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="HAVAL::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><a class="anchor" name="_h_a_v_a_l5t0" doxytag="HAVAL::wi2" ></a>
const unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>wi2</b> [32] = { 5,14,26,18,11,28, 7,16, 0,23,20,22, 1,10, 4, 8,30, 3,21, 9,17,24,29, 6,19,12,15,13, 2,25,31,27}</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_h_a_v_a_l5t1" doxytag="HAVAL::wi3" ></a>
const unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>wi3</b> [32] = {19, 9, 4,20,28,17, 8,22,29,14,25,12,24,30,16,26,31,15, 7, 3, 1, 0,18,27,13, 6,21,10,23,11, 5, 2}</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_h_a_v_a_l5t2" doxytag="HAVAL::wi4" ></a>
const unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>wi4</b> [32] = {24, 4, 0,14, 2, 7,28,23,26, 6,30,20,18,25,19, 3,22,11,31,21, 8,27,12, 9, 1,29, 5,15,17,10,16,13}</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_h_a_v_a_l5t3" doxytag="HAVAL::wi5" ></a>
const unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>wi5</b> [32] = {27, 3,21,26,17,11,20,29,19, 0,12, 7,13, 8,31,10, 5, 9,14,30,18, 6,28,24, 2,23,16,22, 4, 1,25,15}</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>const word32&nbsp;</td><td class="memItemRight" valign=bottom><b>mc2</b> [32]</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>const word32&nbsp;</td><td class="memItemRight" valign=bottom><b>mc3</b> [32]</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>const word32&nbsp;</td><td class="memItemRight" valign=bottom><b>mc4</b> [32]</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>const word32&nbsp;</td><td class="memItemRight" valign=bottom><b>mc5</b> [32]</td></tr>

</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="_x_m_a_c_c___basea7" doxytag="HAVAL::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="HAVAL::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="_h_a_v_a_l5t4" doxytag="HAVAL::mc2" ></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 HAVAL::mc2<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> {
  0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917
, 0x9216D5D9, 0x8979FB1B, 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, 0xB8E1AFED, 0x6A267E96
, 0xBA7C9045, 0xF12C7F99, 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, 0x636920D8, 0x71574E69
, 0xA458FEA3, 0xF4933D7E, 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, 0x7B54A41D, 0xC25A59B5}
</div></pre>
<p>
Definition at line <a class="el" href="haval_8cpp-source.html#l00213">213</a> of file <a class="el" href="haval_8cpp-source.html">haval.cpp</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_h_a_v_a_l5t5" doxytag="HAVAL::mc3" ></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 HAVAL::mc3<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> {
0x9C30D539,0x2AF26013,0xC5D1B023,0x286085F0,0xCA417918,0xB8DB38EF,0x8E79DCB0,0x603A180E,
0x6C9E0E8B,0xB01E8A3E,0xD71577C1,0xBD314B27,0x78AF2FDA,0x55605C60,0xE65525F3,0xAA55AB94,
0x57489862,0x63E81440,0x55CA396A,0x2AAB10B6,0xB4CC5C34,0x1141E8CE,0xA15486AF,0x7C72E993,
0xB3EE1411,0x636FBC2A,0x2BA9C55D,0x741831F6,0xCE5C3E16,0x9B87931E,0xAFD6BA33,0x6C24CF5C}
</div></pre>
<p>
Definition at line <a class="el" href="haval_8cpp-source.html#l00219">219</a> of file <a class="el" href="haval_8cpp-source.html">haval.cpp</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_h_a_v_a_l5t6" doxytag="HAVAL::mc4" ></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 HAVAL::mc4<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> {
0x7A325381,0x28958677,0x3B8F4898,0x6B4BB9AF,0xC4BFE81B,0x66282193,0x61D809CC,0xFB21A991,
0x487CAC60,0x5DEC8032,0xEF845D5D,0xE98575B1,0xDC262302,0xEB651B88,0x23893E81,0xD396ACC5,
0x0F6D6FF3,0x83F44239,0x2E0B4482,0xA4842004,0x69C8F04A,0x9E1F9B5E,0x21C66842,0xF6E96C9A,
0x670C9C61,0xABD388F0,0x6A51A0D2,0xD8542F68,0x960FA728,0xAB5133A3,0x6EEF0B6C,0x137A3BE4}
</div></pre>
<p>
Definition at line <a class="el" href="haval_8cpp-source.html#l00225">225</a> of file <a class="el" href="haval_8cpp-source.html">haval.cpp</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_h_a_v_a_l5t7" doxytag="HAVAL::mc5" ></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 HAVAL::mc5<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> {
0xBA3BF050,0x7EFB2A98,0xA1F1651D,0x39AF0176,0x66CA593E,0x82430E88,0x8CEE8619,0x456F9FB4,
0x7D84A5C3,0x3B8B5EBE,0xE06F75D8,0x85C12073,0x401A449F,0x56C16AA6,0x4ED3AA62,0x363F7706,
0x1BFEDF72,0x429B023D,0x37D0D724,0xD00A1248,0xDB0FEAD3,0x49F1C09B,0x075372C9,0x80991B7B,
0x25D479D8,0xF6E8DEF7,0xE3FE501A,0xB6794C3B,0x976CE0BD,0x04C006BA,0xC1A94FB6,0x409F60C4}
</div></pre>
<p>
Definition at line <a class="el" href="haval_8cpp-source.html#l00231">231</a> of file <a class="el" href="haval_8cpp-source.html">haval.cpp</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="haval_8h-source.html">haval.h</a><li><a class="el" href="haval_8cpp-source.html">haval.cpp</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:24:04 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>