Sophie

Sophie

distrib > Fedora > 13 > i386 > media > os > by-pkgid > 07dfcfe50d66c9a48a3c5e6c1693f12a > files > 532

cryptopp-doc-5.6.1-0.1.svn479.fc13.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Crypto++: DL_SignerImpl&lt; SCHEME_OPTIONS &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>DL_SignerImpl&lt; SCHEME_OPTIONS &gt; Class Template Reference</h1><!-- doxytag: class="DL_SignerImpl" --><!-- doxytag: inherits="DL_ObjectImpl&lt; DL_SignerBase&lt; SCHEME_OPTIONS::Element &gt;, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey &gt;" -->
<p>_  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="pubkey_8h_source.html">pubkey.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for DL_SignerImpl&lt; SCHEME_OPTIONS &gt;:</div>
<div class="dynsection">
 <div class="center">
  <img src="class_d_l___signer_impl.gif" usemap="#DL_SignerImpl&lt; SCHEME_OPTIONS &gt;_map" alt=""/>
  <map id="DL_SignerImpl&lt; SCHEME_OPTIONS &gt;_map" name="DL_SignerImpl&lt; SCHEME_OPTIONS &gt;_map">
<area href="class_d_l___object_impl.html" alt="DL_ObjectImpl&lt; DL_SignerBase&lt; SCHEME_OPTIONS::Element &gt;, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey &gt;" shape="rect" coords="749,504,1488,528"/>
<area href="class_d_l___object_impl_base.html" alt="DL_ObjectImplBase&lt; DL_SignerBase&lt; SCHEME_OPTIONS::Element &gt;, SCHEME_OPTIONS, SCHEME_OPTIONS::PrivateKey &gt;" shape="rect" coords="749,448,1488,472"/>
<area href="class_algorithm_impl.html" alt="AlgorithmImpl&lt; DL_SignerBase&lt; SCHEME_OPTIONS::Element &gt;, SCHEME_OPTIONS::AlgorithmInfo &gt;" shape="rect" coords="749,392,1488,416"/>
<area href="class_d_l___signer_base.html" alt="DL_SignerBase&lt; SCHEME_OPTIONS::Element &gt;" shape="rect" coords="749,336,1488,360"/>
<area href="class_d_l___signature_scheme_base.html" alt="DL_SignatureSchemeBase&lt; PK_Signer, DL_PrivateKey&lt; SCHEME_OPTIONS::Element &gt; &gt;" shape="rect" coords="749,280,1488,304"/>
<area href="class_p_k___signer.html" alt="PK_Signer" shape="rect" coords="374,224,1113,248"/>
<area href="class_d_l___base.html" alt="DL_Base&lt; DL_PrivateKey&lt; SCHEME_OPTIONS::Element &gt; &gt;" shape="rect" coords="1123,224,1862,248"/>
<area href="class_p_k___signature_scheme.html" alt="PK_SignatureScheme" shape="rect" coords="0,168,739,192"/>
<area href="class_private_key_algorithm.html" alt="PrivateKeyAlgorithm" shape="rect" coords="749,168,1488,192"/>
<area href="class_asymmetric_algorithm.html" alt="AsymmetricAlgorithm" shape="rect" coords="749,112,1488,136"/>
<area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="749,56,1488,80"/>
<area href="class_clonable.html" alt="Clonable" shape="rect" coords="749,0,1488,24"/>
</map>
 </div>
</div>

<p><a href="class_d_l___signer_impl-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79f28a05b245841b7295d4c119700892"></a><!-- doxytag: member="DL_SignerImpl::Element" ref="a79f28a05b245841b7295d4c119700892" args="" -->
typedef <br class="typebreak"/>
SCHEME_OPTIONS::PrivateKey::Element&nbsp;</td><td class="memItemRight" valign="bottom"><b>Element</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6f5ed674de19651ef59f5ffca06c1d3"></a><!-- doxytag: member="DL_SignerImpl::SchemeOptions" ref="ac6f5ed674de19651ef59f5ffca06c1d3" args="" -->
typedef SCHEME_OPTIONS&nbsp;</td><td class="memItemRight" valign="bottom"><b>SchemeOptions</b></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aabb709574c6f38f6d5992e88095d4298"></a><!-- doxytag: member="DL_SignerImpl::NewSignatureAccumulator" ref="aabb709574c6f38f6d5992e88095d4298" args="(RandomNumberGenerator &amp;rng) const " -->
<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_d_l___signer_impl.html#aabb709574c6f38f6d5992e88095d4298">NewSignatureAccumulator</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">create a new <a class="el" href="class_hash_transformation.html" title="interface for hash functions and data processing part of MACs">HashTransformation</a> to accumulate the message to be signed <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf6b42d2625531e2a687315ed8a6ce3f"></a><!-- doxytag: member="DL_SignerImpl::AccessPrivateKey" ref="acf6b42d2625531e2a687315ed8a6ce3f" args="()" -->
<a class="el" href="class_private_key.html">PrivateKey</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>AccessPrivateKey</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0752de1b25d033c60f10dec6a73a087c"></a><!-- doxytag: member="DL_SignerImpl::AccessPublicKey" ref="a0752de1b25d033c60f10dec6a73a087c" args="()" -->
<a class="el" href="class_public_key.html">PublicKey</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>AccessPublicKey</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c5dfaa1d89456b201a0f0431ad42e7c"></a><!-- doxytag: member="DL_SignerImpl::GetKey" ref="a7c5dfaa1d89456b201a0f0431ad42e7c" args="() const" -->
const SCHEME_OPTIONS::PrivateKey &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetKey</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add3080d45df60168f02e2a0a894f1bea"></a><!-- doxytag: member="DL_SignerImpl::AccessKey" ref="add3080d45df60168f02e2a0a894f1bea" args="()" -->
SCHEME_OPTIONS::PrivateKey &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>AccessKey</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d6e3714fc32c36789147d9f3b627eeb"></a><!-- doxytag: member="DL_SignerImpl::AlgorithmName" ref="a9d6e3714fc32c36789147d9f3b627eeb" args="() const" -->
std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm_impl.html#a9d6e3714fc32c36789147d9f3b627eeb">AlgorithmName</a> () const</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns name of this algorithm, not universally implemented yet <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb883276d98b4b2086c016c68d4aa22c"></a><!-- doxytag: member="DL_SignerImpl::RawSign" ref="afb883276d98b4b2086c016c68d4aa22c" args="(const Integer &amp;k, const Integer &amp;e, Integer &amp;r, Integer &amp;s) const" -->
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" align="right" valign="top"><a class="anchor" id="affc7daf6e470600046a2741ad5098f74"></a><!-- doxytag: member="DL_SignerImpl::InputRecoverableMessage" ref="affc7daf6e470600046a2741ad5098f74" args="(PK_MessageAccumulator &amp;messageAccumulator, const byte *recoverableMessage, size_t recoverableMessageLength) const" -->
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, size_t recoverableMessageLength) const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signer_base.html#a1c0d9588fc5a340a14342c474b2a52e2">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="#a1c0d9588fc5a340a14342c474b2a52e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad6ae2e613adb912c3860182a9cb027af"></a><!-- doxytag: member="DL_SignerImpl::SignatureLength" ref="ad6ae2e613adb912c3860182a9cb027af" args="() const" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_scheme_base.html#ad6ae2e613adb912c3860182a9cb027af">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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a248fb009c6bc306e3cf88b048e90a948"></a><!-- doxytag: member="DL_SignerImpl::MaxRecoverableLength" ref="a248fb009c6bc306e3cf88b048e90a948" args="() const" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_scheme_base.html#a248fb009c6bc306e3cf88b048e90a948">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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0783f3f292fb2c1d66949cee5361ddcc"></a><!-- doxytag: member="DL_SignerImpl::MaxRecoverableLengthFromSignatureLength" ref="a0783f3f292fb2c1d66949cee5361ddcc" args="(size_t signatureLength) const" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_scheme_base.html#a0783f3f292fb2c1d66949cee5361ddcc">MaxRecoverableLengthFromSignatureLength</a> (size_t 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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_scheme_base.html#ae87d7260e0768b1142cd7c9e8752296c">IsProbabilistic</a> () const</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">requires a random number generator to sign  <a href="#ae87d7260e0768b1142cd7c9e8752296c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42afaadc73dcd76d0c0d1c11ae2c3619"></a><!-- doxytag: member="DL_SignerImpl::AllowNonrecoverablePart" ref="a42afaadc73dcd76d0c0d1c11ae2c3619" args="() const" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_scheme_base.html#a42afaadc73dcd76d0c0d1c11ae2c3619">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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ee403e1fa8a48911cb97abf5e584504"></a><!-- doxytag: member="DL_SignerImpl::RecoverablePartFirst" ref="a5ee403e1fa8a48911cb97abf5e584504" args="() const" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_scheme_base.html#a5ee403e1fa8a48911cb97abf5e584504">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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___signer.html#a28de428238711210d765b6389062e6e2">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="#a28de428238711210d765b6389062e6e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___signer.html#a08920dfd51f5d0d8e5f77c8f20b56ce2">SignMessage</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *message, size_t messageLen, byte *signature) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sign a message  <a href="#a08920dfd51f5d0d8e5f77c8f20b56ce2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___signer.html#a76eb862d0cb8d80e0bee7ad52a0da707">SignMessageWithRecovery</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *recoverableMessage, size_t recoverableMessageLength, const byte *nonrecoverableMessage, size_t nonrecoverableMessageLength, byte *signature) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sign a recoverable message  <a href="#a76eb862d0cb8d80e0bee7ad52a0da707"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af04668d211a923ba03f2721c220272e9"></a><!-- doxytag: member="DL_SignerImpl::MaxSignatureLength" ref="af04668d211a923ba03f2721c220272e9" args="(size_t recoverablePartLength=0) const " -->
virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___signature_scheme.html#af04668d211a923ba03f2721c220272e9">MaxSignatureLength</a> (size_t 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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a780bca8d276b62bd28a54382f208ce36"></a><!-- doxytag: member="DL_SignerImpl::SignatureUpfront" ref="a780bca8d276b62bd28a54382f208ce36" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___signature_scheme.html#a780bca8d276b62bd28a54382f208ce36">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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a48cf4528f16263f2200d5b908a0b8ffb"></a><!-- doxytag: member="DL_SignerImpl::AccessMaterial" ref="a48cf4528f16263f2200d5b908a0b8ffb" args="()" -->
<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#a48cf4528f16263f2200d5b908a0b8ffb">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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0199217f43af73a6ad78fe1303903fe3"></a><!-- doxytag: member="DL_SignerImpl::GetMaterial" ref="a0199217f43af73a6ad78fe1303903fe3" args="() const " -->
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#a0199217f43af73a6ad78fe1303903fe3">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/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24edb4d57abc975e0e40ee02ce8f08fa"></a><!-- doxytag: member="DL_SignerImpl::GetPrivateKey" ref="a24edb4d57abc975e0e40ee02ce8f08fa" args="() const " -->
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" align="right" valign="top"><a class="anchor" id="a522dbfcd5c1a46bf1be301cec26d6534"></a><!-- doxytag: member="DL_SignerImpl::BERDecode" ref="a522dbfcd5c1a46bf1be301cec26d6534" args="(BufferedTransformation &amp;bt)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_asymmetric_algorithm.html#a522dbfcd5c1a46bf1be301cec26d6534">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#ad99d55413166b69a0a12e10d111926c8" title="returns a reference to the crypto material used by this object">AccessMaterial()</a>.Load(bt) <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d704079890783422b0a44653480ab83"></a><!-- doxytag: member="DL_SignerImpl::DEREncode" ref="a2d704079890783422b0a44653480ab83" args="(BufferedTransformation &amp;bt) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_asymmetric_algorithm.html#a2d704079890783422b0a44653480ab83">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 <a class="el" href="class_asymmetric_algorithm.html#adf9cc798c5a2d20ab3436dbad8e6df2d" title="returns a const reference to the crypto material used by this object">GetMaterial()</a>.Save(bt) <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24b43349a71e1f98508eeb10b31a0a62"></a><!-- doxytag: member="DL_SignerImpl::Clone" ref="a24b43349a71e1f98508eeb10b31a0a62" args="() const " -->
virtual <a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_clonable.html#a24b43349a71e1f98508eeb10b31a0a62">Clone</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this is not implemented by most classes yet <br/></td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d608152f1b6ef03772d9b9616d6ab86"></a><!-- doxytag: member="DL_SignerImpl::StaticAlgorithmName" ref="a4d608152f1b6ef03772d9b9616d6ab86" args="()" -->
static std::string __cdecl&nbsp;</td><td class="memItemRight" valign="bottom"><b>StaticAlgorithmName</b> ()</td></tr>
<tr><td colspan="2"><h2>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd4bfa675133a35fe8e2f5b43d0d58cf"></a><!-- doxytag: member="DL_SignerImpl::KeyInterface" ref="afd4bfa675133a35fe8e2f5b43d0d58cf" args="" -->
typedef <a class="el" href="class_d_l___private_key.html">DL_PrivateKey</a><br class="typebreak"/>
&lt; SCHEME_OPTIONS::Element &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>KeyInterface</b></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15f98dc0dc079075088477efebd0f7cf"></a><!-- doxytag: member="DL_SignerImpl::GetSignatureAlgorithm" ref="a15f98dc0dc079075088477efebd0f7cf" args="() const" -->
const <br class="typebreak"/>
<a class="el" href="class_d_l___elgamal_like_signature_algorithm.html">DL_ElgamalLikeSignatureAlgorithm</a><br class="typebreak"/>
&lt; Element &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetSignatureAlgorithm</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59011b6b70302a949ec794babbc09a1f"></a><!-- doxytag: member="DL_SignerImpl::GetKeyAgreementAlgorithm" ref="a59011b6b70302a949ec794babbc09a1f" args="() const" -->
const <a class="el" href="class_d_l___key_agreement_algorithm.html">DL_KeyAgreementAlgorithm</a><br class="typebreak"/>
&lt; Element &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetKeyAgreementAlgorithm</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acdbf31eb4f68e740191d2d0b73708109"></a><!-- doxytag: member="DL_SignerImpl::GetKeyDerivationAlgorithm" ref="acdbf31eb4f68e740191d2d0b73708109" args="() const" -->
const <br class="typebreak"/>
<a class="el" href="class_d_l___key_derivation_algorithm.html">DL_KeyDerivationAlgorithm</a><br class="typebreak"/>
&lt; Element &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetKeyDerivationAlgorithm</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3cc73ef8ba09b0ccefcbc4073fa7150e"></a><!-- doxytag: member="DL_SignerImpl::GetSymmetricEncryptionAlgorithm" ref="a3cc73ef8ba09b0ccefcbc4073fa7150e" args="() const" -->
const <br class="typebreak"/>
<a class="el" href="class_d_l___symmetric_encryption_algorithm.html">DL_SymmetricEncryptionAlgorithm</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetSymmetricEncryptionAlgorithm</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13fa6f625098b2d5ab138363f4ba4bce"></a><!-- doxytag: member="DL_SignerImpl::GetHashIdentifier" ref="a13fa6f625098b2d5ab138363f4ba4bce" args="() const" -->
HashIdentifier&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetHashIdentifier</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad28756cf0e67692fdcad61450ae21f5e"></a><!-- doxytag: member="DL_SignerImpl::GetMessageEncodingInterface" ref="ad28756cf0e67692fdcad61450ae21f5e" args="() const" -->
const <br class="typebreak"/>
<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</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4e61281fd0ea2b6097915d330566c00"></a><!-- doxytag: member="DL_SignerImpl::AccessKeyInterface" ref="af4e61281fd0ea2b6097915d330566c00" args="()" -->
<a class="el" href="class_d_l___signer_base.html">DL_SignerBase</a><br class="typebreak"/>
&lt; SCHEME_OPTIONS::Element &gt;<br class="typebreak"/>
::<a class="el" href="class_d_l___private_key.html">KeyInterface</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>AccessKeyInterface</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d7af27b16078118b401f04adada8977"></a><!-- doxytag: member="DL_SignerImpl::GetKeyInterface" ref="a0d7af27b16078118b401f04adada8977" args="() const" -->
const <a class="el" href="class_d_l___signer_base.html">DL_SignerBase</a><br class="typebreak"/>
&lt; SCHEME_OPTIONS::Element &gt;<br class="typebreak"/>
::<a class="el" href="class_d_l___private_key.html">KeyInterface</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetKeyInterface</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d0d6de472834351e262bcc1887b214f"></a><!-- doxytag: member="DL_SignerImpl::GetDigestSize" ref="a7d0d6de472834351e262bcc1887b214f" args="() const" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetDigestSize</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada3201914424fef2e0e9ed697cc160e5"></a><!-- doxytag: member="DL_SignerImpl::RestartMessageAccumulator" ref="ada3201914424fef2e0e9ed697cc160e5" args="(RandomNumberGenerator &amp;rng, PK_MessageAccumulatorBase &amp;ma) const" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>RestartMessageAccumulator</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <a class="el" href="class_p_k___message_accumulator_base.html">PK_MessageAccumulatorBase</a> &amp;ma) const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad92fc441759cc162b0c3fe387cac1464"></a><!-- doxytag: member="DL_SignerImpl::MessageRepresentativeLength" ref="ad92fc441759cc162b0c3fe387cac1464" args="() const" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>MessageRepresentativeLength</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade26acb20ca816bd219bff7dd8bab715"></a><!-- doxytag: member="DL_SignerImpl::MessageRepresentativeBitLength" ref="ade26acb20ca816bd219bff7dd8bab715" args="() const" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>MessageRepresentativeBitLength</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadf23a474978c6fd6e376a05129dce3f"></a><!-- doxytag: member="DL_SignerImpl::GetAbstractGroupParameters" ref="aadf23a474978c6fd6e376a05129dce3f" args="() const" -->
const <a class="el" href="class_d_l___group_parameters.html">DL_GroupParameters</a><br class="typebreak"/>
&lt; Element &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetAbstractGroupParameters</b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add23b00903bac148152df88ef051724a"></a><!-- doxytag: member="DL_SignerImpl::AccessAbstractGroupParameters" ref="add23b00903bac148152df88ef051724a" args="()" -->
<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>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class SCHEME_OPTIONS&gt;<br/>
 class DL_SignerImpl&lt; SCHEME_OPTIONS &gt;</h3>

<p>_ </p>

<p>Definition at line <a class="el" href="pubkey_8h_source.html#l01338">1338</a> of file <a class="el" href="pubkey_8h_source.html">pubkey.h</a>.</p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a1c0d9588fc5a340a14342c474b2a52e2"></a><!-- doxytag: member="DL_SignerImpl::SignAndRestart" ref="a1c0d9588fc5a340a14342c474b2a52e2" args="(RandomNumberGenerator &amp;rng, PK_MessageAccumulator &amp;messageAccumulator, byte *signature, bool restart) const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="class_d_l___signer_base.html">DL_SignerBase</a>&lt; SCHEME_OPTIONS::Element  &gt;::SignAndRestart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>messageAccumulator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&nbsp;</td>
          <td class="paramname"> <em>signature</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>restart</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>sign and restart messageAccumulator </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>size of signature == <a class="el" href="class_p_k___signature_scheme.html#af04668d211a923ba03f2721c220272e9" title="maximum signature length produced for a given length of recoverable message part">MaxSignatureLength()</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>actual signature length </dd></dl>

<p>Implements <a class="el" href="class_p_k___signer.html#afbcf3f00d761f681839ae6264743dd34">PK_Signer</a>.</p>

<p>Definition at line <a class="el" href="pubkey_8h_source.html#l01018">1018</a> of file <a class="el" href="pubkey_8h_source.html">pubkey.h</a>.</p>

<p>References <a class="el" href="cryptlib_8h_source.html#l00687">RandomNumberGenerator::CanIncorporateEntropy()</a>, and <a class="el" href="cryptlib_8h_source.html#l00684">RandomNumberGenerator::IncorporateEntropy()</a>.</p>

</div>
</div>
<a class="anchor" id="ae87d7260e0768b1142cd7c9e8752296c"></a><!-- doxytag: member="DL_SignerImpl::IsProbabilistic" ref="ae87d7260e0768b1142cd7c9e8752296c" args="() const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">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; SCHEME_OPTIONS::Element &gt;  &gt;::IsProbabilistic </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implements <a class="el" href="class_p_k___signature_scheme.html#adeb758d5f8ae8fad137d11ad1c5c60c0">PK_SignatureScheme</a>.</p>

<p>Definition at line <a class="el" href="pubkey_8h_source.html#l00975">975</a> of file <a class="el" href="pubkey_8h_source.html">pubkey.h</a>.</p>

</div>
</div>
<a class="anchor" id="a28de428238711210d765b6389062e6e2"></a><!-- doxytag: member="DL_SignerImpl::Sign" ref="a28de428238711210d765b6389062e6e2" args="(RandomNumberGenerator &amp;rng, PK_MessageAccumulator *messageAccumulator, byte *signature) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t PK_Signer::Sign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_p_k___message_accumulator.html">PK_MessageAccumulator</a> *&nbsp;</td>
          <td class="paramname"> <em>messageAccumulator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&nbsp;</td>
          <td class="paramname"> <em>signature</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>sign and delete messageAccumulator (even in case of exception thrown) </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>size of signature == <a class="el" href="class_p_k___signature_scheme.html#af04668d211a923ba03f2721c220272e9" title="maximum signature length produced for a given length of recoverable message part">MaxSignatureLength()</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>actual signature length </dd></dl>

