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

📄 validat1_8cpp-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00634 00635                 fail = !TestModeIV(modeE, modeD);00636                 pass = pass &amp;&amp; !fail;00637                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CBC CTS IV generation"</span> &lt;&lt; endl;00638         }00639         {00640                 <span class="comment">// generated with Crypto++</span>00641                 <span class="keyword">const</span> byte decryptionIV[] = {0x4D, 0xD0, 0xAC, 0x8F, 0x47, 0xCF, 0x79, 0xCE};00642                 <span class="keyword">const</span> byte encrypted[] = {0x12, 0x34, 0x56};00643 00644                 byte stolenIV[8];00645 00646                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CBC_CTS_Mode_ExternalCipher::Encryption</a> modeE(desE, iv);00647                 modeE.SetStolenIV(stolenIV);00648                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeE).Ref(),00649                         plain, 3, encrypted, <span class="keyword">sizeof</span>(encrypted));00650                 fail = memcmp(stolenIV, decryptionIV, 8) != 0 || fail;00651                 pass = pass &amp;&amp; !fail;00652                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CBC encryption with ciphertext and IV stealing"</span> &lt;&lt; endl;00653                 00654                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CBC_CTS_Mode_ExternalCipher::Decryption</a> modeD(desD, stolenIV);00655                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeD).Ref(),00656                         encrypted, <span class="keyword">sizeof</span>(encrypted), plain, 3);00657                 pass = pass &amp;&amp; !fail;00658                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CBC decryption with ciphertext and IV stealing"</span> &lt;&lt; endl;00659         }00660         {00661                 <span class="keyword">const</span> byte encrypted[] = {      <span class="comment">// from FIPS 81</span>00662                         0xF3,0x09,0x62,0x49,0xC7,0xF4,0x6E,0x51,00663                         0xA6,0x9E,0x83,0x9B,0x1A,0x92,0xF7,0x84,00664                         0x03,0x46,0x71,0x33,0x89,0x8E,0xA6,0x22};00665 00666                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CFB_Mode_ExternalCipher::Encryption</a> modeE(desE, iv);00667                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeE).Ref(),00668                         plain, <span class="keyword">sizeof</span>(plain), encrypted, <span class="keyword">sizeof</span>(encrypted));00669                 pass = pass &amp;&amp; !fail;00670                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CFB encryption"</span> &lt;&lt; endl;00671 00672                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CFB_Mode_ExternalCipher::Decryption</a> modeD(desE, iv);00673                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeD).Ref(),00674                         encrypted, <span class="keyword">sizeof</span>(encrypted), plain, <span class="keyword">sizeof</span>(plain));00675                 pass = pass &amp;&amp; !fail;00676                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CFB decryption"</span> &lt;&lt; endl;00677 00678                 fail = !TestModeIV(modeE, modeD);00679                 pass = pass &amp;&amp; !fail;00680                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CFB mode IV generation"</span> &lt;&lt; endl;00681         }00682         {00683                 <span class="keyword">const</span> byte plain[] = {  <span class="comment">// "Now is the." without tailing 0</span>00684                         0x4e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74,0x68,0x65};00685                 <span class="keyword">const</span> byte encrypted[] = {      <span class="comment">// from FIPS 81</span>00686                         0xf3,0x1f,0xda,0x07,0x01,0x14,0x62,0xee,0x18,0x7f};00687 00688                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CFB_Mode_ExternalCipher::Encryption</a> modeE(desE, iv, 1);00689                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeE).Ref(),00690                         plain, <span class="keyword">sizeof</span>(plain), encrypted, <span class="keyword">sizeof</span>(encrypted));00691                 pass = pass &amp;&amp; !fail;00692                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CFB (8-bit feedback) encryption"</span> &lt;&lt; endl;00693 00694                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CFB_Mode_ExternalCipher::Decryption</a> modeD(desE, iv, 1);00695                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeD).Ref(),00696                         encrypted, <span class="keyword">sizeof</span>(encrypted), plain, <span class="keyword">sizeof</span>(plain));00697                 pass = pass &amp;&amp; !fail;00698                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CFB (8-bit feedback) decryption"</span> &lt;&lt; endl;00699 00700                 fail = !TestModeIV(modeE, modeD);00701                 pass = pass &amp;&amp; !fail;00702                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CFB (8-bit feedback) IV generation"</span> &lt;&lt; endl;00703         }00704         {00705                 <span class="keyword">const</span> byte encrypted[] = {      <span class="comment">// from Eric Young's libdes</span>00706                         0xf3,0x09,0x62,0x49,0xc7,0xf4,0x6e,0x51,00707                         0x35,0xf2,0x4a,0x24,0x2e,0xeb,0x3d,0x3f,00708                         0x3d,0x6d,0x5b,0xe3,0x25,0x5a,0xf8,0xc3};00709 00710                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">OFB_Mode_ExternalCipher::Encryption</a> modeE(desE, iv);00711                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeE).Ref(),00712                         plain, <span class="keyword">sizeof</span>(plain), encrypted, <span class="keyword">sizeof</span>(encrypted));00713                 pass = pass &amp;&amp; !fail;00714                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"OFB encryption"</span> &lt;&lt; endl;00715 00716                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">OFB_Mode_ExternalCipher::Decryption</a> modeD(desE, iv);00717                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeD).Ref(),00718                         encrypted, <span class="keyword">sizeof</span>(encrypted), plain, <span class="keyword">sizeof</span>(plain));00719                 pass = pass &amp;&amp; !fail;00720                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"OFB decryption"</span> &lt;&lt; endl;00721 00722                 fail = !TestModeIV(modeE, modeD);00723                 pass = pass &amp;&amp; !fail;00724                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"OFB IV generation"</span> &lt;&lt; endl;00725         }00726         {00727                 <span class="keyword">const</span> byte encrypted[] = {      <span class="comment">// generated with Crypto++</span>00728                         0xF3, 0x09, 0x62, 0x49, 0xC7, 0xF4, 0x6E, 0x51, 00729                         0x16, 0x3A, 0x8C, 0xA0, 0xFF, 0xC9, 0x4C, 0x27, 00730                         0xFA, 0x2F, 0x80, 0xF4, 0x80, 0xB8, 0x6F, 0x75};00731 00732                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CTR_Mode_ExternalCipher::Encryption</a> modeE(desE, iv);00733                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeE).Ref(),00734                         plain, <span class="keyword">sizeof</span>(plain), encrypted, <span class="keyword">sizeof</span>(encrypted));00735                 pass = pass &amp;&amp; !fail;00736                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"Counter Mode encryption"</span> &lt;&lt; endl;00737 00738                 <a class="code" href="class_cipher_mode_final_template___external_cipher.html">CTR_Mode_ExternalCipher::Decryption</a> modeD(desE, iv);00739                 fail = !TestFilter(<a class="code" href="class_stream_transformation_filter.html">StreamTransformationFilter</a>(modeD).Ref(),00740                         encrypted, <span class="keyword">sizeof</span>(encrypted), plain, <span class="keyword">sizeof</span>(plain));00741                 pass = pass &amp;&amp; !fail;00742                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"Counter Mode decryption"</span> &lt;&lt; endl;00743 00744                 fail = !TestModeIV(modeE, modeD);00745                 pass = pass &amp;&amp; !fail;00746                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"Counter Mode IV generation"</span> &lt;&lt; endl;00747         }00748         {00749                 <span class="keyword">const</span> byte plain[] = {  <span class="comment">// "7654321 Now is the time for "</span>00750                         0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0x20, 00751                         0x4e, 0x6f, 0x77, 0x20, 0x69, 0x73, 0x20, 0x74, 00752                         0x68, 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 00753                         0x66, 0x6f, 0x72, 0x20};00754                 <span class="keyword">const</span> byte mac1[] = {   <span class="comment">// from FIPS 113</span>00755                         0xf1, 0xd3, 0x0f, 0x68, 0x49, 0x31, 0x2c, 0xa4};00756                 <span class="keyword">const</span> byte mac2[] = {   <span class="comment">// generated with Crypto++</span>00757                         0x35, 0x80, 0xC5, 0xC4, 0x6B, 0x81, 0x24, 0xE2};00758 00759                 <a class="code" href="class_c_b_c___m_a_c.html">CBC_MAC&lt;DES&gt;</a> cbcmac(key);00760                 <a class="code" href="class_hash_filter.html">HashFilter</a> cbcmacFilter(cbcmac);00761                 fail = !TestFilter(cbcmacFilter, plain, <span class="keyword">sizeof</span>(plain), mac1, <span class="keyword">sizeof</span>(mac1));00762                 pass = pass &amp;&amp; !fail;00763                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"CBC MAC"</span> &lt;&lt; endl;00764 00765                 <a class="code" href="class_d_m_a_c.html">DMAC&lt;DES&gt;</a> dmac(key);00766                 <a class="code" href="class_hash_filter.html">HashFilter</a> dmacFilter(dmac);00767                 fail = !TestFilter(dmacFilter, plain, <span class="keyword">sizeof</span>(plain), mac2, <span class="keyword">sizeof</span>(mac2));00768                 pass = pass &amp;&amp; !fail;00769                 cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED   "</span> : <span class="stringliteral">"passed   "</span>) &lt;&lt; <span class="stringliteral">"DMAC"</span> &lt;&lt; endl;00770         }00771 00772         <span class="keywordflow">return</span> pass;00773 }00774 00775 <span class="keywordtype">bool</span> ValidateIDEA()00776 {00777         cout &lt;&lt; <span class="stringliteral">"\nIDEA validation suite running...\n\n"</span>;00778 00779         <a class="code" href="class_file_source.html">FileSource</a> valdata(<span class="stringliteral">"ideaval.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00780         <span class="keywordflow">return</span> BlockTransformationTest(FixedRoundsCipherFactory&lt;IDEAEncryption, IDEADecryption&gt;(), valdata);00781 }00782 00783 <span class="keywordtype">bool</span> ValidateSAFER()00784 {00785         cout &lt;&lt; <span class="stringliteral">"\nSAFER validation suite running...\n\n"</span>;00786 00787         <a class="code" href="class_file_source.html">FileSource</a> valdata(<span class="stringliteral">"saferval.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00788         <span class="keywordtype">bool</span> pass = <span class="keyword">true</span>;00789         pass = BlockTransformationTest(VariableRoundsCipherFactory&lt;SAFER_K_Encryption, SAFER_K_Decryption&gt;(8,6), valdata, 4) &amp;&amp; pass;00790         pass = BlockTransformationTest(VariableRoundsCipherFactory&lt;SAFER_K_Encryption, SAFER_K_Decryption&gt;(16,12), valdata, 4) &amp;&amp; pass;00791         pass = BlockTransformationTest(VariableRoundsCipherFactory&lt;SAFER_SK_Encryption, SAFER_SK_Decryption&gt;(8,6), valdata, 4) &amp;&amp; pass;00792         pass = BlockTransformationTest(VariableRoundsCipherFactor

⌨️ 快捷键说明

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