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

📄 validat1_8cpp-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00154                 pass = <span class="keyword">false</span>;00155         }00156         cout &lt;&lt; <span class="stringliteral">"sizeof(byte) == "</span> &lt;&lt; <span class="keyword">sizeof</span>(byte) &lt;&lt; endl;00157 00158         <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(word16) == 2)00159                 cout &lt;&lt; <span class="stringliteral">"passed:  "</span>;00160         <span class="keywordflow">else</span>00161         {00162                 cout &lt;&lt; <span class="stringliteral">"FAILED:  "</span>;00163                 pass = <span class="keyword">false</span>;00164         }00165         cout &lt;&lt; <span class="stringliteral">"sizeof(word16) == "</span> &lt;&lt; <span class="keyword">sizeof</span>(word16) &lt;&lt; endl;00166 00167         <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(word32) == 4)00168                 cout &lt;&lt; <span class="stringliteral">"passed:  "</span>;00169         <span class="keywordflow">else</span>00170         {00171                 cout &lt;&lt; <span class="stringliteral">"FAILED:  "</span>;00172                 pass = <span class="keyword">false</span>;00173         }00174         cout &lt;&lt; <span class="stringliteral">"sizeof(word32) == "</span> &lt;&lt; <span class="keyword">sizeof</span>(word32) &lt;&lt; endl;00175 00176 <span class="preprocessor">#ifdef WORD64_AVAILABLE</span>00177 <span class="preprocessor"></span>        <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(word64) == 8)00178                 cout &lt;&lt; <span class="stringliteral">"passed:  "</span>;00179         <span class="keywordflow">else</span>00180         {00181                 cout &lt;&lt; <span class="stringliteral">"FAILED:  "</span>;00182                 pass = <span class="keyword">false</span>;00183         }00184         cout &lt;&lt; <span class="stringliteral">"sizeof(word64) == "</span> &lt;&lt; <span class="keyword">sizeof</span>(word64) &lt;&lt; endl;00185 <span class="preprocessor">#else</span>00186 <span class="preprocessor"></span>        <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(dword) &gt;= 8)00187         {00188                 cout &lt;&lt; <span class="stringliteral">"FAILED:  sizeof(dword) &gt;= 8, but WORD64_AVAILABLE not defined"</span> &lt;&lt; endl;00189                 pass = <span class="keyword">false</span>;00190         }00191         <span class="keywordflow">else</span>00192                 cout &lt;&lt; <span class="stringliteral">"passed:  word64 not available"</span> &lt;&lt; endl;00193 <span class="preprocessor">#endif</span>00194 <span class="preprocessor"></span>00195         <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(dword) == 2*<span class="keyword">sizeof</span>(word))00196                 cout &lt;&lt; <span class="stringliteral">"passed:  "</span>;00197         <span class="keywordflow">else</span>00198         {00199                 cout &lt;&lt; <span class="stringliteral">"FAILED:  "</span>;00200                 pass = <span class="keyword">false</span>;00201         }00202         cout &lt;&lt; <span class="stringliteral">"sizeof(word) == "</span> &lt;&lt; <span class="keyword">sizeof</span>(word) &lt;&lt; <span class="stringliteral">", sizeof(dword) == "</span> &lt;&lt; <span class="keyword">sizeof</span>(dword) &lt;&lt; endl;00203 00204         dword test = (dword(1)&lt;&lt;WORD_BITS) + 2;00205         <span class="keywordflow">if</span> (HIGH_WORD(test) == 1 &amp;&amp; LOW_WORD(test) == 2)00206                 cout &lt;&lt; <span class="stringliteral">"passed:  "</span>;00207         <span class="keywordflow">else</span>00208         {00209                 cout &lt;&lt; <span class="stringliteral">"FAILED:  "</span>;00210                 pass = <span class="keyword">false</span>;00211         }00212         cout &lt;&lt; <span class="stringliteral">"HIGH_WORD() and LOW_WORD() macros\n"</span>;00213 00214         <span class="keywordflow">if</span> (!pass)00215         {00216                 cout &lt;&lt; <span class="stringliteral">"Some critical setting in config.h is in error.  Please fix it and recompile."</span> &lt;&lt; endl;00217                 abort();00218         }00219         <span class="keywordflow">return</span> pass;00220 }00221 00222 <span class="keywordtype">bool</span> TestOS_RNG()00223 {00224         <span class="keywordtype">bool</span> pass = <span class="keyword">true</span>;00225 00226 <span class="preprocessor">#ifdef BLOCKING_RNG_AVAILABLE</span>00227 <span class="preprocessor"></span>        {00228                 cout &lt;&lt; <span class="stringliteral">"\nTesting operating system provided blocking random number generator...\n\n"</span>;00229 00230                 <a class="code" href="class_blocking_rng.html">BlockingRng</a> rng;00231                 <a class="code" href="class_array_sink.html">ArraySink</a> *sink;00232                 <a class="code" href="class_random_number_source.html">RandomNumberSource</a> test(rng, 100000, <span class="keyword">false</span>, <span class="keyword">new</span> <a class="code" href="class_deflator.html">Deflator</a>(sink=<span class="keyword">new</span> <a class="code" href="class_array_sink.html">ArraySink</a>(NULL,0)));00233                 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> total=0, length=0;00234                 time_t t = time(NULL), t1 = 0;00235 00236                 <span class="comment">// check that it doesn't take too long to generate a reasonable amount of randomness</span>00237                 <span class="keywordflow">while</span> (total &lt; 16 &amp;&amp; (t1 &lt; 10 || total*8 &gt; t1))00238                 {00239                         test.<a class="code" href="class_source.html#_windows_pipe_sourcea14">Pump</a>(1);00240                         total += 1;00241                         t1 = time(NULL) - t;00242                 }00243 00244                 <span class="keywordflow">if</span> (total &lt; 16)00245                 {00246                         cout &lt;&lt; <span class="stringliteral">"FAILED:"</span>;00247                         pass = <span class="keyword">false</span>;00248                 }00249                 <span class="keywordflow">else</span>00250                         cout &lt;&lt; <span class="stringliteral">"passed:"</span>;00251                 cout &lt;&lt; <span class="stringliteral">"  it took "</span> &lt;&lt; t1 &lt;&lt; <span class="stringliteral">" seconds to generate "</span> &lt;&lt; total &lt;&lt; <span class="stringliteral">" bytes"</span> &lt;&lt; endl;00252 00253                 <span class="keywordflow">if</span> (t1 &lt; 2)00254                 {00255                         <span class="comment">// that was fast, are we really blocking?</span>00256                         <span class="comment">// first exhaust the extropy reserve</span>00257                         t = time(NULL);00258                         <span class="keywordflow">while</span> (time(NULL) - t &lt; 2)00259                         {00260                                 test.<a class="code" href="class_source.html#_windows_pipe_sourcea14">Pump</a>(1);00261                                 total += 1;00262                         }00263 00264                         <span class="comment">// if it generates too many bytes in a certain amount of time,</span>00265                         <span class="comment">// something's probably wrong</span>00266                         t = time(NULL);00267                         <span class="keywordflow">while</span> (time(NULL) - t &lt; 2)00268                         {00269                                 test.<a class="code" href="class_source.html#_windows_pipe_sourcea14">Pump</a>(1);00270                                 total += 1;00271                                 length += 1;00272                         }00273                         <span class="keywordflow">if</span> (length &gt; 1024)00274                         {00275                                 cout &lt;&lt; <span class="stringliteral">"FAILED:"</span>;00276                                 pass = <span class="keyword">false</span>;00277                         }00278                         <span class="keywordflow">else</span>00279                                 cout &lt;&lt; <span class="stringliteral">"passed:"</span>;00280                         cout &lt;&lt; <span class="stringliteral">"  it generated "</span> &lt;&lt; length &lt;&lt; <span class="stringliteral">" bytes in "</span> &lt;&lt; time(NULL) - t &lt;&lt; <span class="stringliteral">" seconds"</span> &lt;&lt; endl;00281                 }00282 00283                 test.<a class="code" href="class_filter.html#_zlib_decompressora8">AttachedTransformation</a>()-&gt;<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz1_7">MessageEnd</a>();00284 00285                 <span class="keywordflow">if</span> (sink-&gt;<a class="code" href="class_array_sink.html#_array_xor_sinka4">TotalPutLength</a>() &lt; total)00286                 {00287                         cout &lt;&lt; <span class="stringliteral">"FAILED:"</span>;00288                         pass = <span class="keyword">false</span>;00289                 }00290                 <span class="keywordflow">else</span>00291                         cout &lt;&lt; <span class="stringliteral">"passed:"</span>;00292                 cout &lt;&lt; <span class="stringliteral">"  "</span> &lt;&lt; total &lt;&lt; <span class="stringliteral">" generated bytes compressed to "</span> &lt;&lt; sink-&gt;<a class="code" href="class_array_sink.html#_array_xor_sinka4">TotalPutLength</a>() &lt;&lt; <span class="stringliteral">" bytes by DEFLATE"</span> &lt;&lt; endl;00293         }00294 <span class="preprocessor">#else</span>00295 <span class="preprocessor"></span>        cout &lt;&lt; <span class="stringliteral">"\nNo operating system provided blocking random number generator, skipping test."</span> &lt;&lt; endl;00296 <span class="preprocessor">#endif</span>00297 <span class="preprocessor"></span>00298 <span class="preprocessor">#ifdef NONBLOCKING_RNG_AVAILABLE</span>00299 <span class="preprocessor"></span>        {00300                 cout &lt;&lt; <span class="stringliteral">"\nTesting operating system provided nonblocking random number generator...\n\n"</span>;00301 00302                 <a class="code" href="class_nonblocking_rng.html">NonblockingRng</a> rng;00303                 <a class="code" href="class_array_sink.html">ArraySink</a> *sink;00304                 <a class="code" href="class_random_number_source.html">RandomNumberSource</a> test(rng, 100000, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_deflator.html">Deflator</a>(sink=<span class="keyword">new</span> <a class="code" href="class_array_sink.html">ArraySink</a>(NULL, 0)));00305                 00306                 <span class="keywordflow">if</span> (sink-&gt;<a class="code" href="class_array_sink.html#_array_xor_sinka4">TotalPutLength</a>() &lt; 100000)00307                 {00308                         cout &lt;&lt; <span class="stringliteral">"FAILED:"</span>;00309                         pass = <span class="keyword">false</span>;00310                 }00311                 <span class="keywordflow">else</span>00312                         cout &lt;&lt; <span class="stringliteral">"passed:"</span>;00313                 cout &lt;&lt; <span class="stringliteral">"  100000 generated bytes compressed to "</span> &lt;&lt; sink-&gt;<a class="code" href="class_array_sink.html#_array_xor_sinka4">TotalPutLength</a>() &lt;&lt; <span class="stringliteral">" bytes by DEFLATE"</span> &lt;&lt; endl;

⌨️ 快捷键说明

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