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

📄 pubkey_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00111 <span class="comment">// ********************************************************</span>00112 <span class="comment"></span>00113 <span class="comment">//! .</span><a name="l00114"></a><a class="code" href="class_p_k___padding_algorithm.html">00114</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_p_k___padding_algorithm.html">PK_PaddingAlgorithm</a>00115 {00116 <span class="keyword">public</span>:00117         <span class="keyword">virtual</span> ~<a class="code" href="class_p_k___padding_algorithm.html">PK_PaddingAlgorithm</a>() {}00118 00119         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MaxUnpaddedLength(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> paddedLength) <span class="keyword">const</span> =0;00120 00121         <span class="keyword">virtual</span> <span class="keywordtype">void</span> Pad(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> byte *raw, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> inputLength, byte *padded, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> paddedBitLength) <span class="keyword">const</span> =0;00122 00123         <span class="keyword">virtual</span> <a class="code" href="struct_decoding_result.html">DecodingResult</a> Unpad(<span class="keyword">const</span> byte *padded, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> paddedBitLength, byte *raw) <span class="keyword">const</span> =0;00124 00125         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsReversible()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <span class="keyword">true</span>;}00126 };00127 <span class="comment"></span>00128 <span class="comment">//! .</span><a name="l00129"></a><a class="code" href="class_p_k___nonreversible_padding_algorithm.html">00129</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_p_k___nonreversible_padding_algorithm.html">PK_NonreversiblePaddingAlgorithm</a> : <span class="keyword">public</span> <a class="code" href="class_p_k___padding_algorithm.html">PK_PaddingAlgorithm</a>00130 {00131         <a class="code" href="struct_decoding_result.html">DecodingResult</a> Unpad(<span class="keyword">const</span> byte *padded, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> paddedBitLength, byte *raw)<span class="keyword"> const </span>{assert(<span class="keyword">false</span>); <span class="keywordflow">return</span> <a class="code" href="struct_decoding_result.html">DecodingResult</a>();}00132         <span class="keywordtype">bool</span> IsReversible()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <span class="keyword">false</span>;}00133 };00134 00135 <span class="comment">// ********************************************************</span>00136 <span class="comment"></span>00137 <span class="comment">//! .</span>00138 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> TFI&gt;<a name="l00139"></a><a class="code" href="class_t_f___base.html">00139</a> <span class="keyword">class </span><a class="code" href="class_t_f___base.html">TF_Base</a>00140 {00141 <span class="keyword">protected</span>:00142         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PaddedBlockByteLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> BitsToBytes(PaddedBlockBitLength());}00143 00144         <span class="keyword">virtual</span> <span class="keyword">const</span> TrapdoorFunctionBounds &amp; GetTrapdoorFunctionBounds() <span class="keyword">const</span> =0;00145         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_p_k___padding_algorithm.html">PK_PaddingAlgorithm</a> &amp; GetPaddingAlgorithm() <span class="keyword">const</span> =0;00146         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PaddedBlockBitLength() <span class="keyword">const</span> =0;00147 00148         <span class="keyword">typedef</span> TFI TrapdoorFunctionInterface;00149         <span class="keyword">virtual</span> <span class="keyword">const</span> TrapdoorFunctionInterface &amp; GetTrapdoorFunctionInterface() <span class="keyword">const</span> =0;00150 };00151 00152 <span class="comment">// ********************************************************</span>00153 <span class="comment"></span>00154 <span class="comment">//! .</span>00155 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> INTERFACE, <span class="keyword">class</span> BASE&gt;<a name="l00156"></a><a class="code" href="class_t_f___crypto_system_base.html">00156</a> <span class="keyword">class </span><a class="code" href="class_t_f___crypto_system_base.html">TF_CryptoSystemBase</a> : <span class="keyword">public</span> INTERFACE, <span class="keyword">protected</span> BASE00157 {00158 <span class="keyword">public</span>:00159         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> FixedMaxPlaintextLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetPaddingAlgorithm().MaxUnpaddedLength(PaddedBlockBitLength());}00160         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> FixedCiphertextLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetTrapdoorFunctionBounds().MaxImage().ByteCount();}00161 00162 <span class="keyword">protected</span>:00163         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PaddedBlockBitLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetTrapdoorFunctionBounds().PreimageBound().BitCount()-1;}00164 };00165 <span class="comment"></span>00166 <span class="comment">//! .</span><a name="l00167"></a><a class="code" href="class_t_f___decryptor_base.html">00167</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL TF_DecryptorBase : <span class="keyword">public</span> <a class="code" href="class_t_f___crypto_system_base.html">TF_CryptoSystemBase</a>&lt;PK_FixedLengthDecryptor, TF_Base&lt;TrapdoorFunctionInverse&gt; &gt;00168 {00169 <span class="keyword">public</span>:00170         <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>;00171 };00172 <span class="comment"></span>00173 <span class="comment">//! .</span><a name="l00174"></a><a class="code" href="class_t_f___encryptor_base.html">00174</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL TF_EncryptorBase : <span class="keyword">public</span> <a class="code" href="class_t_f___crypto_system_base.html">TF_CryptoSystemBase</a>&lt;PK_FixedLengthEncryptor, TF_Base&lt;RandomizedTrapdoorFunction&gt; &gt;00175 {00176 <span class="keyword">public</span>:00177         <span class="keywordtype">void</span> Encrypt(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> byte *plainText, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> plainTextLength, byte *cipherText) <span class="keyword">const</span>;00178 };00179 00180 <span class="comment">// ********************************************************</span>00181 <span class="comment"></span>00182 <span class="comment">//! .</span><a name="l00183"></a><a class="code" href="class_digest_signature_system.html">00183</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_digest_signature_system.html">DigestSignatureSystem</a>00184 {00185 <span class="keyword">public</span>:00186         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MaxDigestLength() <span class="keyword">const</span> =0;00187         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> DigestSignatureLength() <span class="keyword">const</span> =0;00188 };00189 <span class="comment"></span>00190 <span class="comment">//! .</span><a name="l00191"></a><a class="code" href="class_digest_signer.html">00191</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_digest_signer.html">DigestSigner</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="class_digest_signature_system.html">DigestSignatureSystem</a>, <span class="keyword">public</span> <a class="code" href="class_private_key_algorithm.html">PrivateKeyAlgorithm</a>00192 {00193 <span class="keyword">public</span>:00194         <span class="keyword">virtual</span> <span class="keywordtype">void</span> SignDigest(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> byte *digest, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> digestLen, byte *signature) <span class="keyword">const</span> =0;00195 };00196 <span class="comment"></span>00197 <span class="comment">//! .</span><a name="l00198"></a><a class="code" href="class_digest_verifier.html">00198</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_digest_verifier.html">DigestVerifier</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="class_digest_signature_system.html">DigestSignatureSystem</a>, <span class="keyword">public</span> <a class="code" href="class_public_key_algorithm.html">PublicKeyAlgorithm</a>00199 {00200 <span class="keyword">public</span>:00201         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VerifyDigest(<span class="keyword">const</span> byte *digest, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> digestLen, <span class="keyword">const</span> byte *sig) <span class="keyword">const</span> =0;00202 };00203 00204 <span class="comment">// ********************************************************</span>00205 <span class="comment"></span>00206 <span class="comment">//! .</span>00207 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> INTERFACE, <span class="keyword">class</span> BASE&gt;<a name="l00208"></a><a class="code" href="class_t_f___digest_signature_system_base.html">00208</a> <span class="keyword">class </span><a class="code" href="class_t_f___digest_signature_system_base.html">TF_DigestSignatureSystemBase</a> : <span class="keyword">public</span> INTERFACE, <span class="keyword">protected</span> BASE00209 {00210 <span class="keyword">public</span>:00211         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MaxDigestLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetPaddingAlgorithm().MaxUnpaddedLength(PaddedBlockBitLength());}00212         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> DigestSignatureLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetTrapdoorFunctionBounds().MaxPreimage().ByteCount();}00213 00214 <span class="keyword">protected</span>:00215         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PaddedBlockBitLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetTrapdoorFunctionBounds().ImageBound().BitCount()-1;}00216 };00217 <span class="comment"></span>00218 <span class="comment">//! .</span><a name="l00219"></a><a class="code" href="class_t_f___digest_signer_base.html">00219</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL TF_DigestSignerBase : <span class="keyword">public</span> <a class="code" href="class_t_f___digest_signature_system_base.html">TF_DigestSignatureSystemBase</a>&lt;DigestSigner, TF_Base&lt;RandomizedTrapdoorFunctionInverse&gt; &gt;00220 {00221 <span class="keyword">public</span>:00222         <span class="keywordtype">void</span> SignDigest(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> byte *message, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> messageLength, byte *signature) <span class="keyword">const</span>;00223 };00224 <span class="comment"></span>00225 <span class="comment">//! .</span><a name="l00226"></a><a class="code" href="class_t_f___digest_verifier_base.html">00226</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL TF_DigestVerifierBase : <span class="keyword">public</span> <a class="code" href="class_t_f___digest_signature_system_base.html">TF_DigestSignatureSystemBase</a>&lt;DigestVerifier, TF_Base&lt;TrapdoorFunction&gt; &gt;00227 {

⌨️ 快捷键说明

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