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

📄 filters_8h-source.html

📁 著名的密码库Crypto++的文档 C++语言的杰作。程序员必备。
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00336"></a>00336 <a name="l00337"></a>00337 <span class="keyword">typedef</span> HashVerificationFilter <a class="code" href="class_hash_verification_filter.html" title="Filter Wrapper for HashTransformation.">HashVerifier</a>;    <span class="comment">// for backwards compatibility</span><a name="l00338"></a>00338 <span class="comment"></span><a name="l00339"></a>00339 <span class="comment">//! Filter Wrapper for PK_Signer</span><a name="l00340"></a><a class="code" href="class_signer_filter.html">00340</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL SignerFilter : <span class="keyword">public</span> <a class="code" href="class_unflushable.html" title="_">Unflushable</a>&lt;Filter&gt;<a name="l00341"></a>00341 {<a name="l00342"></a>00342 <span class="keyword">public</span>:<a name="l00343"></a><a class="code" href="class_signer_filter.html#1676894ce3df207b64b6041bc129133e">00343</a>         SignerFilter(<a class="code" href="class_random_number_generator.html" title="interface for random number generators">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> <a class="code" href="class_p_k___signer.html" title="interface for public-key signers">PK_Signer</a> &amp;signer, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> *attachment = NULL, <span class="keywordtype">bool</span> putMessage=<span class="keyword">false</span>)<a name="l00344"></a>00344                 : m_rng(rng), m_signer(signer), m_messageAccumulator(signer.NewSignatureAccumulator(rng)), m_putMessage(putMessage) {Detach(attachment);}<a name="l00345"></a>00345 <a name="l00346"></a><a class="code" href="class_signer_filter.html#8f2ff110b58fdb2b9d629f12b9d166bb">00346</a>         std::string AlgorithmName()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_signer.AlgorithmName();}<a name="l00347"></a>00347 <a name="l00348"></a>00348         <span class="keywordtype">void</span> IsolatedInitialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html" title="interface for retrieving values given their names">NameValuePairs</a> &amp;parameters);<a name="l00349"></a>00349         <span class="keywordtype">size_t</span> Put2(<span class="keyword">const</span> byte *begin, <span class="keywordtype">size_t</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking);<a name="l00350"></a>00350 <a name="l00351"></a>00351 <span class="keyword">private</span>:<a name="l00352"></a>00352         <a class="code" href="class_random_number_generator.html" title="interface for random number generators">RandomNumberGenerator</a> &amp;m_rng;<a name="l00353"></a>00353         <span class="keyword">const</span> <a class="code" href="class_p_k___signer.html" title="interface for public-key signers">PK_Signer</a> &amp;m_signer;<a name="l00354"></a>00354         <a class="code" href="classmember__ptr.html">member_ptr&lt;PK_MessageAccumulator&gt;</a> m_messageAccumulator;<a name="l00355"></a>00355         <span class="keywordtype">bool</span> m_putMessage;<a name="l00356"></a>00356         <a class="code" href="class_sec_block.html" title="a block of memory allocated using A">SecByteBlock</a> m_buf;<a name="l00357"></a>00357 };<a name="l00358"></a>00358 <span class="comment"></span><a name="l00359"></a>00359 <span class="comment">//! Filter Wrapper for PK_Verifier</span><a name="l00360"></a><a class="code" href="class_signature_verification_filter.html">00360</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL SignatureVerificationFilter : <span class="keyword">public</span> FilterWithBufferedInput<a name="l00361"></a>00361 {<a name="l00362"></a>00362 <span class="keyword">public</span>:<a name="l00363"></a><a class="code" href="class_signature_verification_filter_1_1_signature_verification_failed.html">00363</a>         <span class="keyword">class </span><a class="code" href="class_signature_verification_filter_1_1_signature_verification_failed.html">SignatureVerificationFailed</a> : <span class="keyword">public</span> <a class="code" href="class_exception.html" title="base class for all exceptions thrown by Crypto++">Exception</a><a name="l00364"></a>00364         {<a name="l00365"></a>00365         <span class="keyword">public</span>:<a name="l00366"></a><a class="code" href="class_signature_verification_filter_1_1_signature_verification_failed.html#e7f8cece3d560fd10d3d55a24245cee9">00366</a>                 <a class="code" href="class_signature_verification_filter_1_1_signature_verification_failed.html">SignatureVerificationFailed</a>()<a name="l00367"></a>00367                         : <a class="code" href="class_exception.html" title="base class for all exceptions thrown by Crypto++">Exception</a>(DATA_INTEGRITY_CHECK_FAILED, <span class="stringliteral">"VerifierFilter: digital signature not valid"</span>) {}<a name="l00368"></a>00368         };<a name="l00369"></a>00369 <a name="l00370"></a><a class="code" href="class_signature_verification_filter.html#3673220151c47758b53dda37c82101802b9d85ccbc2be3ca34f45bf78b948c23">00370</a>         <span class="keyword">enum</span> <a class="code" href="class_signature_verification_filter.html#3673220151c47758b53dda37c8210180">Flags</a> {SIGNATURE_AT_BEGIN=1, PUT_MESSAGE=2, PUT_SIGNATURE=4, PUT_RESULT=8, THROW_EXCEPTION=16, DEFAULT_FLAGS = SIGNATURE_AT_BEGIN | PUT_RESULT};<a name="l00371"></a>00371         SignatureVerificationFilter(<span class="keyword">const</span> <a class="code" href="class_p_k___verifier.html" title="interface for public-key signature verifiers">PK_Verifier</a> &amp;verifier, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> *attachment = NULL, word32 flags = DEFAULT_FLAGS);<a name="l00372"></a>00372 <a name="l00373"></a><a class="code" href="class_signature_verification_filter.html#a7e450a40faa8971970b6b8dcfa31694">00373</a>         std::string <a class="code" href="class_algorithm.html#4f31510a192d1121856efe8ad0a9b844" title="returns name of this algorithm, not universally implemented yet">AlgorithmName</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_verifier.AlgorithmName();}<a name="l00374"></a>00374 <a name="l00375"></a><a class="code" href="class_signature_verification_filter.html#8939c9cdd0f5ed772a8371e20a9bb468">00375</a>         <span class="keywordtype">bool</span> GetLastResult()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_verified;}<a name="l00376"></a>00376 <a name="l00377"></a>00377 <span class="keyword">protected</span>:<a name="l00378"></a>00378         <span class="keywordtype">void</span> <a class="code" href="class_filter_with_buffered_input.html#5fba4d91d6349ecf1036c1aeb21d5e96">InitializeDerivedAndReturnNewSizes</a>(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html" title="interface for retrieving values given their names">NameValuePairs</a> &amp;parameters, <span class="keywordtype">size_t</span> &amp;firstSize, <span class="keywordtype">size_t</span> &amp;blockSize, <span class="keywordtype">size_t</span> &amp;lastSize);<a name="l00379"></a>00379         <span class="keywordtype">void</span> FirstPut(<span class="keyword">const</span> byte *inString);<a name="l00380"></a>00380         <span class="keywordtype">void</span> <a class="code" href="class_filter_with_buffered_input.html#0e49fdd45ab18631d9f0c2e5aba3dc0f">NextPutMultiple</a>(<span class="keyword">const</span> byte *inString, <span class="keywordtype">size_t</span> length);<a name="l00381"></a>00381         <span class="keywordtype">void</span> LastPut(<span class="keyword">const</span> byte *inString, <span class="keywordtype">size_t</span> length);<a name="l00382"></a>00382 <a name="l00383"></a>00383 <span class="keyword">private</span>:<a name="l00384"></a>00384         <span class="keyword">const</span> <a class="code" href="class_p_k___verifier.html" title="interface for public-key signature verifiers">PK_Verifier</a> &amp;m_verifier;<a name="l00385"></a>00385         <a class="code" href="classmember__ptr.html">member_ptr&lt;PK_MessageAccumulator&gt;</a> m_messageAccumulator;<a name="l00386"></a>00386         word32 m_flags;<a name="l00387"></a>00387         <a class="code" href="class_sec_block.html" title="a block of memory allocated using A">SecByteBlock</a> m_signature;<a name="l00388"></a>00388         <span class="keywordtype">bool</span> m_verified;<a name="l00389"></a>00389 };<a name="l00390"></a>00390 <a name="l00391"></a>00391 <span class="keyword">typedef</span> SignatureVerificationFilter <a class="code" href="class_signature_verification_filter.html" title="Filter Wrapper for PK_Verifier.">VerifierFilter</a>;     <span class="comment">// for backwards compatibility</span><a name="l00392"></a>00392 <span class="comment"></span><a name="l00393"></a>00393 <span class="comment">//! Redirect input to another BufferedTransformation without owning it</span><a name="l00394"></a><a class="code" href="class_redirector.html">00394</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL Redirector : <span class="keyword">public</span> <a class="code" href="class_custom_signal_propagation.html" title="_">CustomSignalPropagation</a>&lt;Sink&gt;<a name="l00395"></a>00395 {<a name="l00396"></a>00396 <span class="keyword">public</span>:<a name="l00397"></a><a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67">00397</a>         <span class="keyword">enum</span> <a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67">Behavior</a><a name="l00398"></a>00398         {<a name="l00399"></a><a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de671ca858a44d042173d50b058a34c3403c">00399</a>                 DATA_ONLY = 0x00,<a name="l00400"></a><a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67469c499eec32b53d40476c7ff7bb20d0">00400</a>                 PASS_SIGNALS = 0x01,<a name="l00401"></a><a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67619f260cb40cef8ab7a1bef2dfd568e1">00401</a>                 PASS_WAIT_OBJECTS = 0x02,<a name="l00402"></a><a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de679bedf58acdacc835d476e8783c169c2f">00402</a>                 PASS_EVERYTHING = PASS_SIGNALS | PASS_WAIT_OBJECTS<a name="l00403"></a>00403         };<a name="l00404"></a>00404 <a name="l00405"></a><a class="code" href="class_redirector.html#d88cbf0d8971aa96eeaeff78dc743c25">00405</a>         Redirector() : m_target(NULL), m_behavior(PASS_EVERYTHING) {}<a name="l00406"></a><a class="code" href="class_redirector.html#0ce7d175c4cf620add11915dcbe447fb">00406</a>         Redirector(<a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &amp;target, <a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67">Behavior</a> behavior=PASS_EVERYTHING)<a name="l00407"></a>00407                 : m_target(&amp;target), m_behavior(behavior) {}<a name="l00408"></a>00408 <a name="l00409"></a><a class="code" href="class_redirector.html#890fae5ac4297b1c06c6f93252a0f92c">00409</a>         <span class="keywordtype">void</span> Redirect(<a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &amp;target) {m_target = &amp;target;}<a name="l00410"></a><a class="code" href="class_redirector.html#72b5a632f5d66cd3943fa4eed1563956">00410</a>         <span class="keywordtype">void</span> StopRedirection() {m_target = NULL;}<a name="l00411"></a>00411 <a name="l00412"></a><a class="code" href="class_redirector.html#3a8e0ac74e391ed8397aa5aff5fd0d17">00412</a>         <a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67">Behavior</a> GetBehavior() {<span class="keywordflow">return</span> (<a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67">Behavior</a>) m_behavior;}<a name="l00413"></a><a class="code" href="class_redirector.html#c72d36b260e828760dc1a02d2f735eb9">00413</a>         <span class="keywordtype">void</span> SetBehavior(<a class="code" href="class_redirector.html#2de79d5742280aa614c218c7b950de67">Behavior</a> behavior) {m_behavior=behavior;}<a name="l00414"></a><a class="code" href="class_redirector.html#47ceefd50d8a6e30b1daf16e10c84436">00414</a>         <span class="keywordtype">bool</span> GetPassSignals()<span class="keyword"> const </span>{<span class="keywordflow">return</span> (m_behavior &amp; PASS_SIGNALS) != 0;}<a name="l00415"></a><a class="code" href="class_redirector.html#6b9b95451ee988541efe376f2ccb11fe">00415</a>         <span class="keywordtype">void</span> SetPassSignals(<span class="keywordtype">bool</span> pass) { <span class="keywordflow">if</span> (pass) m_behavior |= PASS_SIGNALS; <span class="keywordflow">else</span> m_behavior &amp;= ~(word32) PASS_SIGNALS; }<a name="l00416"></a><a class="code" href="class_redirector.html#4abad53f185a07bdaa8d575483154501">00416</a>         <span class="keywordtype">bool</span> GetPassWaitObjects()<span class="keyword"> const </span>{<span class="keywordflow">return</span> (m_behavior &amp; PASS_WAIT_OBJECTS) != 0;}<a name="l00417"></a><a class="code" href="class_redirector.html#41f0adf8f3bc547609d95b67bb0ef404">00417</a>         <span class="keywordtype">void</span> SetPassWaitObjects(<span class="keywordtype">bool</span> pass) { <span class="keywordflow">if</span> (pass) m_behavior |= PASS_WAIT_OBJECTS; <span class="keywordflow">else</span> m_behavior &amp;= ~(word32) PASS_WAIT_OBJECTS; }<a name="l00418"></a>00418 <a name="l00419"></a><a class="code" href="class_redirector.html#2ee0003a41e0fbebe12ff2b4d9f19559">00419</a>         <span class="keywordtype">bool</span> CanModifyInput()<span class="keyword"> const</span><a name="l00420"></a>00420 <span class="keyword">                </span>{<span class="keywordflow">return</span> m_tar

⌨️ 快捷键说明

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