⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elgamal_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00070                 m.<a class="code" href="class_integer.html#_integerz39_1">Encode</a>(plainText, plainTextLength);00071                 <span class="keywordflow">return</span> <a class="code" href="struct_decoding_result.html">DecodingResult</a>(plainTextLength);00072         }00073 00074         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_d_l___group_parameters___g_f_p.html">DL_GroupParameters_GFP</a> &amp; GetGroupParameters() <span class="keyword">const</span> =0;00075 };00076 00077 <span class="keyword">template</span> &lt;<span class="keyword">class</span> BASE, <span class="keyword">class</span> SCHEME_OPTIONS, <span class="keyword">class</span> KEY&gt;00078 <span class="keyword">class </span>ElGamalObjectImpl : <span class="keyword">public</span> <a class="code" href="class_d_l___object_impl_base.html">DL_ObjectImplBase</a>&lt;BASE, SCHEME_OPTIONS, KEY&gt;, <span class="keyword">public</span> ElGamalBase00079 {00080 <span class="keyword">public</span>:00081         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> FixedMaxPlaintextLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> MaxPlaintextLength(FixedCiphertextLength());}00082         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> FixedCiphertextLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> CiphertextLength(0);}00083 00084         <span class="keyword">const</span> <a class="code" href="class_d_l___group_parameters___g_f_p.html">DL_GroupParameters_GFP</a> &amp; GetGroupParameters()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetKey().GetGroupParameters();}00085 00086         <a class="code" href="struct_decoding_result.html">DecodingResult</a> FixedLengthDecrypt(<span class="keyword">const</span> byte *cipherText, byte *plainText)<span class="keyword"> const</span>00087 <span class="keyword">                </span>{<span class="keywordflow">return</span> Decrypt(cipherText, FixedCiphertextLength(), plainText);}00088 00089 <span class="keyword">protected</span>:00090         <span class="keyword">const</span> <a class="code" href="class_d_l___key_agreement_algorithm.html">DL_KeyAgreementAlgorithm&lt;Integer&gt;</a> &amp; GetKeyAgreementAlgorithm()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00091         <span class="keyword">const</span> <a class="code" href="class_d_l___key_derivation_algorithm.html">DL_KeyDerivationAlgorithm&lt;Integer&gt;</a> &amp; GetKeyDerivationAlgorithm()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00092         <span class="keyword">const</span> <a class="code" href="class_d_l___symmetric_encryption_algorithm.html">DL_SymmetricEncryptionAlgorithm</a> &amp; GetSymmetricEncryptionAlgorithm()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00093 };00094 00095 <span class="keyword">struct </span>ElGamalKeys00096 {00097         <span class="keyword">typedef</span> <a class="code" href="class_d_l___group_parameters___g_f_p___default_safe_prime.html">DL_CryptoKeys_GFP::GroupParameters</a> GroupParameters;00098         <span class="keyword">typedef</span> <a class="code" href="class_d_l___private_key___g_f_p___old_format.html">DL_PrivateKey_GFP_OldFormat&lt;DL_CryptoKeys_GFP::PrivateKey&gt;</a> <a class="code" href="class_private_key.html">PrivateKey</a>;00099         <span class="keyword">typedef</span> <a class="code" href="class_d_l___public_key___g_f_p___old_format.html">DL_PublicKey_GFP_OldFormat&lt;DL_CryptoKeys_GFP::PublicKey&gt;</a> <a class="code" href="class_public_key.html">PublicKey</a>;00100 };00101 <span class="comment"></span>00102 <span class="comment">//! ElGamal encryption scheme with non-standard padding</span><a name="l00103"></a><a class="code" href="struct_el_gamal.html">00103</a> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="struct_el_gamal.html">ElGamal</a>00104 {00105         <span class="keyword">typedef</span> <a class="code" href="struct_d_l___crypto_scheme_options.html">DL_CryptoSchemeOptions&lt;ElGamal, ElGamalKeys, int, int, int&gt;</a> <a class="code" href="struct_d_l___crypto_scheme_options.html">SchemeOptions</a>;00106 00107         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * StaticAlgorithmName() {<span class="keywordflow">return</span> <span class="stringliteral">"ElgamalEnc/Crypto++Padding"</span>;}00108 00109         <span class="keyword">class </span>EncryptorImpl : <span class="keyword">public</span> ElGamalObjectImpl&lt;DL_EncryptorBase&lt;Integer, PK_FixedLengthEncryptor&gt;,  SchemeOptions, SchemeOptions::PublicKey&gt;, <span class="keyword">public</span> <a class="code" href="class_public_key_copier.html">PublicKeyCopier</a>&lt;SchemeOptions&gt;00110         {00111         <span class="keyword">public</span>:00112                 <span class="keywordtype">void</span> CopyKeyInto(SchemeOptions::PublicKey &amp;key)<span class="keyword"> const</span>00113 <span class="keyword">                        </span>{key = GetKey();}00114         };00115 00116         <span class="keyword">class </span>DecryptorImpl : <span class="keyword">public</span> ElGamalObjectImpl&lt;DL_DecryptorBase&lt;Integer, PK_FixedLengthDecryptor&gt;, SchemeOptions, SchemeOptions::PrivateKey&gt;, <span class="keyword">public</span> <a class="code" href="class_private_key_copier.html">PrivateKeyCopier</a>&lt;SchemeOptions&gt;00117         {00118         <span class="keyword">public</span>:00119                 <span class="keywordtype">void</span> CopyKeyInto(SchemeOptions::PublicKey &amp;key)<span class="keyword"> const</span>00120 <span class="keyword">                        </span>{GetKey().MakePublicKey(key);}00121                 <span class="keywordtype">void</span> CopyKeyInto(SchemeOptions::PrivateKey &amp;key)<span class="keyword"> const</span>00122 <span class="keyword">                        </span>{key = GetKey();}00123         };00124 00125         <span class="keyword">typedef</span> SchemeOptions::GroupParameters GroupParameters;<span class="comment"></span>00126 <span class="comment">        //! implements PK_Encryptor interface</span><a name="l00127"></a><a class="code" href="struct_el_gamal.html#_el_gamalw2">00127</a> <span class="comment"></span>        <span class="keyword">typedef</span> <a class="code" href="class_p_k___final_template.html">PK_FinalTemplate&lt;EncryptorImpl&gt;</a> <a class="code" href="class_p_k___final_template.html">Encryptor</a>;<span class="comment"></span>00128 <span class="comment">        //! implements PK_Decryptor interface</span><a name="l00129"></a><a class="code" href="struct_el_gamal.html#_el_gamalw3">00129</a> <span class="comment"></span>        <span class="keyword">typedef</span> <a class="code" href="class_p_k___final_template.html">PK_FinalTemplate&lt;DecryptorImpl&gt;</a> <a class="code" href="class_p_k___final_template.html">Decryptor</a>;00130 };00131 00132 <span class="keyword">typedef</span> <a class="code" href="class_p_k___final_template.html">ElGamal::Encryptor</a> <a class="code" href="class_p_k___final_template.html">ElGamalEncryptor</a>;00133 <span class="keyword">typedef</span> <a class="code" href="class_p_k___final_template.html">ElGamal::Decryptor</a> <a class="code" href="class_p_k___final_template.html">ElGamalDecryptor</a>;00134 00135 NAMESPACE_END00136 00137 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:14 2003 for Crypto++ by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -