📄 eccrypto_8h-source.html
字号:
<a name="l00211"></a>00211 <span class="comment">//! ECDSA algorithm</span><a name="l00212"></a>00212 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> EC><a name="l00213"></a><a class="code" href="class_d_l___algorithm___e_c_d_s_a.html">00213</a> <span class="keyword">class </span><a class="code" href="class_d_l___algorithm___e_c_d_s_a.html" title="ECDSA algorithm.">DL_Algorithm_ECDSA</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___algorithm___g_d_s_a.html" title="GDSA algorithm.">DL_Algorithm_GDSA</a><typename EC::Point><a name="l00214"></a>00214 {<a name="l00215"></a>00215 <span class="keyword">public</span>:<a name="l00216"></a><a class="code" href="class_d_l___algorithm___e_c_d_s_a.html#bf24337bdbde511b8967f5e576b24045">00216</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * CRYPTOPP_API <a class="code" href="class_d_l___algorithm___e_c_d_s_a.html#bf24337bdbde511b8967f5e576b24045">StaticAlgorithmName</a>() {<span class="keywordflow">return</span> <span class="stringliteral">"ECDSA"</span>;}<a name="l00217"></a>00217 };<a name="l00218"></a>00218 <span class="comment"></span><a name="l00219"></a>00219 <span class="comment">//! ECNR algorithm</span><a name="l00220"></a>00220 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> EC><a name="l00221"></a><a class="code" href="class_d_l___algorithm___e_c_n_r.html">00221</a> <span class="keyword">class </span><a class="code" href="class_d_l___algorithm___e_c_n_r.html" title="ECNR algorithm.">DL_Algorithm_ECNR</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___algorithm___n_r.html" title="NR algorithm.">DL_Algorithm_NR</a><typename EC::Point><a name="l00222"></a>00222 {<a name="l00223"></a>00223 <span class="keyword">public</span>:<a name="l00224"></a><a class="code" href="class_d_l___algorithm___e_c_n_r.html#47a2d7429fd992b0a2404e354e71fc0f">00224</a> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * CRYPTOPP_API <a class="code" href="class_d_l___algorithm___e_c_n_r.html#47a2d7429fd992b0a2404e354e71fc0f">StaticAlgorithmName</a>() {<span class="keywordflow">return</span> <span class="stringliteral">"ECNR"</span>;}<a name="l00225"></a>00225 };<a name="l00226"></a>00226 <span class="comment"></span><a name="l00227"></a>00227 <span class="comment">//! <a href="http://www.weidai.com/scan-mirror/sig.html#ECDSA">ECDSA</a></span><a name="l00228"></a>00228 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> EC, <span class="keyword">class</span> H><a name="l00229"></a><a class="code" href="struct_e_c_d_s_a.html">00229</a> <span class="keyword">struct </span><a class="code" href="struct_e_c_d_s_a.html" title="ECDSA">ECDSA</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___s_s.html" title="Discrete Log Based Signature Scheme.">DL_SS</a><DL_Keys_ECDSA<EC>, DL_Algorithm_ECDSA<EC>, DL_SignatureMessageEncodingMethod_DSA, H><a name="l00230"></a>00230 {<a name="l00231"></a>00231 };<a name="l00232"></a>00232 <span class="comment"></span><a name="l00233"></a>00233 <span class="comment">//! ECNR</span><a name="l00234"></a>00234 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> EC, <span class="keyword">class</span> H = SHA><a name="l00235"></a><a class="code" href="struct_e_c_n_r.html">00235</a> <span class="keyword">struct </span><a class="code" href="struct_e_c_n_r.html" title="ECNR.">ECNR</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___s_s.html" title="Discrete Log Based Signature Scheme.">DL_SS</a><DL_Keys_EC<EC>, DL_Algorithm_ECNR<EC>, DL_SignatureMessageEncodingMethod_NR, H><a name="l00236"></a>00236 {<a name="l00237"></a>00237 };<a name="l00238"></a>00238 <span class="comment"></span><a name="l00239"></a>00239 <span class="comment">//! Elliptic Curve Integrated Encryption Scheme, AKA <a href="http://www.weidai.com/scan-mirror/ca.html#ECIES">ECIES</a></span><a name="l00240"></a>00240 <span class="comment"></span><span class="comment">/*! Default to (NoCofactorMultiplication and DHAES_MODE = false) for compatibilty with SEC1 and Crypto++ 4.2.</span><a name="l00241"></a>00241 <span class="comment"> The combination of (IncompatibleCofactorMultiplication and DHAES_MODE = true) is recommended for best</span><a name="l00242"></a>00242 <span class="comment"> efficiency and security. */</span><a name="l00243"></a>00243 <span class="keyword">template</span> <<span class="keyword">class</span> EC, <span class="keyword">class</span> COFACTOR_OPTION = NoCofactorMultiplication, <span class="keywordtype">bool</span> DHAES_MODE = false><a name="l00244"></a><a class="code" href="struct_e_c_i_e_s.html">00244</a> <span class="keyword">struct </span><a class="code" href="struct_e_c_i_e_s.html" title="Elliptic Curve Integrated Encryption Scheme, AKA ECIES.">ECIES</a><a name="l00245"></a>00245 : <span class="keyword">public</span> <a class="code" href="class_d_l___e_s.html" title="Discrete Log Based Encryption Scheme.">DL_ES</a><<a name="l00246"></a>00246 DL_Keys_EC<EC>,<a name="l00247"></a>00247 DL_KeyAgreementAlgorithm_DH<typename EC::Point, COFACTOR_OPTION>,<a name="l00248"></a>00248 DL_KeyDerivationAlgorithm_P1363<typename EC::Point, DHAES_MODE, P1363_KDF2<SHA1> >,<a name="l00249"></a>00249 DL_EncryptionAlgorithm_Xor<HMAC<SHA1>, DHAES_MODE>,<a name="l00250"></a>00250 ECIES<EC> ><a name="l00251"></a>00251 {<a name="l00252"></a><a class="code" href="struct_e_c_i_e_s.html#8daa34e36e31aa647400b3bdf677c4a8">00252</a> <span class="keyword">static</span> std::string CRYPTOPP_API <a class="code" href="struct_e_c_i_e_s.html#8daa34e36e31aa647400b3bdf677c4a8">StaticAlgorithmName</a>() {<span class="keywordflow">return</span> <span class="stringliteral">"ECIES"</span>;} <span class="comment">// TODO: fix this after name is standardized</span><a name="l00253"></a>00253 };<a name="l00254"></a>00254 <a name="l00255"></a>00255 NAMESPACE_END<a name="l00256"></a>00256 <a name="l00257"></a>00257 <span class="preprocessor">#ifdef CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES</span><a name="l00258"></a>00258 <span class="preprocessor"></span><span class="preprocessor">#include "eccrypto.cpp"</span><a name="l00259"></a>00259 <span class="preprocessor">#endif</span><a name="l00260"></a>00260 <span class="preprocessor"></span><a name="l00261"></a>00261 NAMESPACE_BEGIN(CryptoPP)<a name="l00262"></a>00262 <a name="l00263"></a>00263 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___group_parameters___e_c.html" title="Elliptic Curve Parameters.">DL_GroupParameters_EC</a><<a class="code" href="class_e_c_p.html" title="Elliptic Curve over GF(p), where p is prime.">ECP</a>>;<a name="l00264"></a>00264 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___group_parameters___e_c.html" title="Elliptic Curve Parameters.">DL_GroupParameters_EC</a><<a class="code" href="class_e_c2_n.html" title="Elliptic Curve over GF(2^n).">EC2N</a>>;<a name="l00265"></a>00265 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key_impl.html" title="_">DL_PublicKeyImpl</a><<a class="code" href="class_d_l___group_parameters___e_c.html" title="Elliptic Curve Parameters.">DL_GroupParameters_EC</a><ECP> >;<a name="l00266"></a>00266 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key_impl.html" title="_">DL_PublicKeyImpl</a><<a class="code" href="class_d_l___group_parameters___e_c.html" title="Elliptic Curve Parameters.">DL_GroupParameters_EC</a><EC2N> >;<a name="l00267"></a>00267 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key___e_c.html" title="EC public key.">DL_PublicKey_EC</a><ECP>;<a name="l00268"></a>00268 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key___e_c.html" title="EC public key.">DL_PublicKey_EC</a><EC2N>;<a name="l00269"></a>00269 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key_impl.html" title="_">DL_PrivateKeyImpl</a><<a class="code" href="class_d_l___group_parameters___e_c.html" title="Elliptic Curve Parameters.">DL_GroupParameters_EC</a><ECP> >;<a name="l00270"></a>00270 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key_impl.html" title="_">DL_PrivateKeyImpl</a><<a class="code" href="class_d_l___group_parameters___e_c.html" title="Elliptic Curve Parameters.">DL_GroupParameters_EC</a><EC2N> >;<a name="l00271"></a>00271 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key___e_c.html" title="EC private key.">DL_PrivateKey_EC</a><ECP>;<a name="l00272"></a>00272 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key___e_c.html" title="EC private key.">DL_PrivateKey_EC</a><EC2N>;<a name="l00273"></a>00273 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___algorithm___g_d_s_a.html" title="GDSA algorithm.">DL_Algorithm_GDSA</a><ECP::Point>;<a name="l00274"></a>00274 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___algorithm___g_d_s_a.html" title="GDSA algorithm.">DL_Algorithm_GDSA</a><EC2N::Point>;<a name="l00275"></a>00275 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key___with_signature_pairwise_consistency_test.html" title="_">DL_PrivateKey_WithSignaturePairwiseConsistencyTest</a><<a class="code" href="class_d_l___private_key___e_c.html" title="EC private key.">DL_PrivateKey_EC</a><ECP>, <a class="code" href="struct_e_c_d_s_a.html" title="ECDSA">ECDSA</a><ECP> >;<a name="l00276"></a>00276 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key___with_signature_pairwise_consistency_test.html" title="_">DL_PrivateKey_WithSignaturePairwiseConsistencyTest</a><<a class="code" href="class_d_l___private_key___e_c.html" title="EC private key.">DL_PrivateKey_EC</a><EC2N>, <a class="code" href="struct_e_c_d_s_a.html" title="ECDSA">ECDSA</a><EC2N> >;<a name="l00277"></a>00277 <a name="l00278"></a>00278 NAMESPACE_END<a name="l00279"></a>00279 <a name="l00280"></a>00280 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 1 11:11:20 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 + -