📄 validat3_8cpp-source.html
字号:
<a name="l00182"></a>00182 <a name="l00183"></a>00183 <span class="keywordtype">bool</span> ValidateSHA2()<a name="l00184"></a>00184 {<a name="l00185"></a>00185 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a> testSet256[] = <a name="l00186"></a>00186 {<a name="l00187"></a>00187 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00188"></a>00188 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00189"></a>00189 };<a name="l00190"></a>00190 <a name="l00191"></a>00191 <span class="keywordtype">bool</span> pass = <span class="keyword">true</span>;<a name="l00192"></a>00192 <a name="l00193"></a>00193 cout << <span class="stringliteral">"\nSHA-256 validation suite running...\n\n"</span>;<a name="l00194"></a>00194 <a class="code" href="class_s_h_a256.html" title="implements the SHA-256 standard">SHA256</a> sha256;<a name="l00195"></a>00195 pass = HashModuleTest(sha256, testSet256, <span class="keyword">sizeof</span>(testSet256)/<span class="keyword">sizeof</span>(testSet256[0])) && pass;<a name="l00196"></a>00196 <a name="l00197"></a>00197 cout << <span class="stringliteral">"\nSHA-384 validation suite running...\n\n"</span>;<a name="l00198"></a>00198 <a name="l00199"></a>00199 <span class="preprocessor">#ifdef WORD64_AVAILABLE</span><a name="l00200"></a>00200 <span class="preprocessor"></span> <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a> testSet384[] = <a name="l00201"></a>00201 {<a name="l00202"></a>00202 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00203"></a>00203 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00204"></a>00204 };<a name="l00205"></a>00205 <a name="l00206"></a>00206 <a class="code" href="class_s_h_a384.html" title="implements the SHA-384 standard">SHA384</a> sha384;<a name="l00207"></a>00207 pass = HashModuleTest(sha384, testSet384, <span class="keyword">sizeof</span>(testSet384)/<span class="keyword">sizeof</span>(testSet384[0])) && pass;<a name="l00208"></a>00208 <span class="preprocessor">#else</span><a name="l00209"></a>00209 <span class="preprocessor"></span> cout << <span class="stringliteral">"word64 not available, skipping SHA-384 validation."</span> << endl;<a name="l00210"></a>00210 <span class="preprocessor">#endif</span><a name="l00211"></a>00211 <span class="preprocessor"></span><a name="l00212"></a>00212 cout << <span class="stringliteral">"\nSHA-512 validation suite running...\n\n"</span>;<a name="l00213"></a>00213 <a name="l00214"></a>00214 <span class="preprocessor">#ifdef WORD64_AVAILABLE</span><a name="l00215"></a>00215 <span class="preprocessor"></span> <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a> testSet512[] = <a name="l00216"></a>00216 {<a name="l00217"></a>00217 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00218"></a>00218 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00219"></a>00219 };<a name="l00220"></a>00220 <a name="l00221"></a>00221 <a class="code" href="class_s_h_a512.html" title="implements the SHA-512 standard">SHA512</a> sha512;<a name="l00222"></a>00222 pass = HashModuleTest(sha512, testSet512, <span class="keyword">sizeof</span>(testSet512)/<span class="keyword">sizeof</span>(testSet512[0])) && pass;<a name="l00223"></a>00223 <span class="preprocessor">#else</span><a name="l00224"></a>00224 <span class="preprocessor"></span> cout << <span class="stringliteral">"word64 not available, skipping SHA-512 validation."</span> << endl;<a name="l00225"></a>00225 <span class="preprocessor">#endif</span><a name="l00226"></a>00226 <span class="preprocessor"></span><a name="l00227"></a>00227 <span class="keywordflow">return</span> pass;<a name="l00228"></a>00228 }<a name="l00229"></a>00229 <a name="l00230"></a>00230 <span class="keywordtype">bool</span> ValidateTiger()<a name="l00231"></a>00231 {<a name="l00232"></a>00232 cout << <span class="stringliteral">"\nTiger validation suite running...\n\n"</span>;<a name="l00233"></a>00233 <a name="l00234"></a>00234 <span class="preprocessor">#ifdef WORD64_AVAILABLE</span><a name="l00235"></a>00235 <span class="preprocessor"></span> <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a> testSet[] =<a name="l00236"></a>00236 {<a name="l00237"></a>00237 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00238"></a>00238 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00239"></a>00239 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00240"></a>00240 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00241"></a>00241 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00242"></a>00242 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00243"></a>00243 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00244"></a>00244 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00245"></a>00245 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>)<a name="l00246"></a>00246 };<a name="l00247"></a>00247 <a name="l00248"></a>00248 <a class="code" href="class_tiger.html" title="Tiger">Tiger</a> tiger;<a name="l00249"></a>00249 <a name="l00250"></a>00250 <span class="keywordflow">return</span> HashModuleTest(tiger, testSet, <span class="keyword">sizeof</span>(testSet)/<span class="keyword">sizeof</span>(testSet[0]));<a name="l00251"></a>00251 <span class="preprocessor">#else</span><a name="l00252"></a>00252 <span class="preprocessor"></span> cout << <span class="stringliteral">"word64 not available, skipping Tiger validation."</span> << endl;<a name="l00253"></a>00253 <span class="keywordflow">return</span> <span class="keyword">true</span>;<a name="l00254"></a>00254 <span class="preprocessor">#endif</span><a name="l00255"></a>00255 <span class="preprocessor"></span>}<a name="l00256"></a>00256 <a name="l00257"></a>00257 <span class="keywordtype">bool</span> ValidateRIPEMD()<a name="l00258"></a>00258 {<a name="l00259"></a>00259 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a> testSet128[] = <a name="l00260"></a>00260 {<a name="l00261"></a>00261 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">""</span>, <span class="stringliteral">"\xcd\xf2\x62\x13\xa1\x50\xdc\x3e\xcb\x61\x0f\x18\xf6\xb3\x8b\x46"</span>),<a name="l00262"></a>00262 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"a"</span>, <span class="stringliteral">"\x86\xbe\x7a\xfa\x33\x9d\x0f\xc7\xcf\xc7\x85\xe7\x2f\x57\x8d\x33"</span>),<a name="l00263"></a>00263 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"abc"</span>, <span class="stringliteral">"\xc1\x4a\x12\x19\x9c\x66\xe4\xba\x84\x63\x6b\x0f\x69\x14\x4c\x77"</span>),<a name="l00264"></a>00264 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"message digest"</span>, <span class="stringliteral">"\x9e\x32\x7b\x3d\x6e\x52\x30\x62\xaf\xc1\x13\x2d\x7d\xf9\xd1\xb8"</span>),<a name="l00265"></a>00265 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"abcdefghijklmnopqrstuvwxyz"</span>, <span class="stringliteral">"\xfd\x2a\xa6\x07\xf7\x1d\xc8\xf5\x10\x71\x49\x22\xb3\x71\x83\x4e"</span>),<a name="l00266"></a>00266 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"</span>, <span class="stringliteral">"\xa1\xaa\x06\x89\xd0\xfa\xfa\x2d\xdc\x22\xe8\x8b\x49\x13\x3a\x06"</span>),<a name="l00267"></a>00267 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"</span>, <span class="stringliteral">"\xd1\xe9\x59\xeb\x17\x9c\x91\x1f\xae\xa4\x62\x4c\x60\xc5\xc7\x02"</span>),<a name="l00268"></a>00268 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"12345678901234567890123456789012345678901234567890123456789012345678901234567890"</span>, <span class="stringliteral">"\x3f\x45\xef\x19\x47\x32\xc2\xdb\xb2\xc4\xa2\xc7\x69\x79\x5f\xa3"</span>),<a name="l00269"></a>00269 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<span class="stringliteral">"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"</span>, <span class="stringliteral">"\x4a\x7f\x57\x23\xf9\x54\xeb\xa1\x21\x6c\x9d\x8f\x63\x20\x43\x1f"</span>, 15625)<a name="l00270"></a>00270 };<a name="l00271"></a>00271 <a name="l00272"></a>00272 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a> testSet160[] = <a name="l00273"></a>00273 {<a name="l00274"></a>00274 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00275"></a>00275 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00276"></a>00276 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00277"></a>00277 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00278"></a>00278 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00279"></a>00279 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00280"></a>00280 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00281"></a>00281 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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>),<a name="l00282"></a>00282 <a class="code" href="struct_hash_test_tuple.html">HashTestTuple</a>(<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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -