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

📄 filters_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00324 00325 <span class="keyword">private</span>:00326         <a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;m_rng;00327         <span class="keyword">const</span> <a class="code" href="class_p_k___signer.html">PK_Signer</a> &amp;m_signer;00328         member_ptr&lt;HashTransformation&gt; m_messageAccumulator;00329         <span class="keywordtype">bool</span> m_putMessage;00330         <a class="code" href="class_sec_block.html">SecByteBlock</a> m_buf;00331 };00332 <span class="comment"></span>00333 <span class="comment">//! Filter Wrapper for PK_Verifier</span><a name="l00334"></a><a class="code" href="class_signature_verification_filter.html">00334</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL SignatureVerificationFilter : <span class="keyword">public</span> FilterWithBufferedInput00335 {00336 <span class="keyword">public</span>:00337         <span class="keyword">class </span>SignatureVerificationFailed : <span class="keyword">public</span> <a class="code" href="class_exception.html">Exception</a>00338         {00339         <span class="keyword">public</span>:00340                 SignatureVerificationFailed()00341                         : <a class="code" href="class_exception.html">Exception</a>(DATA_INTEGRITY_CHECK_FAILED, <span class="stringliteral">"VerifierFilter: digital signature not valid"</span>) {}00342         };00343 00344         <span class="keyword">enum</span> Flags {SIGNATURE_AT_BEGIN=1, PUT_MESSAGE=2, PUT_SIGNATURE=4, PUT_RESULT=8, THROW_EXCEPTION=16, DEFAULT_FLAGS = SIGNATURE_AT_BEGIN | PUT_RESULT};00345         SignatureVerificationFilter(<span class="keyword">const</span> <a class="code" href="class_p_k___verifier.html">PK_Verifier</a> &amp;verifier, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL, word32 flags = DEFAULT_FLAGS);00346 00347         <span class="keywordtype">bool</span> GetLastResult()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_verified;}00348 00349 <span class="keyword">protected</span>:00350         <span class="keywordtype">void</span> InitializeDerivedAndReturnNewSizes(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;firstSize, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;blockSize, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> &amp;lastSize);00351         <span class="keywordtype">void</span> FirstPut(<span class="keyword">const</span> byte *inString);00352         <span class="keywordtype">void</span> NextPutMultiple(<span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00353         <span class="keywordtype">void</span> LastPut(<span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00354 00355 <span class="keyword">private</span>:00356         <span class="keyword">const</span> <a class="code" href="class_p_k___verifier.html">PK_Verifier</a> &amp;m_verifier;00357         member_ptr&lt;HashTransformation&gt; m_messageAccumulator;00358         word32 m_flags;00359         <a class="code" href="class_sec_block.html">SecByteBlock</a> m_signature;00360         <span class="keywordtype">bool</span> m_verified;00361 };00362 00363 <span class="keyword">typedef</span> SignatureVerificationFilter <a class="code" href="class_signature_verification_filter.html">VerifierFilter</a>;     <span class="comment">// for backwards compatibility</span>00364 <span class="comment"></span>00365 <span class="comment">//! Redirect input to another BufferedTransformation without owning it</span><a name="l00366"></a><a class="code" href="class_redirector.html">00366</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL Redirector : <span class="keyword">public</span> CustomSignalPropagation&lt;Sink&gt;00367 {00368 <span class="keyword">public</span>:00369         Redirector() : m_target(NULL), m_passSignal(<span class="keyword">true</span>) {}00370         Redirector(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, <span class="keywordtype">bool</span> passSignal=<span class="keyword">true</span>) : m_target(&amp;target), m_passSignal(passSignal) {}00371 00372         <span class="keywordtype">void</span> Redirect(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target) {m_target = &amp;target;}00373         <span class="keywordtype">void</span> StopRedirection() {m_target = NULL;}00374         <span class="keywordtype">bool</span> GetPassSignal()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_passSignal;}00375         <span class="keywordtype">void</span> SetPassSignal(<span class="keywordtype">bool</span> passSignal) {m_passSignal = passSignal;}00376 <a name="l00377"></a><a class="code" href="class_redirector.html#_redirectora6">00377</a>         <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)00378                 {<span class="keywordflow">return</span> m_target ? m_target-&gt;<a class="code" href="class_buffered_transformation.html#_unflushable_3_01_sink_01_4z1_9">Put2</a>(begin, length, m_passSignal ? messageEnd : 0, blocking) : 0;}<a name="l00379"></a><a class="code" href="class_redirector.html#_redirectora7">00379</a>         <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters, <span class="keywordtype">int</span> propagation)00380                 {ChannelInitialize(NULL_CHANNEL, parameters, propagation);}<a name="l00381"></a><a class="code" href="class_redirector.html#_redirectora8">00381</a>         <span class="keywordtype">bool</span> Flush(<span class="keywordtype">bool</span> hardFlush, <span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00382                 {<span class="keywordflow">return</span> m_target &amp;&amp; m_passSignal ? m_target-&gt;Flush(hardFlush, propagation, blocking) : <span class="keyword">false</span>;}<a name="l00383"></a><a class="code" href="class_redirector.html#_redirectora9">00383</a>         <span class="keywordtype">bool</span> MessageSeriesEnd(<span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00384                 {<span class="keywordflow">return</span> m_target &amp;&amp; m_passSignal ? m_target-&gt;MessageSeriesEnd(propagation, blocking) : <span class="keyword">false</span>;}00385 00386         <span class="keywordtype">void</span> ChannelInitialize(<span class="keyword">const</span> std::string &amp;channel, <span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters=g_nullNameValuePairs, <span class="keywordtype">int</span> propagation=-1);00387         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ChannelPut2(<span class="keyword">const</span> std::string &amp;channel, <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)00388                 {<span class="keywordflow">return</span> m_target ? m_target-&gt;ChannelPut2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking) : 0;}00389         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ChannelPutModifiable2(<span class="keyword">const</span> std::string &amp;channel, 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)00390                 {<span class="keywordflow">return</span> m_target ? m_target-&gt;ChannelPutModifiable2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking) : 0;}00391         <span class="keywordtype">bool</span> ChannelFlush(<span class="keyword">const</span> std::string &amp;channel, <span class="keywordtype">bool</span> completeFlush, <span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00392                 {<span class="keywordflow">return</span> m_target &amp;&amp; m_passSignal ? m_target-&gt;ChannelFlush(channel, completeFlush, propagation, blocking) : false;}00393         <span class="keywordtype">bool</span> ChannelMessageSeriesEnd(<span class="keyword">const</span> std::string &amp;channel, <span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00394                 {<span class="keywordflow">return</span> m_target &amp;&amp; m_passSignal ? m_target-&gt;ChannelMessageSeriesEnd(channel, propagation, blocking) : false;}00395 00396 <span class="keyword">private</span>:00397         <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *m_target;00398         <span class="keywordtype">bool</span> m_passSignal;00399 };00400 00401 <span class="comment">// Used By ProxyFilter</span>00402 <span class="keyword">class </span>CRYPTOPP_DLL OutputProxy : <span class="keyword">public</span> CustomSignalPropagation&lt;Sink&gt;00403 {00404 <span class="keyword">public</span>:00405         OutputProxy(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;owner, <span class="keywordtype">bool</span> passSignal) : m_owner(owner), m_passSignal(passSignal) {}00406 00407         <span class="keywordtype">bool</span> GetPassSignal()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_passSignal;}00408         <span class="keywordtype">void</span> SetPassSignal(<span class="keywordtype">bool</span> passSignal) {m_passSignal = passSignal;}00409 00410         <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)00411                 {<span class="keywordflow">return</span> m_owner.AttachedTransformation()-&gt;Put2(begin, length, m_passSignal ? messageEnd : 0, blocking);}00412         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PutModifiable2(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)00413                 {<span class="keywordflow">return</span> m_owner.AttachedTransformation()-&gt;PutModifiable2(begin, length, m_passSignal ? messageEnd : 0, blocking);}00414         <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters=g_nullNameValuePairs, <span class="keywordtype">int</span> propagation=-1)00415                 {<span class="keywordflow">if</span> (m_passSignal) m_owner.AttachedTransformation()-&gt;Initialize(parameters, propagation);}00416         <span class="keywordtype">bool</span> Flush(<span class="keywordtype">bool</span> hardFlush, <span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00417                 {<span class="keywordflow">return</span> m_passSignal ? m_owner.AttachedTransformation()-&gt;Flush(hardFlush, propagation, blocking) : false;}00418         <span class="keywordtype">bool</span> MessageSeriesEnd(<span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00419                 {<span class="keywordflow">return</span> m_passSignal ? m_owner.AttachedTransformation()-&gt;MessageSeriesEnd(propagation, blocking) : false;}00420 00421         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ChannelPut2(<span class="keyword">const</span> std::string &amp;channel, <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)00422                 {<span class="keywordflow">return</span> m_owner.AttachedTransformation()-&gt;ChannelPut2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking);}00423         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ChannelPutModifiable2(<span class="keyword">const</span> std::string &amp;channel, 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)00424                 {<span class="keywordflow">return</span> m_owner.AttachedTransformation()-&gt;ChannelPutModifiable2(channel, begin, length, m_passSignal ? messageEnd : 0, blocking);}00425         <span class="keywordtype">void</span> ChannelInitialize(<span class="keyword">const</span> std::string &amp;channel, <span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters, <span class="keywordtype">int</span> propagation=-1)00426                 {<span class="keywordflow">if</span> (m_passSignal) m_owner.AttachedTransformation()-&gt;ChannelInitialize(channel, parameters, propagation);}00427         <span class="keywordtype">bool</span> ChannelFlush(<span class="keyword">const</span> std::string &amp;channel, <span class="keywordtype">bool</span> completeFlush, <span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00428                 {<span class="keywordflow">return</span> m_passSignal ? m_owner.AttachedTransformation()-&gt;ChannelFlush(channel, completeFlush, propagation, blocking) : false;}00429         <span class="keywordtype">bool</span> ChannelMessageSeriesEnd(<span class="keyword">const</span> std::string &amp;channel, <span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>)00430                 {<span class="keywordflow">return</span> m_passSignal ? m_owner.AttachedTransformation()-&gt;ChannelMessageSeriesEnd(channel, propagation, blocking) : false;}00431 00432 <span class="keyword">private</span>:00433         <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;m_owner;

⌨️ 快捷键说明

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