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

📄 modes_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00208 <span class="keyword">class </span>CRYPTOPP_DLL CBC_ModeBase : <span class="keyword">public</span> BlockOrientedCipherModeBase00209 {00210 <span class="keyword">public</span>:00211         IV_Requirement IVRequirement()<span class="keyword"> const </span>{<span class="keywordflow">return</span> UNPREDICTABLE_RANDOM_IV;}00212         <span class="keywordtype">bool</span> RequireAlignedInput()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <span class="keyword">false</span>;}00213         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MinLastBlockSize()<span class="keyword"> const </span>{<span class="keywordflow">return</span> 0;}00214 };00215 00216 <span class="keyword">class </span>CRYPTOPP_DLL CBC_Encryption : <span class="keyword">public</span> CBC_ModeBase00217 {00218 <span class="keyword">public</span>:00219         <span class="keywordtype">void</span> ProcessBlocks(byte *outString, <span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numberOfBlocks);00220 };00221 00222 <span class="keyword">class </span>CRYPTOPP_DLL CBC_CTS_Encryption : <span class="keyword">public</span> CBC_Encryption00223 {00224 <span class="keyword">public</span>:00225         <span class="keywordtype">void</span> SetStolenIV(byte *iv) {m_stolenIV = iv;}00226 00227 <span class="keyword">protected</span>:00228         <span class="keywordtype">void</span> UncheckedSetKey(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;params, <span class="keyword">const</span> byte *key, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length)00229         {00230                 CBC_Encryption::UncheckedSetKey(params, key, length);00231                 m_stolenIV = params.<a class="code" href="class_name_value_pairs.html#_x_t_r___d_ha40">GetValueWithDefault</a>(Name::StolenIV(), (byte *)NULL);00232         }00233         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MinLastBlockSize()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="namespace_name.html#a9">BlockSize</a>()+1;}00234         <span class="keywordtype">void</span> ProcessLastBlock(byte *outString, <span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00235 00236         byte *m_stolenIV;00237 };00238 00239 <span class="keyword">class </span>CRYPTOPP_DLL CBC_Decryption : <span class="keyword">public</span> CBC_ModeBase00240 {00241 <span class="keyword">public</span>:00242         <span class="keywordtype">void</span> ProcessBlocks(byte *outString, <span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numberOfBlocks);00243         00244 <span class="keyword">protected</span>:00245         <span class="keywordtype">void</span> ResizeBuffers()00246         {00247                 BlockOrientedCipherModeBase::ResizeBuffers();00248                 m_temp.New(<a class="code" href="namespace_name.html#a9">BlockSize</a>());00249         }00250         <a class="code" href="class_sec_block.html">SecByteBlock</a> m_temp;00251 };00252 00253 <span class="keyword">class </span>CRYPTOPP_DLL CBC_CTS_Decryption : <span class="keyword">public</span> CBC_Decryption00254 {00255 <span class="keyword">public</span>:00256         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MinLastBlockSize()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="namespace_name.html#a9">BlockSize</a>()+1;}00257         <span class="keywordtype">void</span> ProcessLastBlock(byte *outString, <span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00258 };00259 <span class="comment"></span>00260 <span class="comment">//! .</span>00261 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> CIPHER, <span class="keyword">class</span> BASE&gt;<a name="l00262"></a><a class="code" href="class_cipher_mode_final_template___cipher_holder.html">00262</a> <span class="keyword">class </span><a class="code" href="class_cipher_mode_final_template___cipher_holder.html">CipherModeFinalTemplate_CipherHolder</a> : <span class="keyword">public</span> ObjectHolder&lt;CIPHER&gt;, <span class="keyword">public</span> BASE00263 {00264 <span class="keyword">public</span>:00265         <a class="code" href="class_cipher_mode_final_template___cipher_holder.html">CipherModeFinalTemplate_CipherHolder</a>()00266         {00267                 m_cipher = &amp;m_object;00268                 ResizeBuffers();00269         }00270         <a class="code" href="class_cipher_mode_final_template___cipher_holder.html">CipherModeFinalTemplate_CipherHolder</a>(<span class="keyword">const</span> byte *key, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length)00271         {00272                 m_cipher = &amp;m_object;00273                 SetKey(key, length);00274         }00275         <a class="code" href="class_cipher_mode_final_template___cipher_holder.html">CipherModeFinalTemplate_CipherHolder</a>(<span class="keyword">const</span> byte *key, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keyword">const</span> byte *iv, <span class="keywordtype">int</span> feedbackSize = 0)00276         {00277                 m_cipher = &amp;m_object;00278                 SetKey(key, length, MakeParameters(<span class="stringliteral">"IV"</span>, iv)(<span class="stringliteral">"FeedbackSize"</span>, feedbackSize));00279         }00280 };00281 <span class="comment"></span>00282 <span class="comment">//! .</span>00283 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> BASE&gt;<a name="l00284"></a><a class="code" href="class_cipher_mode_final_template___external_cipher.html">00284</a> <span class="keyword">class </span><a class="code" href="class_cipher_mode_final_template___external_cipher.html">CipherModeFinalTemplate_ExternalCipher</a> : <span class="keyword">public</span> BASE00285 {00286 <span class="keyword">public</span>:00287         <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CipherModeFinalTemplate_ExternalCipher</a>(<a class="code" href="class_block_cipher.html">BlockCipher</a> &amp;cipher, <span class="keyword">const</span> byte *iv = NULL, <span class="keywordtype">int</span> feedbackSize = 0);00288 };00289 00290 <span class="keyword">template</span> &lt;<span class="keyword">class</span> BASE&gt; <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CipherModeFinalTemplate_ExternalCipher&lt;BASE&gt;::CipherModeFinalTemplate_ExternalCipher</a>(<a class="code" href="class_block_cipher.html">BlockCipher</a> &amp;cipher, <span class="keyword">const</span> byte *iv, <span class="keywordtype">int</span> feedbackSize)00291 {00292         m_cipher = &amp;cipher;00293         ResizeBuffers();00294         SetFeedbackSize(feedbackSize);00295         SetIV(iv);00296 }00297 00298 CRYPTOPP_DLL_TEMPLATE_CLASS CFB_CipherTemplate&lt;AbstractPolicyHolder&lt;CFB_CipherAbstractPolicy, CFB_ModePolicy&gt; &gt;;00299 CRYPTOPP_DLL_TEMPLATE_CLASS CFB_EncryptionTemplate&lt;AbstractPolicyHolder&lt;CFB_CipherAbstractPolicy, CFB_ModePolicy&gt; &gt;;00300 CRYPTOPP_DLL_TEMPLATE_CLASS CFB_DecryptionTemplate&lt;AbstractPolicyHolder&lt;CFB_CipherAbstractPolicy, CFB_ModePolicy&gt; &gt;;00301 <span class="comment"></span>00302 <span class="comment">//! CFB mode</span>00303 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> CIPHER&gt;<a name="l00304"></a><a class="code" href="struct_c_f_b___mode.html">00304</a> <span class="keyword">struct </span><a class="code" href="struct_c_f_b___mode.html">CFB_Mode</a> : <span class="keyword">public</span> <a class="code" href="struct_cipher_mode_documentation.html">CipherModeDocumentation</a>00305 {<a name="l00306"></a><a class="code" href="struct_c_f_b___mode.html#_c_f_b___modew0">00306</a>         <span class="keyword">typedef</span> <a class="code" href="class_cipher_mode_final_template___cipher_holder.html">CipherModeFinalTemplate_CipherHolder&lt;CPP_TYPENAME CIPHER::Encryption, ConcretePolicyHolder&lt;Empty, CFB_EncryptionTemplate&lt;AbstractPolicyHolder&lt;CFB_CipherAbstractPolicy, CFB_ModePolicy&gt;</a> &gt; &gt; &gt; <a class="code" href="class_cipher_mode_final_template___cipher_holder.html">Encryption</a>;<a name="l00307"></a><a class="code" href="struct_c_f_b___mode.html#_c_f_b___modew1">00307</a>         <span class="keyword">typedef</span> <a class="code" href="class_cipher_mode_final_template___cipher_holder.html">CipherModeFinalTemplate_CipherHolder&lt;CPP_TYPENAME CIPHER::Encryption, ConcretePolicyHolder&lt;Empty, CFB_DecryptionTemplate&lt;AbstractPolicyHolder&lt;CFB_CipherAbstractPolicy, CFB_ModePolicy&gt;</a> &gt; &gt; &gt; <a class="code" href="class_cipher_mode_final_template___cipher_holder.html">Decryption</a>;00308 };00309 <span class="comment"></span>00310 <span class="comment">//! CFB mode, external cipher</span><a name="l00311"></a><a class="code" href="struct_c_f_b___mode___external_cipher.html">00311</a> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="struct_c_f_b___mode___external_cipher.html">CFB_Mode_ExternalCipher</a> : <span class="keyword">public</span> <a class="code" href="struct_cipher_mode_documentation.html">CipherModeDocumentation</a>00312 {<a name="l00313"></a><a class="code" href="struct_c_f_b___mode___external_cipher.html#_c_f_b___mode___external_cipherw0">00313</a>         <span class="keyword">typedef</span> <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CipherModeFinalTemplate_ExternalCipher&lt;ConcretePolicyHolder&lt;Empty, CFB_EncryptionTemplate&lt;AbstractPolicyHolder&lt;CFB_CipherAbstractPolicy, CFB_ModePolicy&gt;</a> &gt; &gt; &gt; <a class="code" href="class_cipher_mode_final_template___external_cipher.html">Encryption</a>;<a name="l00314"></a><a class="code" href="struct_c_f_b___mode___external_cipher.html#_c_f_b___mode___external_cipherw1">00314</a>         <span class="keyword">typedef</span> <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CipherModeFinalTemplate_ExternalCipher&lt;ConcretePolicyHolder&lt;Empty, CFB_DecryptionTemplate&lt;AbstractPolicyHolder&lt;CFB_CipherAbstractPolicy, CFB_ModePolicy&gt;</a> &gt; &gt; &gt; <a class="code" href="class_cipher_mode_final_template___external_cipher.html">Decryption</a>;

⌨️ 快捷键说明

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