Sophie

Sophie

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

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++: TTMAC 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>TTMAC Class Reference</h1><code>#include &lt;<a class="el" href="ttmac_8h-source.html">ttmac.h</a>&gt;</code>
<p>
<p>Inheritance diagram for TTMAC:
<p><center><img src="class_t_t_m_a_c.png" usemap="#TTMAC_map" border="0" alt=""></center>
<map name="TTMAC_map">
<area href="class_message_authentication_code_final.html" alt="MessageAuthenticationCodeFinal< TTMAC_Base >" shape="rect" coords="351,672,1044,696">
<area href="class_clonable_impl.html" alt="ClonableImpl< MessageAuthenticationCodeFinal< TTMAC_Base >, MessageAuthenticationCodeImpl< TTMAC_Base > >" shape="rect" coords="351,616,1044,640">
<area href="class_message_authentication_code_impl.html" alt="MessageAuthenticationCodeImpl< TTMAC_Base >" shape="rect" coords="351,560,1044,584">
<area href="class_algorithm_impl.html" alt="AlgorithmImpl< SimpleKeyingInterfaceImpl< TTMAC_Base, TTMAC_Base >, TTMAC_Base >" shape="rect" coords="351,504,1044,528">
<area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< TTMAC_Base, TTMAC_Base >" shape="rect" coords="351,448,1044,472">
<area href="class_t_t_m_a_c___base.html" alt="TTMAC_Base" shape="rect" coords="351,392,1044,416">
<area href="class_fixed_key_length.html" alt="FixedKeyLength< 20 >" shape="rect" coords="0,336,693,360">
<area href="class_iterated_hash.html" alt="IteratedHash< word32, LittleEndian, 64, MessageAuthenticationCode >" shape="rect" coords="703,336,1396,360">
<area href="class_iterated_hash_base2.html" alt="IteratedHashBase2< word32, LittleEndian, MessageAuthenticationCode >" shape="rect" coords="703,280,1396,304">
<area href="class_iterated_hash_base.html" alt="IteratedHashBase< word32, MessageAuthenticationCode >" shape="rect" coords="703,224,1396,248">
<area href="class_message_authentication_code.html" alt="MessageAuthenticationCode" shape="rect" coords="703,168,1396,192">
<area href="class_hash_transformation.html" alt="HashTransformation" shape="rect" coords="351,112,1044,136">
<area href="class_simple_keying_interface.html" alt="SimpleKeyingInterface" shape="rect" coords="1054,112,1747,136">
<area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="351,56,1044,80">
<area href="class_clonable.html" alt="Clonable" shape="rect" coords="351,0,1044,24">
</map>
<a href="class_t_t_m_a_c-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
<a href="http://www.weidai.com/scan-mirror/mac.html#TTMAC">Two-Track-MAC</a> 
<p>
160 Bit MAC with 160 Bit Key 
<p>

<p>
Definition at line <a class="el" href="ttmac_8h-source.html#l00034">34</a> of file <a class="el" href="ttmac_8h-source.html">ttmac.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> = 20
 }</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2w0" doxytag="TTMAC::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="TTMAC::HashWordType" ></a>
typedef <a class="el" href="class_iterated_hash_base.html">IteratedHashBase</a>&lt;<br>
 word32, <a class="el" href="class_message_authentication_code.html">MessageAuthenticationCode</a> <br>
&gt;::HashWordType&nbsp;</td><td class="memItemRight" valign=bottom><b>HashWordType</b></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><b>IV_Requirement</b> { <br>
&nbsp;&nbsp;<b>STRUCTURED_IV</b> =  0, 
<b>RANDOM_IV</b>, 
<b>UNPREDICTABLE_RANDOM_IV</b>, 
<b>INTERNALLY_GENERATED_IV</b>, 
<br>
&nbsp;&nbsp;<b>NOT_RESYNCHRONIZABLE</b>
<br>
 }</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="_clonable_impla0" doxytag="TTMAC::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>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_message_authentication_code_impl.html#_message_authentication_code_impla0">SetKey</a> (const byte *key, unsigned int length, const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;params=<a class="el" href="cryptlib_8h.html#a3">g_nullNameValuePairs</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set or reset the key of this object  <a href="#_message_authentication_code_impla0"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_algorithm_impla0" doxytag="TTMAC::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="_symmetric_cipher_finala7" doxytag="TTMAC::MinKeyLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface_impl.html#_symmetric_cipher_finala7">MinKeyLength</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns smallest valid key length in bytes */ <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_symmetric_cipher_finala8" doxytag="TTMAC::MaxKeyLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface_impl.html#_symmetric_cipher_finala8">MaxKeyLength</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns largest valid key length in bytes */ <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_symmetric_cipher_finala9" doxytag="TTMAC::DefaultKeyLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface_impl.html#_symmetric_cipher_finala9">DefaultKeyLength</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns default (recommended) key length in bytes */ <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_symmetric_cipher_finala10" doxytag="TTMAC::GetValidKeyLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface_impl.html#_symmetric_cipher_finala10">GetValidKeyLength</a> (unsigned int n) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns the smallest valid key length in bytes that is &gt;= min(n, GetMaxKeyLength()) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_symmetric_cipher_finala11" doxytag="TTMAC::IVRequirement" ></a>
TTMAC_Base::IV_Requirement&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface_impl.html#_symmetric_cipher_finala11">IVRequirement</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns the minimal requirement for secure IVs <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_t_t_m_a_c___basea1" doxytag="TTMAC::DigestSize" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_t_t_m_a_c___base.html#_t_t_m_a_c___basea1">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="_t_t_m_a_c___basea2" doxytag="TTMAC::UncheckedSetKey" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>UncheckedSetKey</b> (const byte *userKey, unsigned int keylength)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_t_t_m_a_c___basea3" doxytag="TTMAC::TruncatedFinal" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_t_t_m_a_c___base.html#_t_t_m_a_c___basea3">TruncatedFinal</a> (byte *mac, 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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="_x_m_a_c_c___basea21" doxytag="TTMAC::IsValidKeyLength" ></a>
virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea21">IsValidKeyLength</a> (unsigned int n) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether n is a valid key length <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea23" doxytag="TTMAC::SetKeyWithRounds" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea23">SetKeyWithRounds</a> (const byte *key, unsigned int length, int rounds)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">calls SetKey() with an <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> object that just specifies "Rounds" <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea24" doxytag="TTMAC::SetKeyWithIV" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea24">SetKeyWithIV</a> (const byte *key, unsigned int length, const byte *iv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">calls SetKey() with an <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> object that just specifies "IV" <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea26">IsResynchronizable</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can be resynchronized (i.e. supports initialization vectors)  <a href="#_x_m_a_c_c___basea26"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea27" doxytag="TTMAC::CanUseRandomIVs" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea27">CanUseRandomIVs</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can use random IVs (in addition to ones returned by GetNextIV) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea28" doxytag="TTMAC::CanUsePredictableIVs" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea28">CanUsePredictableIVs</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can use random but possibly predictable IVs (in addition to ones returned by GetNextIV) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea29" doxytag="TTMAC::CanUseStructuredIVs" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea29">CanUseStructuredIVs</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can use structured IVs, for example a counter (in addition to ones returned by GetNextIV) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea30" doxytag="TTMAC::IVSize" ></a>
virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea30">IVSize</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns size of IVs used by this object <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___basea31" doxytag="TTMAC::Resynchronize" ></a>
virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea31">Resynchronize</a> (const byte *IV)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">resynchronize with an IV <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_simple_keying_interface.html#_x_m_a_c_c___basea32">GetNextIV</a> (byte *IV)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get a secure IV for the next message  <a href="#_x_m_a_c_c___basea32"></a><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="_algorithm_imple0" doxytag="TTMAC::StaticAlgorithmName" ></a>
std::string&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="_fixed_key_lengthe0" doxytag="TTMAC::StaticGetValidKeyLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>StaticGetValidKeyLength</b> (unsigned int)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2e0" doxytag="TTMAC::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="TTMAC::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="_symmetric_cipher_finalb0" doxytag="TTMAC::AssertValidKeyLength" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>AssertValidKeyLength</b> (unsigned int length)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___baseb15" doxytag="TTMAC::AssertValidKeyLength" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>AssertValidKeyLength</b> (unsigned int length) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_t_t_m_a_c___baseb0" doxytag="TTMAC::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="TTMAC::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="_t_t_m_a_c___baseb1" doxytag="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::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="TTMAC::ThrowIfInvalidTruncatedSize" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>ThrowIfInvalidTruncatedSize</b> (unsigned int size) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___baseb11" doxytag="TTMAC::ThrowIfInvalidKeyLength" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>ThrowIfInvalidKeyLength</b> (const <a class="el" href="class_algorithm.html">Algorithm</a> &amp;algorithm, unsigned int length)</td></tr>

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

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___baseb13" doxytag="TTMAC::ThrowIfInvalidIV" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>ThrowIfInvalidIV</b> (const byte *iv)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_m_a_c_c___baseb14" doxytag="TTMAC::GetIVAndThrowIfInvalid" ></a>
const byte *&nbsp;</td><td class="memItemRight" valign=bottom><b>GetIVAndThrowIfInvalid</b> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;params)</td></tr>

<tr><td colspan=2><br><h2>Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_t_t_m_a_c___basef0" doxytag="TTMAC::Transform" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>Transform</b> (word32 *digest, const word32 *X, bool last)</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="_t_t_m_a_c___basep0" doxytag="TTMAC::m_key" ></a>
FixedSizeSecBlock&lt; word32,<br>
 DIGESTSIZE &gt;&nbsp;</td><td class="memItemRight" valign=bottom><b>m_key</b></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_iterated_hash_base2p0" doxytag="TTMAC::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="TTMAC::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>

</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="_message_authentication_code_impla0" doxytag="TTMAC::SetKey" ></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"> void <a class="el" href="class_message_authentication_code_impl.html">MessageAuthenticationCodeImpl</a>&lt; <a class="el" href="class_t_t_m_a_c___base.html">TTMAC_Base</a> , <a class="el" href="class_t_t_m_a_c___base.html">TTMAC_Base</a>   &gt;::SetKey           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>length</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>params</em> = <code><a class="el" href="cryptlib_8h.html#a3">g_nullNameValuePairs</a></code></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Implements <a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea22">SimpleKeyingInterface</a>.
<p>
Definition at line <a class="el" href="seckey_8h-source.html#l00188">188</a> of file <a class="el" href="seckey_8h-source.html">seckey.h</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_x_m_a_c_c___basea7" doxytag="TTMAC::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="TTMAC::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>
<a class="anchor" name="_x_m_a_c_c___basea26" doxytag="TTMAC::IsResynchronizable" ></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"> bool SimpleKeyingInterface::IsResynchronizable           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
returns whether this object can be resynchronized (i.e. supports initialization vectors) 
<p>
If this function returns true, and no IV is passed to SetKey() and CanUseStructuredIVs()==true, an IV of all 0's will be assumed. 
<p>
Definition at line <a class="el" href="cryptlib_8h-source.html#l00384">384</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_x_m_a_c_c___basea32" doxytag="TTMAC::GetNextIV" ></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 SimpleKeyingInterface::GetNextIV           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">byte *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>IV</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>
get a secure IV for the next message 
<p>
This method should be called after you finish encrypting one message and are ready to start the next one. After calling it, you must call SetKey() or Resynchronize() before using this object again. This method is not implemented on decryption objects. 
<p>
Definition at line <a class="el" href="cryptlib_8h-source.html#l00400">400</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="ttmac_8h-source.html">ttmac.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:24:11 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>