📄 struct_d_s_a.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>Crypto++: DSA Struct Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.2 --><div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="classes.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="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div><h1>DSA Struct Reference</h1><!-- doxytag: class="DSA" --><!-- doxytag: inherits="DL_SS< DL_Keys_DSA, DL_Algorithm_GDSA< Integer >, DL_SignatureMessageEncodingMethod_DSA, SHA, DSA >" --><code>#include <<a class="el" href="gfpcrypt_8h-source.html">gfpcrypt.h</a>></code><p><p>Inheritance diagram for DSA:<p><center><img src="struct_d_s_a.png" usemap="#DSA_map" border="0" alt=""></center><map name="DSA_map"><area href="class_d_l___s_s.html" alt="DL_SS< DL_Keys_DSA, DL_Algorithm_GDSA< Integer >, DL_SignatureMessageEncodingMethod_DSA, SHA, DSA >" shape="rect" coords="0,56,684,80"><area href="struct_d_l___keys___d_s_a.html" alt="DL_Keys_DSA" shape="rect" coords="0,0,684,24"></map><a href="struct_d_s_a-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2><a href="http://www.weidai.com/scan-mirror/sig.html#DSA">DSA</a> <p><p>Definition at line <a class="el" href="gfpcrypt_8h-source.html#l00384">384</a> of file <a class="el" href="gfpcrypt_8h-source.html">gfpcrypt.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 </td><td class="memItemRight" valign="bottom">{ <a class="el" href="struct_d_s_a.html#116b2ce7571a9763a4c59db13df29ac4413962145fccf747bdea3bac1ae4c5f4">MIN_PRIME_LENGTH</a> = 1024, <a class="el" href="struct_d_s_a.html#116b2ce7571a9763a4c59db13df29ac4ca432ae49e56b3a9e1bd1c807918a947">MAX_PRIME_LENGTH</a> = 1024, <a class="el" href="struct_d_s_a.html#116b2ce7571a9763a4c59db13df29ac4bc6f89b1820fc7d4b9dcfcfcc9f6cee1">PRIME_LENGTH_MULTIPLE</a> = 64 }</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">FIPS 186-2 Change Notice 1 changed the minimum modulus length to 1024. <a href="struct_d_s_a.html#116b2ce7571a9763a4c59db13df29ac4">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="06e7b984899bf56fbd09e62315339c67"></a><!-- doxytag: member="DSA::Signer" ref="06e7b984899bf56fbd09e62315339c67" args="" -->typedef <a class="el" href="class_p_k___final_template.html">PK_FinalTemplate</a><<br> <a class="el" href="class_d_l___signer_impl.html">DL_SignerImpl</a>< <a class="el" href="struct_d_l___signature_scheme_options.html">SchemeOptions</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___s_s.html#06e7b984899bf56fbd09e62315339c67">Signer</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">implements <a class="el" href="class_p_k___signer.html" title="interface for public-key signers">PK_Signer</a> interface <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="82b5f64ffa8f0ebb04743a074e3d201a"></a><!-- doxytag: member="DSA::Verifier" ref="82b5f64ffa8f0ebb04743a074e3d201a" args="" -->typedef <a class="el" href="class_p_k___final_template.html">PK_FinalTemplate</a><<br> <a class="el" href="class_d_l___verifier_impl.html">DL_VerifierImpl</a>< <a class="el" href="struct_d_l___signature_scheme_options.html">SchemeOptions</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___s_s.html#82b5f64ffa8f0ebb04743a074e3d201a">Verifier</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">implements <a class="el" href="class_p_k___verifier.html" title="interface for public-key signature verifiers">PK_Verifier</a> interface <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ea280ea56c7315eaa703f51af14ead41"></a><!-- doxytag: member="DSA::PublicKey" ref="ea280ea56c7315eaa703f51af14ead41" args="" -->typedef <a class="el" href="class_d_l___public_key___g_f_p.html">DL_PublicKey_GFP</a><<br> <a class="el" href="class_d_l___group_parameters___d_s_a.html">DL_GroupParameters_DSA</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_l___keys___d_s_a.html#ea280ea56c7315eaa703f51af14ead41">PublicKey</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1f049db2cc5dd0208ff4ccbb65ad18a7"></a><!-- doxytag: member="DSA::PrivateKey" ref="1f049db2cc5dd0208ff4ccbb65ad18a7" args="" -->typedef <a class="el" href="class_d_l___private_key___with_signature_pairwise_consistency_test.html">DL_PrivateKey_WithSignaturePairwiseConsistencyTest</a><<br> <a class="el" href="class_d_l___private_key___g_f_p.html">DL_PrivateKey_GFP</a>< <a class="el" href="class_d_l___group_parameters___d_s_a.html">DL_GroupParameters_DSA</a> >,<br> <a class="el" href="struct_d_s_a.html">DSA</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_l___keys___d_s_a.html#1f049db2cc5dd0208ff4ccbb65ad18a7">PrivateKey</a></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="08cdf246abb79de58ec8ec1b29aa9997"></a><!-- doxytag: member="DSA::StaticAlgorithmName" ref="08cdf246abb79de58ec8ec1b29aa9997" args="()" -->static const char *__cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_s_a.html#08cdf246abb79de58ec8ec1b29aa9997">StaticAlgorithmName</a> ()</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static bool __cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_s_a.html#48eab0da4234a2d20f3ef7250fbad5f5">GeneratePrimes</a> (const byte *seed, unsigned int seedLength, int &counter, <a class="el" href="class_integer.html">Integer</a> &p, unsigned int primeLength, <a class="el" href="class_integer.html">Integer</a> &q, bool useInputCounterValue=false)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Generate <a class="el" href="struct_d_s_a.html" title="DSA">DSA</a> primes according to NIST standard. <a href="#48eab0da4234a2d20f3ef7250fbad5f5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d810c437ef4b830229aeed410621381f"></a><!-- doxytag: member="DSA::IsValidPrimeLength" ref="d810c437ef4b830229aeed410621381f" args="(unsigned int pbits)" -->static bool __cdecl </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_s_a.html#d810c437ef4b830229aeed410621381f">IsValidPrimeLength</a> (unsigned int pbits)</td></tr></table><hr><h2>Member Enumeration Documentation</h2><a class="anchor" name="116b2ce7571a9763a4c59db13df29ac4"></a><!-- doxytag: member="DSA::@0" ref="116b2ce7571a9763a4c59db13df29ac4" args="" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum </td> </tr> </table></div><div class="memdoc"><p>FIPS 186-2 Change Notice 1 changed the minimum modulus length to 1024. <p><dl compact><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"><tr><td valign="top"><em><a class="anchor" name="116b2ce7571a9763a4c59db13df29ac4413962145fccf747bdea3bac1ae4c5f4"></a><!-- doxytag: member="MIN_PRIME_LENGTH" ref="116b2ce7571a9763a4c59db13df29ac4413962145fccf747bdea3bac1ae4c5f4" args="" -->MIN_PRIME_LENGTH</em> </td><td></td></tr><tr><td valign="top"><em><a class="anchor" name="116b2ce7571a9763a4c59db13df29ac4ca432ae49e56b3a9e1bd1c807918a947"></a><!-- doxytag: member="MAX_PRIME_LENGTH" ref="116b2ce7571a9763a4c59db13df29ac4ca432ae49e56b3a9e1bd1c807918a947" args="" -->MAX_PRIME_LENGTH</em> </td><td></td></tr><tr><td valign="top"><em><a class="anchor" name="116b2ce7571a9763a4c59db13df29ac4bc6f89b1820fc7d4b9dcfcfcc9f6cee1"></a><!-- doxytag: member="PRIME_LENGTH_MULTIPLE" ref="116b2ce7571a9763a4c59db13df29ac4bc6f89b1820fc7d4b9dcfcfcc9f6cee1" args="" -->PRIME_LENGTH_MULTIPLE</em> </td><td></td></tr></table></dl><p>Definition at line <a class="el" href="gfpcrypt_8h-source.html#l00405">405</a> of file <a class="el" href="gfpcrypt_8h-source.html">gfpcrypt.h</a>.</div></div><p><hr><h2>Member Function Documentation</h2><a class="anchor" name="48eab0da4234a2d20f3ef7250fbad5f5"></a><!-- doxytag: member="DSA::GeneratePrimes" ref="48eab0da4234a2d20f3ef7250fbad5f5" args="(const byte *seed, unsigned int seedLength, int &counter, Integer &p, unsigned int primeLength, Integer &q, bool useInputCounterValue=false)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool DSA::GeneratePrimes </td> <td>(</td> <td class="paramtype">const byte * </td> <td class="paramname"> <em>seed</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>seedLength</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"> <em>counter</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> & </td> <td class="paramname"> <em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>primeLength</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="class_integer.html">Integer</a> & </td> <td class="paramname"> <em>q</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>useInputCounterValue</em> = <code>false</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table></div><div class="memdoc"><p>Generate <a class="el" href="struct_d_s_a.html" title="DSA">DSA</a> primes according to NIST standard. <p>Both seedLength and primeLength are in bits, but seedLength should be a multiple of 8. If useInputCounterValue == true, the counter parameter is taken as input, otherwise it's used for output <p>Definition at line <a class="el" href="dsa_8cpp-source.html#l00061">61</a> of file <a class="el" href="dsa_8cpp-source.html">dsa.cpp</a>.<p>References <a class="el" href="cryptlib_8h-source.html#l00563">HashTransformation::CalculateDigest()</a>, <a class="el" href="integer_8cpp-source.html#l03063">Integer::Decode()</a>, <a class="el" href="iterhash_8h-source.html#l00084">IteratedHashWithStaticTransform< word32, BigEndian, 64, 20, SHA1 >::DIGESTSIZE</a>, and <a class="el" href="integer_8cpp-source.html#l02894">Integer::GetBit()</a>.<p>Referenced by <a class="el" href="gfpcrypt_8cpp-source.html#l00026">DL_GroupParameters_DSA::GenerateRandom()</a>.</div></div><p><hr>The documentation for this struct was generated from the following files:<ul><li><a class="el" href="gfpcrypt_8h-source.html">gfpcrypt.h</a><li><a class="el" href="dsa_8cpp-source.html">dsa.cpp</a></ul><hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 1 11:11:36 2007 for Crypto++ by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -