Sophie

Sophie

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

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++:  TemplateDL_SignerBase&lt; T &gt; 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>DL_SignerBase&lt; T &gt; Class Template Reference</h1><code>#include &lt;<a class="el" href="pubkey_8h-source.html">pubkey.h</a>&gt;</code>
<p>
<p>Inheritance diagram for DL_SignerBase&lt; T &gt;:
<p><center><img src="class_d_l___signer_base.png" usemap="#DL_SignerBase< T >_map" border="0" alt=""></center>
<map name="DL_SignerBase< T >_map">
<area href="class_d_l___signature_scheme_base.html" alt="DL_SignatureSchemeBase< PK_Signer, DL_PrivateKey< T > >" shape="rect" coords="381,280,752,304">
<area href="class_p_k___signer.html" alt="PK_Signer" shape="rect" coords="190,224,561,248">
<area href="class_d_l___base.html" alt="DL_Base< DL_PrivateKey< T > >" shape="rect" coords="571,224,942,248">
<area href="class_p_k___signature_scheme.html" alt="PK_SignatureScheme" shape="rect" coords="0,168,371,192">
<area href="class_private_key_algorithm.html" alt="PrivateKeyAlgorithm" shape="rect" coords="381,168,752,192">
<area href="class_asymmetric_algorithm.html" alt="AsymmetricAlgorithm" shape="rect" coords="381,112,752,136">
<area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="381,56,752,80">
<area href="class_clonable.html" alt="Clonable" shape="rect" coords="381,0,752,24">
</map>
<a href="class_d_l___signer_base-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class T&gt;<br>
 class DL_SignerBase&lt; T &gt;</h3>

_ 
<p>

<p>
Definition at line <a class="el" href="pubkey_8h-source.html#l01014">1014</a> of file <a class="el" href="pubkey_8h-source.html">pubkey.h</a>.<table border=0 cellpadding=0 cellspacing=0>
<tr><td></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="_d_l___signer_basea0" doxytag="DL_SignerBase::RawSign" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>RawSign</b> (const <a class="el" href="class_integer.html">Integer</a> &amp;k, const <a class="el" href="class_integer.html">Integer</a> &amp;e, <a class="el" href="class_integer.html">Integer</a> &amp;r, <a class="el" href="class_integer.html">Integer</a> &amp;s) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signer_basea1" doxytag="DL_SignerBase::InputRecoverableMessage" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>InputRecoverableMessage</b> (<a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> &amp;messageAccumulator, const byte *recoverableMessage, unsigned int recoverableMessageLength) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___signer_base.html#_d_l___signer_basea2">SignAndRestart</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> &amp;messageAccumulator, byte *signature, bool restart) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sign and restart messageAccumulator  <a href="#_d_l___signer_basea2"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_basea0" doxytag="DL_SignerBase::SignatureLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___signature_scheme_base.html#_d_l___signature_scheme_basea0">SignatureLength</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">signature length if it only depends on the key, otherwise 0 <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_basea1" doxytag="DL_SignerBase::MaxRecoverableLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___signature_scheme_base.html#_d_l___signature_scheme_basea1">MaxRecoverableLength</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">length of longest message that can be recovered, or 0 if this signature scheme does not support message recovery <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_basea2" doxytag="DL_SignerBase::MaxRecoverableLengthFromSignatureLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___signature_scheme_base.html#_d_l___signature_scheme_basea2">MaxRecoverableLengthFromSignatureLength</a> (unsigned int signatureLength) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">length of longest message that can be recovered from a signature of given length, or 0 if this signature scheme does not support message recovery <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_d_l___signature_scheme_base.html#_d_l___signature_scheme_basea3">IsProbabilistic</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">requires a random number generator to sign  <a href="#_d_l___signature_scheme_basea3"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_basea4" doxytag="DL_SignerBase::AllowNonrecoverablePart" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___signature_scheme_base.html#_d_l___signature_scheme_basea4">AllowNonrecoverablePart</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">whether or not a non-recoverable message part can be signed <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_basea5" doxytag="DL_SignerBase::RecoverablePartFirst" ></a>
bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___signature_scheme_base.html#_d_l___signature_scheme_basea5">RecoverablePartFirst</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">whether you must input the recoverable part before the non-recoverable part during signing <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a8" doxytag="DL_SignerBase::NewSignatureAccumulator" ></a>
virtual <a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_p_k___signer.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a8">NewSignatureAccumulator</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">create a new <a class="el" href="class_hash_transformation.html">HashTransformation</a> to accumulate the message to be signed <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_p_k___signer.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a9">Sign</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> *messageAccumulator, byte *signature) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sign and delete messageAccumulator (even in case of exception thrown)  <a href="#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a9"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_p_k___signer.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a10">SignMessage</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *message, unsigned int messageLen, byte *signature) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sign a message  <a href="#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a10"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_p_k___signer.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a11">SignMessageWithRecovery</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *recoverableMessage, unsigned int recoverableMessageLength, const byte *nonrecoverableMessage, unsigned int nonrecoverableMessageLength, byte *signature) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sign a recoverable message  <a href="#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a11"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___verifier_base_00_01_public_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a14" doxytag="DL_SignerBase::MaxSignatureLength" ></a>
virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_p_k___signature_scheme.html#_two_bases_3_01_t_f___verifier_base_00_01_public_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a14">MaxSignatureLength</a> (unsigned int recoverablePartLength=0) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">maximum signature length produced for a given length of recoverable message part <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___verifier_base_00_01_public_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a15" doxytag="DL_SignerBase::SignatureUpfront" ></a>
virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_p_k___signature_scheme.html#_two_bases_3_01_t_f___verifier_base_00_01_public_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a15">SignatureUpfront</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">if this function returns true, during verification you must input the signature before the message, otherwise you can input it at anytime */ <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a14" doxytag="DL_SignerBase::AccessMaterial" ></a>
<a class="el" href="class_crypto_material.html">CryptoMaterial</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_private_key_algorithm.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a14">AccessMaterial</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns a reference to the crypto material used by this object <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a15" doxytag="DL_SignerBase::GetMaterial" ></a>
const <a class="el" href="class_crypto_material.html">CryptoMaterial</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_private_key_algorithm.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a15">GetMaterial</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns a const reference to the crypto material used by this object <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a16" doxytag="DL_SignerBase::AccessPrivateKey" ></a>
virtual <a class="el" href="class_private_key.html">PrivateKey</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>AccessPrivateKey</b> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a17" doxytag="DL_SignerBase::GetPrivateKey" ></a>
virtual const <a class="el" href="class_private_key.html">PrivateKey</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>GetPrivateKey</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha24" doxytag="DL_SignerBase::BERDecode" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_asymmetric_algorithm.html#_x_t_r___d_ha24">BERDecode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for backwards compatibility, calls <a class="el" href="class_asymmetric_algorithm.html#_asymmetric_algorithma0">AccessMaterial()</a>.Load(bt) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_two_bases_3_01_t_f___verifier_base_00_01_public_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a21" doxytag="DL_SignerBase::DEREncode" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_asymmetric_algorithm.html#_two_bases_3_01_t_f___verifier_base_00_01_public_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a21">DEREncode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for backwards compatibility, calls GetMaterial().Save(bt) <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_zlib_decompressora17" doxytag="DL_SignerBase::AlgorithmName" ></a>
virtual std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_algorithm.html#_zlib_decompressora17">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="_zlib_decompressora18" doxytag="DL_SignerBase::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>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___crypto_system_basex0" doxytag="DL_SignerBase::KeyInterface" ></a>
typedef <a class="el" href="class_d_l___private_key.html">DL_PrivateKey</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign=bottom><b>KeyInterface</b></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___basex1" doxytag="DL_SignerBase::Element" ></a>
typedef <a class="el" href="class_d_l___private_key.html">DL_PrivateKey</a>&lt; T <br>
&gt;::Element&nbsp;</td><td class="memItemRight" valign=bottom><b>Element</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="_d_l___signer_baseb0" doxytag="DL_SignerBase::RestartMessageAccumulator" ></a>
void&nbsp;</td><td class="memItemRight" valign=bottom><b>RestartMessageAccumulator</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, PK_MessageAccumulatorBase &amp;ma) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_baseb0" doxytag="DL_SignerBase::MessageRepresentativeLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>MessageRepresentativeLength</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_baseb1" doxytag="DL_SignerBase::MessageRepresentativeBitLength" ></a>
unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>MessageRepresentativeBitLength</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_baseb2" doxytag="DL_SignerBase::GetSignatureAlgorithm" ></a>
virtual const <a class="el" href="class_d_l___elgamal_like_signature_algorithm.html">DL_ElgamalLikeSignatureAlgorithm</a>&lt;<br>
 typename <a class="el" href="class_d_l___private_key.html">DL_PrivateKey</a>&lt; T <br>
&gt;::Element &gt; &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>GetSignatureAlgorithm</b> () const=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_baseb3" doxytag="DL_SignerBase::GetMessageEncodingInterface" ></a>
virtual const <a class="el" href="class_p_k___signature_message_encoding_method.html">PK_SignatureMessageEncodingMethod</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>GetMessageEncodingInterface</b> () const=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_baseb4" doxytag="DL_SignerBase::GetHashIdentifier" ></a>
virtual HashIdentifier&nbsp;</td><td class="memItemRight" valign=bottom><b>GetHashIdentifier</b> () const=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___signature_scheme_baseb5" doxytag="DL_SignerBase::GetDigestSize" ></a>
virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>GetDigestSize</b> () const=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___crypto_system_baseb3" doxytag="DL_SignerBase::GetAbstractGroupParameters" ></a>
const <a class="el" href="class_d_l___group_parameters.html">DL_GroupParameters</a>&lt;<br>
 Element &gt; &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>GetAbstractGroupParameters</b> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___crypto_system_baseb4" doxytag="DL_SignerBase::AccessAbstractGroupParameters" ></a>
<a class="el" href="class_d_l___group_parameters.html">DL_GroupParameters</a>&lt; Element &gt; &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>AccessAbstractGroupParameters</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___crypto_system_baseb5" doxytag="DL_SignerBase::AccessKeyInterface" ></a>
virtual KeyInterface &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>AccessKeyInterface</b> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___crypto_system_baseb6" doxytag="DL_SignerBase::GetKeyInterface" ></a>
virtual const KeyInterface &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>GetKeyInterface</b> () const=0</td></tr>

</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="_d_l___signer_basea2" doxytag="DL_SignerBase::SignAndRestart" ></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" colspan="4">
template&lt;class T&gt; </td>
        </tr>
        <tr>
          <td class="md" nowrap valign="top"> unsigned int <a class="el" href="class_d_l___signer_base.html">DL_SignerBase</a>&lt; T &gt;::SignAndRestart           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>messageAccumulator</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>signature</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>restart</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
sign and restart messageAccumulator 
<p>
<dl compact><dt><b>Precondition:</b></dt><dd>size of signature == MaxSignatureLength() </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>actual signature length</dd></dl>

<p>
Implements <a class="el" href="class_p_k___signer.html#_t_f___signature_scheme_base_3_01_p_k___signer_00_01_t_f___base_3_01_randomized_trapdoor_function_inverse_00_01_p_k___signature_message_encoding_method_01_4_01_4a9">PK_Signer</a>.
<p>
Definition at line <a class="el" href="pubkey_8h-source.html#l01038">1038</a> of file <a class="el" href="pubkey_8h-source.html">pubkey.h</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_d_l___signature_scheme_basea3" doxytag="DL_SignerBase::IsProbabilistic" ></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 <a class="el" href="class_d_l___signature_scheme_base.html">DL_SignatureSchemeBase</a>&lt; <a class="el" href="class_p_k___signer.html">PK_Signer</a> , <a class="el" href="class_d_l___private_key.html">DL_PrivateKey</a>&lt; T &gt;  &gt;::IsProbabilistic           </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, 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_p_k___signature_scheme.html#_p_k___verifiera12">PK_SignatureScheme</a>.
<p>
Definition at line <a class="el" href="pubkey_8h-source.html#l00995">995</a> of file <a class="el" href="pubkey_8h-source.html">pubkey.h</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a9" doxytag="DL_SignerBase::Sign" ></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"> unsigned int PK_Signer::Sign           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>messageAccumulator</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>signature</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const<code> [virtual, inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
sign and delete messageAccumulator (even in case of exception thrown) 
<p>
<dl compact><dt><b>Precondition:</b></dt><dd>size of signature == MaxSignatureLength() </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>actual signature length</dd></dl>

<p>
Definition at line <a class="el" href="cryptlib_8cpp-source.html#l00615">615</a> of file <a class="el" href="cryptlib_8cpp-source.html">cryptlib.cpp</a>.
<p>
References <a class="el" href="cryptlib_8cpp-source.html#l00615">PK_Signer::Sign()</a>, and <a class="el" href="class_p_k___signer.html#_t_f___signature_scheme_base_3_01_p_k___signer_00_01_t_f___base_3_01_randomized_trapdoor_function_inverse_00_01_p_k___signature_message_encoding_method_01_4_01_4a9">PK_Signer::SignAndRestart()</a>.
<p>
Referenced by <a class="el" href="filters_8cpp-source.html#l00747">SignerFilter::Put2()</a>, and <a class="el" href="cryptlib_8cpp-source.html#l00615">PK_Signer::Sign()</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a10" doxytag="DL_SignerBase::SignMessage" ></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"> unsigned int PK_Signer::SignMessage           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>message</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>messageLen</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>signature</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const<code> [virtual, inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
sign a message 
<p>
<dl compact><dt><b>Precondition:</b></dt><dd>size of signature == MaxSignatureLength() </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>actual signature length</dd></dl>

<p>
Definition at line <a class="el" href="cryptlib_8cpp-source.html#l00621">621</a> of file <a class="el" href="cryptlib_8cpp-source.html">cryptlib.cpp</a>.
<p>
References <a class="el" href="class_p_k___signer.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a8">PK_Signer::NewSignatureAccumulator()</a>, <a class="el" href="class_p_k___signer.html#_t_f___signature_scheme_base_3_01_p_k___signer_00_01_t_f___base_3_01_randomized_trapdoor_function_inverse_00_01_p_k___signature_message_encoding_method_01_4_01_4a9">PK_Signer::SignAndRestart()</a>, and <a class="el" href="cryptlib_8cpp-source.html#l00621">PK_Signer::SignMessage()</a>.
<p>
Referenced by <a class="el" href="cryptlib_8cpp-source.html#l00621">PK_Signer::SignMessage()</a>.    </td>
  </tr>
</table>
<a class="anchor" name="_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a11" doxytag="DL_SignerBase::SignMessageWithRecovery" ></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"> unsigned int PK_Signer::SignMessageWithRecovery           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>recoverableMessage</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>recoverableMessageLength</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>nonrecoverableMessage</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>nonrecoverableMessageLength</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>byte *&nbsp;</td>
          <td class="mdname" nowrap> <em>signature</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const<code> [virtual, inherited]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
sign a recoverable message 
<p>
<dl compact><dt><b>Precondition:</b></dt><dd>size of signature == <a class="el" href="class_p_k___signature_scheme.html#_two_bases_3_01_t_f___verifier_base_00_01_public_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a14">MaxSignatureLength(recoverableMessageLength)</a> </dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>actual signature length</dd></dl>

<p>
Definition at line <a class="el" href="cryptlib_8cpp-source.html#l00628">628</a> of file <a class="el" href="cryptlib_8cpp-source.html">cryptlib.cpp</a>.
<p>
References <a class="el" href="class_p_k___signer.html#_two_bases_3_01_t_f___signer_base_00_01_private_key_copier_3_01_s_c_h_e_m_e___o_p_t_i_o_n_s_1_1_keys_01_4_01_4a8">PK_Signer::NewSignatureAccumulator()</a>, <a class="el" href="class_p_k___signer.html#_t_f___signature_scheme_base_3_01_p_k___signer_00_01_t_f___base_3_01_randomized_trapdoor_function_inverse_00_01_p_k___signature_message_encoding_method_01_4_01_4a9">PK_Signer::SignAndRestart()</a>, and <a class="el" href="cryptlib_8cpp-source.html#l00628">PK_Signer::SignMessageWithRecovery()</a>.
<p>
Referenced by <a class="el" href="cryptlib_8cpp-source.html#l00628">PK_Signer::SignMessageWithRecovery()</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="pubkey_8h-source.html">pubkey.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:24:03 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>