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

📄 filters_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00434         <span class="keywordtype">bool</span> m_passSignal;00435 };00436 <span class="comment"></span>00437 <span class="comment">//! Base class for Filter classes that are proxies for a chain of other filters.</span><a name="l00438"></a><a class="code" href="class_proxy_filter.html">00438</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL ProxyFilter : <span class="keyword">public</span> FilterWithBufferedInput00439 {00440 <span class="keyword">public</span>:00441         ProxyFilter(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *filter, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> firstSize, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lastSize, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment);00442 00443         <span class="keywordtype">void</span> <a class="code" href="class_filter_with_buffered_input.html#_stream_transformation_filtera8">IsolatedFlush</a>(<span class="keywordtype">bool</span> completeFlush);00444 00445         <span class="keywordtype">void</span> SetFilter(Filter *filter);00446         <span class="keywordtype">void</span> NextPutMultiple(<span class="keyword">const</span> byte *s, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);00447 00448 <span class="keyword">protected</span>:00449         member_ptr&lt;BufferedTransformation&gt; m_filter;00450         OutputProxy *m_proxy;00451 };00452 <span class="comment"></span>00453 <span class="comment">//! simple proxy filter that doesn't modify the underlying filter's input or output</span><a name="l00454"></a><a class="code" href="class_simple_proxy_filter.html">00454</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL SimpleProxyFilter : <span class="keyword">public</span> ProxyFilter00455 {00456 <span class="keyword">public</span>:00457         SimpleProxyFilter(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *filter, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment)00458                 : ProxyFilter(filter, 0, 0, attachment) {}00459 00460         <span class="keywordtype">void</span> FirstPut(<span class="keyword">const</span> byte *) {}00461         <span class="keywordtype">void</span> LastPut(<span class="keyword">const</span> byte *, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) {m_filter-&gt;MessageEnd();}00462 };00463 <span class="comment"></span>00464 <span class="comment">//! proxy for the filter created by PK_Encryptor::CreateEncryptionFilter</span>00465 <span class="comment"></span><span class="comment">/*! This class is here just to provide symmetry with VerifierFilter. */</span><a name="l00466"></a><a class="code" href="class_p_k___encryptor_filter.html">00466</a> <span class="keyword">class </span>CRYPTOPP_DLL PK_EncryptorFilter : <span class="keyword">public</span> SimpleProxyFilter00467 {00468 <span class="keyword">public</span>:00469         PK_EncryptorFilter(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> <a class="code" href="class_p_k___encryptor.html">PK_Encryptor</a> &amp;encryptor, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL)00470                 : SimpleProxyFilter(encryptor.<a class="code" href="class_p_k___encryptor.html#_t_f___public_object_impl_3_01_t_f___encryptor_base_00_01_s_c_h_e_m_e___o_p_t_i_o_n_s_01_4a12">CreateEncryptionFilter</a>(rng), attachment) {}00471 };00472 <span class="comment"></span>00473 <span class="comment">//! proxy for the filter created by PK_Decryptor::CreateDecryptionFilter</span>00474 <span class="comment"></span><span class="comment">/*! This class is here just to provide symmetry with SignerFilter. */</span><a name="l00475"></a><a class="code" href="class_p_k___decryptor_filter.html">00475</a> <span class="keyword">class </span>CRYPTOPP_DLL PK_DecryptorFilter : <span class="keyword">public</span> SimpleProxyFilter00476 {00477 <span class="keyword">public</span>:00478         PK_DecryptorFilter(<span class="keyword">const</span> <a class="code" href="class_p_k___decryptor.html">PK_Decryptor</a> &amp;decryptor, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL)00479                 : SimpleProxyFilter(decryptor.<a class="code" href="class_p_k___decryptor.html#_t_f___private_object_impl_3_01_t_f___decryptor_base_00_01_s_c_h_e_m_e___o_p_t_i_o_n_s_01_4a14">CreateDecryptionFilter</a>(), attachment) {}00480 };00481 <span class="comment"></span>00482 <span class="comment">//! Append input to a string object</span>00483 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;<a name="l00484"></a><a class="code" href="class_string_sink_template.html">00484</a> <span class="keyword">class </span><a class="code" href="class_string_sink_template.html">StringSinkTemplate</a> : <span class="keyword">public</span> Bufferless&lt;Sink&gt;00485 {00486 <span class="keyword">public</span>:00487         <span class="comment">// VC60 workaround: no T::char_type</span>00488         <span class="keyword">typedef</span> <span class="keyword">typename</span> T::traits_type::char_type char_type;00489 00490         <a class="code" href="class_string_sink_template.html">StringSinkTemplate</a>(T &amp;output)00491                 : m_output(&amp;output) {assert(<span class="keyword">sizeof</span>(output[0])==1);}00492 00493         <span class="keywordtype">void</span> IsolatedInitialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters)00494                 {<span class="keywordflow">if</span> (!parameters.<a class="code" href="class_name_value_pairs.html#_x_t_r___d_ha39">GetValue</a>(<span class="stringliteral">"OutputStringPointer"</span>, m_output)) <span class="keywordflow">throw</span> <a class="code" href="class_invalid_argument.html">InvalidArgument</a>(<span class="stringliteral">"StringSink: OutputStringPointer not specified"</span>);}<a name="l00495"></a><a class="code" href="class_string_sink_template.html#_string_sink_templatea2">00495</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_string_sink_template.html#_string_sink_templatea2">Put2</a>(<span class="keyword">const</span> byte *begin, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking)00496         {00497                 m_output-&gt;append((<span class="keyword">const</span> char_type *)begin, (<span class="keyword">const</span> char_type *)begin+length);00498                 <span class="keywordflow">return</span> 0;00499         }00500 00501 <span class="keyword">private</span>:        00502         T *m_output;00503 };00504 <span class="comment"></span>00505 <span class="comment">//! Append input to an std::string</span>00506 <span class="comment"></span>CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_string_sink_template.html">StringSinkTemplate&lt;std::string&gt;</a>;00507 <span class="keyword">typedef</span> StringSinkTemplate&lt;std::string&gt; <a class="code" href="class_string_sink_template.html">StringSink</a>;00508 <span class="comment"></span>00509 <span class="comment">//! Copy input to a memory buffer</span><a name="l00510"></a><a class="code" href="class_array_sink.html">00510</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL ArraySink : <span class="keyword">public</span> Bufferless&lt;Sink&gt;00511 {00512 <span class="keyword">public</span>:00513         ArraySink(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters = g_nullNameValuePairs) {IsolatedInitialize(parameters);}00514         ArraySink(byte *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size) : m_buf(buf), m_size(size), m_total(0) {}00515 00516         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> AvailableSize() {<span class="keywordflow">return</span> m_size - STDMIN(m_total, (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)m_size);}00517         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> TotalPutLength() {<span class="keywordflow">return</span> m_total;}00518 00519         <span class="keywordtype">void</span> IsolatedInitialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters);00520         byte * CreatePutSpace(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;size);00521         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Put2(<span class="keyword">const</span> byte *begin, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking);00522 00523 <span class="keyword">protected</span>:00524         byte *m_buf;00525         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_size;00526         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> m_total;00527 };00528 <span class="comment"></span>00529 <span class="comment">//! Xor input to a memory buffer</span><a name="l00530"></a><a class="code" href="class_array_xor_sink.html">00530</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL ArrayXorSink : <span class="keyword">public</span> ArraySink00531 {00532 <span class="keyword">public</span>:00533         ArrayXorSink(byte *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size)00534                 : ArraySink(buf, size) {}00535 00536         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_array_sink.html#_array_sinka6">Put2</a>(<span class="keyword">const</span> byte *begin, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking);<a name="l00537"></a><a class="code" href="class_array_xor_sink.html#_array_xor_sinka2">00537</a>         byte * <a class="code" href="class_array_sink.html#_array_sinka5">CreatePutSpace</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;size) {<span class="keywordflow">return</span> <a class="code" href="class_buffered_transformation.html#_zlib_decompressorz1_4">BufferedTransformation::CreatePutSpace</a>(size);}00538 };00539 <span class="comment"></span>00540 <span class="comment">//! .</span><a name="l00541"></a><a class="code" hr

⌨️ 快捷键说明

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