<p>Definition at line <a class="el" href="cryptlib_8cpp_source.html#l00749">749</a> of file <a class="el" href="cryptlib_8cpp_source.html">cryptlib.cpp</a>.</p>

<p>References <a class="el" href="class_p_k___signer.html#afbcf3f00d761f681839ae6264743dd34">PK_Signer::SignAndRestart()</a>.</p>

<p>Referenced by <a class="el" href="filters_8cpp_source.html#l00924">SignerFilter::Put2()</a>.</p>

</div>
</div>
<a class="anchor" id="a08920dfd51f5d0d8e5f77c8f20b56ce2"></a><!-- doxytag: member="DL_SignerImpl::SignMessage" ref="a08920dfd51f5d0d8e5f77c8f20b56ce2" args="(RandomNumberGenerator &amp;rng, const byte *message, size_t messageLen, byte *signature) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t PK_Signer::SignMessage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&nbsp;</td>
          <td class="paramname"> <em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>messageLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&nbsp;</td>
          <td class="paramname"> <em>signature</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>sign a message </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>size of signature == <a class="el" href="class_p_k___signature_scheme.html#af04668d211a923ba03f2721c220272e9" title="maximum signature length produced for a given length of recoverable message part">MaxSignatureLength()</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>actual signature length </dd></dl>

<p>Definition at line <a class="el" href="cryptlib_8cpp_source.html#l00755">755</a> of file <a class="el" href="cryptlib_8cpp_source.html">cryptlib.cpp</a>.</p>

<p>References <a class="el" href="class_p_k___signer.html#aff85d006e814ccc8ac943b145a0bfaf9">PK_Signer::NewSignatureAccumulator()</a>, and <a class="el" href="class_p_k___signer.html#afbcf3f00d761f681839ae6264743dd34">PK_Signer::SignAndRestart()</a>.</p>

</div>
</div>
<a class="anchor" id="a76eb862d0cb8d80e0bee7ad52a0da707"></a><!-- doxytag: member="DL_SignerImpl::SignMessageWithRecovery" ref="a76eb862d0cb8d80e0bee7ad52a0da707" args="(RandomNumberGenerator &amp;rng, const byte *recoverableMessage, size_t recoverableMessageLength, const byte *nonrecoverableMessage, size_t nonrecoverableMessageLength, byte *signature) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t PK_Signer::SignMessageWithRecovery </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&nbsp;</td>
          <td class="paramname"> <em>recoverableMessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>recoverableMessageLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&nbsp;</td>
          <td class="paramname"> <em>nonrecoverableMessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>nonrecoverableMessageLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&nbsp;</td>
          <td class="paramname"> <em>signature</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>sign a recoverable message </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>size of signature == MaxSignatureLength(recoverableMessageLength) </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>actual signature length </dd></dl>

<p>Definition at line <a class="el" href="cryptlib_8cpp_source.html#l00762">762</a> of file <a class="el" href="cryptlib_8cpp_source.html">cryptlib.cpp</a>.</p>

<p>References <a class="el" href="class_p_k___signer.html#aff85d006e814ccc8ac943b145a0bfaf9">PK_Signer::NewSignatureAccumulator()</a>, and <a class="el" href="class_p_k___signer.html#afbcf3f00d761f681839ae6264743dd34">PK_Signer::SignAndRestart()</a>.</p>

</div>
</div>
<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></li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 9 Dec 2009 for Crypto++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>