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

📄 validat3_8cpp-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00157                 HashTestTuple(<span class="stringliteral">"message digest"</span>, <span class="stringliteral">"\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d\x52\x5a\x2f\x31\xaa\xf1\x61\xd0"</span>),00158                 HashTestTuple(<span class="stringliteral">"abcdefghijklmnopqrstuvwxyz"</span>, <span class="stringliteral">"\xc3\xfc\xd3\xd7\x61\x92\xe4\x00\x7d\xfb\x49\x6c\xca\x67\xe1\x3b"</span>),00159                 HashTestTuple(<span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span>, <span class="stringliteral">"\xd1\x74\xab\x98\xd2\x77\xd9\xf5\xa5\x61\x1c\x2c\x9f\x41\x9d\x9f"</span>),00160                 HashTestTuple(<span class="stringliteral">"12345678901234567890123456789012345678901234567890123456789012345678901234567890"</span>, <span class="stringliteral">"\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6\x7a"</span>)00161         };00162 00163         <a class="code" href="class_m_d5.html">MD5</a> md5;00164 00165         cout &lt;&lt; <span class="stringliteral">"\nMD5 validation suite running...\n\n"</span>;00166         <span class="keywordflow">return</span> HashModuleTest(md5, testSet, <span class="keyword">sizeof</span>(testSet)/<span class="keyword">sizeof</span>(testSet[0]));00167 }00168 00169 <span class="keywordtype">bool</span> ValidateSHA()00170 {00171         HashTestTuple testSet[] = 00172         {00173                 HashTestTuple(<span class="stringliteral">"abc"</span>, <span class="stringliteral">"\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E\x25\x71\x78\x50\xC2\x6C\x9C\xD0\xD8\x9D"</span>),00174                 HashTestTuple(<span class="stringliteral">"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"</span>, <span class="stringliteral">"\x84\x98\x3E\x44\x1C\x3B\xD2\x6E\xBA\xAE\x4A\xA1\xF9\x51\x29\xE5\xE5\x46\x70\xF1"</span>),00175                 HashTestTuple(<span class="stringliteral">"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"</span>, <span class="stringliteral">"\x34\xAA\x97\x3C\xD4\xC4\xDA\xA4\xF6\x1E\xEB\x2B\xDB\xAD\x27\x31\x65\x34\x01\x6F"</span>, 15625)00176         };00177 00178         <a class="code" href="class_s_h_a.html">SHA</a> sha;00179 00180         cout &lt;&lt; <span class="stringliteral">"\nSHA validation suite running...\n\n"</span>;00181         <span class="keywordflow">return</span> HashModuleTest(sha, testSet, <span class="keyword">sizeof</span>(testSet)/<span class="keyword">sizeof</span>(testSet[0]));00182 }00183 00184 <span class="keywordtype">bool</span> ValidateSHA2()00185 {00186         HashTestTuple testSet256[] = 00187         {00188                 HashTestTuple(<span class="stringliteral">"abc"</span>, <span class="stringliteral">"\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad"</span>),00189                 HashTestTuple(<span class="stringliteral">"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"</span>, <span class="stringliteral">"\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1"</span>),00190         };00191 00192         HashTestTuple testSet384[] = 00193         {00194                 HashTestTuple(<span class="stringliteral">"abc"</span>, <span class="stringliteral">"\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34\xc8\x25\xa7"</span>),00195                 HashTestTuple(<span class="stringliteral">"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"</span>, <span class="stringliteral">"\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91\x74\x60\x39"</span>),00196         };00197 00198         HashTestTuple testSet512[] = 00199         {00200                 HashTestTuple(<span class="stringliteral">"abc"</span>, <span class="stringliteral">"\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f"</span>),00201                 HashTestTuple(<span class="stringliteral">"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"</span>, <span class="stringliteral">"\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09"</span>),00202         };00203 00204         <span class="keywordtype">bool</span> pass = <span class="keyword">true</span>;00205 00206         cout &lt;&lt; <span class="stringliteral">"\nSHA-256 validation suite running...\n\n"</span>;00207         <a class="code" href="class_s_h_a256.html">SHA256</a> sha256;00208         pass = HashModuleTest(sha256, testSet256, <span class="keyword">sizeof</span>(testSet256)/<span class="keyword">sizeof</span>(testSet256[0])) &amp;&amp; pass;00209 00210         cout &lt;&lt; <span class="stringliteral">"\nSHA-384 validation suite running...\n\n"</span>;00211         <a class="code" href="class_s_h_a384.html">SHA384</a> sha384;00212         pass = HashModuleTest(sha384, testSet384, <span class="keyword">sizeof</span>(testSet384)/<span class="keyword">sizeof</span>(testSet384[0])) &amp;&amp; pass;00213 00214         cout &lt;&lt; <span class="stringliteral">"\nSHA-512 validation suite running...\n\n"</span>;00215         <a class="code" href="class_s_h_a512.html">SHA512</a> sha512;00216         pass = HashModuleTest(sha512, testSet512, <span class="keyword">sizeof</span>(testSet512)/<span class="keyword">sizeof</span>(testSet512[0])) &amp;&amp; pass;00217 00218         <span class="keywordflow">return</span> pass;00219 }00220 00221 <span class="keywordtype">bool</span> ValidateTiger()00222 {00223         cout &lt;&lt; <span class="stringliteral">"\nTiger validation suite running...\n\n"</span>;00224 00225 <span class="preprocessor">#ifdef WORD64_AVAILABLE</span>00226 <span class="preprocessor"></span>        HashTestTuple testSet[] =00227         {00228                 HashTestTuple(<span class="stringliteral">""</span>, <span class="stringliteral">"\x32\x93\xac\x63\x0c\x13\xf0\x24\x5f\x92\xbb\xb1\x76\x6e\x16\x16\x7a\x4e\x58\x49\x2d\xde\x73\xf3"</span>),00229                 HashTestTuple(<span class="stringliteral">"abc"</span>, <span class="stringliteral">"\x2a\xab\x14\x84\xe8\xc1\x58\xf2\xbf\xb8\xc5\xff\x41\xb5\x7a\x52\x51\x29\x13\x1c\x95\x7b\x5f\x93"</span>),00230                 HashTestTuple(<span class="stringliteral">"Tiger"</span>, <span class="stringliteral">"\xdd\x00\x23\x07\x99\xf5\x00\x9f\xec\x6d\xeb\xc8\x38\xbb\x6a\x27\xdf\x2b\x9d\x6f\x11\x0c\x79\x37"</span>),00231                 HashTestTuple(<span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-"</span>, <span class="stringliteral">"\xf7\x1c\x85\x83\x90\x2a\xfb\x87\x9e\xdf\xe6\x10\xf8\x2c\x0d\x47\x86\xa3\xa5\x34\x50\x44\x86\xb5"</span>),00232                 HashTestTuple(<span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789"</span>, <span class="stringliteral">"\x48\xce\xeb\x63\x08\xb8\x7d\x46\xe9\x5d\x65\x61\x12\xcd\xf1\x8d\x97\x91\x5f\x97\x65\x65\x89\x57"</span>),00233                 HashTestTuple(<span class="stringliteral">"Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham"</span>, <span class="stringliteral">"\x8a\x86\x68\x29\x04\x0a\x41\x0c\x72\x9a\xd2\x3f\x5a\xda\x71\x16\x03\xb3\xcd\xd3\x57\xe4\xc1\x5e"</span>),00234                 HashTestTuple(<span class="stringliteral">"Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge."</span>, <span class="stringliteral">"\xce\x55\xa6\xaf\xd5\x91\xf5\xeb\xac\x54\x7f\xf8\x4f\x89\x22\x7f\x93\x31\xda\xb0\xb6\x11\xc8\x89"</span>),00235                 HashTestTuple(<span class="stringliteral">"Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge, 1996."</span>, <span class="stringliteral">"\x63\x1a\xbd\xd1\x03\xeb\x9a\x3d\x24\x5b\x6d\xfd\x4d\x77\xb2\x57\xfc\x74\x39\x50\x1d\x15\x68\xdd"</span>),00236                 HashTestTuple(<span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-"</span>, <span class="stringliteral">"\xc5\x40\x34\xe5\xb4\x3e\xb8\x00\x58\x48\xa7\xe0\xae\x6a\xac\x76\xe4\xff\x59\x0a\xe7\x15\xfd\x25"</span>)00237         };00238 00239         <a class="code" href="class_tiger.html">Tiger</a> tiger;00240 00241         <span class="keywordflow">return</span> HashModuleTest(tiger, testSet, <span class="keyword">sizeof</span>(testSet)/<span class="keyword">sizeof</span>(testSet[0]));00242 <span class="preprocessor">#else</span>00243 <span class="preprocessor"></span>        cout &lt;&lt; <span class="stringliteral">"word64 not available, skipping Tiger validation."</span> &lt;&lt; endl;00244         <span class="keywordflow">return</span> <span class="keyword">true</span>;00245 <span class="preprocessor">#endif</span>00246 <span class="preprocessor"></span>}00247 00248 <span class="keywordtype">bool</span> ValidateRIPEMD()00249 {00250         HashTestTuple testSet[] = 00251         {00252                 HashTestTuple(<span class="stringliteral">""</span>, <span class="stringliteral">"\x9c\x11\x85\xa5\xc5\xe9\xfc\x54\x61\x28\x08\x97\x7e\xe8\xf5\x48\xb2\x25\x8d\x31"</span>),00253                 HashTestTuple(<span class="stringliteral">"a"</span>, <span class="stringliteral">"\x0b\xdc\x9d\x2d\x25\x6b\x3e\xe9\xda\xae\x34\x7b\xe6\xf4\xdc\x83\x5a\x46\x7f\xfe"</span>),00254                 HashTestTuple(<span class="stringliteral">"abc"</span>, <span class="stringliteral">"\x8e\xb2\x08\xf7\xe0\x5d\x98\x7a\x9b\x04\x4a\x8e\x98\xc6\xb0\x87\xf1\x5a\x0b\xfc"</span>),00255                 HashTestTuple(<span class="stringliteral">"message digest"</span>, <span class="stringliteral">"\x5d\x06\x89\xef\x49\xd2\xfa\xe5\x72\xb8\x81\xb1\x23\xa8\x5f\xfa\x21\x59\x5f\x36"</span>),00256                 HashTestTuple(<span class="stringliteral">"abcdefghijklmnopqrstuvwxyz"</span>, <span class="stringliteral">"\xf7\x1c\x27\x10\x9c\x69\x2c\x1b\x56\xbb\xdc\xeb\x5b\x9d\x28\x65\xb3\x70\x8d\xbc"</span>),00257                 HashTestTuple(<span class="stringliteral">"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"</span>, <span class="stringliteral">"\x12\xa0\x53\x38\x4a\x9c\x0c\x88\xe4\x05\xa0\x6c\x27\xdc\xf4\x9a\xda\x62\xeb\x2b"</span>),00258                 HashTestTuple(<span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span>, <span class="stringliteral">"\xb0\xe2\x0b\x6e\x31\x16\x64\x02\x86\xed\x3a\x87\xa5\x71\x30\x79\xb2\x1f\x51\x89"</span>),00259                 HashTestTuple(<span class="stringliteral">"12345678901234567890123456789012345678901234567890123456789012345678901234567890"</span>, <span class="stringliteral">"\x9b\x75\x2e\x45\x57\x3d\x4b\x39\xf4\xdb\xd3\x32\x3c\xab\x82\xbf\x63\x32\x6b\xfb"</span>),00260                 HashTestTuple(<span class="stringliteral">"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"</span>, <span class="stringliteral">"\x52\x78\x32\x43\xc1\x69\x7b\xdb\xe1\x6d\x37\xf9\x7f\x68\xf0\x83\x25\xdc\x15\x28"</span>, 15625)00261         };00262 00263         <a class="code" href="class_r_i_p_e_m_d160.html">RIPEMD160</a> md;00264 00265         cout &lt;&lt; <span class="stringliteral">"\nRIPEMD-160 validation suite running...\n\n"</span>;00266         <span class="keywordflow">return</span> HashModuleTest(md, testSet, <span class="keyword">sizeof</span>(testSet)/<span class="keyword">sizeof</span>(testSet[0]));00267 }00268 00269 <span class="keywordtype">bool</span> ValidateHAVAL()00270 {00271         HashTestTuple testSet[] = 00272         {00273                 HashTestTuple(<span class="stringliteral">""</span>, <span class="stringliteral">"\xC6\x8F\x39\x91\x3F\x90\x1F\x3D\xDF\x44\xC7\x07\x35\x7A\x7D\x70"</span>),00274                 HashTestTuple(<span class="stringliteral">"a"</span>, <span class="stringliteral">"\x4D\xA0\x8F\x51\x4A\x72\x75\xDB\xC4\xCE\xCE\x4A\x34\x73\x85\x98\x39\x83\xA8\x30"</span>),00275                 HashTestTuple(<span class="stringliteral">"HAVAL"</span>, <span class="stringliteral">"\x0C\x13\x96\xD7\x77\x26\x89\xC4\x67\x73\xF3\xDA\xAC\xA4\xEF\xA9\x82\xAD\xBF\xB2\xF1\x46\x7E\xEA"</span>),00276                 HashTestTuple(<span class="stringliteral">"0123456789"</span>, <span class="stringliteral">"\xBE\xBD\x78\x16\xF0\x9B\xAE\xEC\xF8\x90\x3B\x1B\x9B\xC6\x72\xD9\xFA\x42\x8E\x46\x2B\xA6\x99\xF8\x14\x84\x15\x29"</span>),00277                 HashTestTuple(<span class="stringliteral">"abcdefghijklmnopqrstuvwxyz"</span>, <span class="stringliteral">"\xC9\xC7\xD8\xAF\xA1\x59\xFD\x9E\x96\x5C\xB8\x3F\xF5\xEE\x6F\x58\xAE\xDA\x35\x2C\x0E\xFF\x00\x55\x48\x15\x3A\x61\x55\x1C\x38\xEE"</span>),00278                 HashTestTuple(<span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span>, <span class="stringliteral">"\xB4\x5C\xB6\xE6\x2F\x2B\x13\x20\xE4\xF8\xF1\xB0\xB2\x73\xD4\x5A\xDD\x47\xC3\x21\xFD\x23\x99\x9D\xCF\x40\x3A\xC3\x76\x36\xD9\x63"</span>)00279         };00280 00281         <span class="keywordtype">bool</span> pass=<span class="keyword">true</span>;00282 00283         cout &lt;&lt; <span class="stringliteral">"\nHAVAL validation suite running...\n\n"</span>;00284         {00285                 <a class="code" href="class_h_a_v_a_l3.html">HAVAL3</a> md(16);00286                 pass = HashModuleTest(md, testSet+0, 1) &amp;&amp; pass;00287         }00288         {00289                 <a class="code" href="class_h_a_v_a_l3.html">HAVAL3</a> md(20);00290                 pass = HashModuleTest(md, testSet+1, 1) &amp;&amp; pass;00291         }00292         {00293                 <a class="code" href="class_h_a_v_a_l4.html">HAVAL4</a> md(24);00294                 pass = HashModuleTest(md, testSet+2, 1) &amp;&amp; pass;00295         }00296         {00297                 <a class="code" href="class_h_a_v_a_l4.html">HAVAL4</a> md(28);00298                 pass = HashModuleTest(md, testSet+3, 1) &amp;&amp; pass;00299         }00300         {00301                 <a class="code" href="class_h_a_v_a_l5.html">HAVAL5</a> md(32);00302                 pass = HashModuleTest(md, testSet+4, 1) &amp;&amp; pass;00303         }00304         {00305                 <a class="code" href="class_h_a_v_a_l5.html">HAVAL5</a> md(32);00306                 pass = HashModuleTest(md, testSet+5, 1) &amp;&amp; pass;00307         }00308 00309         <span class="keywordflow">return</span> pass;00310 }00311 00312 <span class="keywordtype">bool</span> ValidatePanama()00313 {00314         <span class="keywordtype">bool</span> pass=<span class="keyword">true</span>;00315 00316         <span class="comment">// the first two test vectors are from the reference implementation</span>00317         <span class="comment">// the rest were generated by Crypto++</span>00318         HashTestTuple testSet1[] = 00319         {

⌨️ 快捷键说明

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