📄 bench_8cpp-source.html
字号:
<a name="l00228"></a>00228 std::auto_ptr<T> obj(<a class="code" href="class_object_factory_registry.html" title="_">ObjectFactoryRegistry<T>::Registry</a>().CreateObject(factoryName));<a name="l00229"></a>00229 <span class="keywordflow">if</span> (!keyLength)<a name="l00230"></a>00230 keyLength = obj->DefaultKeyLength();<a name="l00231"></a>00231 obj->SetKey(key, keyLength, <a class="code" href="class_combined_name_value_pairs.html">CombinedNameValuePairs</a>(params, MakeParameters(<a class="code" href="namespace_name.html#9b6839240a8bdf1f5bcbebf1866f4733" title="const byte *">Name::IV</a>(), key, <span class="keyword">false</span>)));<a name="l00232"></a>00232 BenchMark(name.c_str(), *obj, g_allocatedTime);<a name="l00233"></a>00233 BenchMarkKeying(*obj, keyLength, <a class="code" href="class_combined_name_value_pairs.html">CombinedNameValuePairs</a>(params, MakeParameters(<a class="code" href="namespace_name.html#9b6839240a8bdf1f5bcbebf1866f4733" title="const byte *">Name::IV</a>(), key, <span class="keyword">false</span>)));<a name="l00234"></a>00234 }<a name="l00235"></a>00235 <a name="l00236"></a>00236 <span class="keyword">template</span> <<span class="keyword">class</span> T><a name="l00237"></a>00237 <span class="keywordtype">void</span> BenchMarkByNameKeyLess(<span class="keyword">const</span> <span class="keywordtype">char</span> *factoryName, <span class="keyword">const</span> <span class="keywordtype">char</span> *displayName=NULL, <span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html" title="interface for retrieving values given their names">NameValuePairs</a> &params = g_nullNameValuePairs, T *x=NULL)<a name="l00238"></a>00238 {<a name="l00239"></a>00239 std::string name = factoryName;<a name="l00240"></a>00240 <span class="keywordflow">if</span> (displayName)<a name="l00241"></a>00241 name = displayName;<a name="l00242"></a>00242 <a name="l00243"></a>00243 std::auto_ptr<T> obj(<a class="code" href="class_object_factory_registry.html" title="_">ObjectFactoryRegistry<T>::Registry</a>().CreateObject(factoryName));<a name="l00244"></a>00244 BenchMark(name.c_str(), *obj, g_allocatedTime);<a name="l00245"></a>00245 }<a name="l00246"></a>00246 <a name="l00247"></a>00247 <span class="keywordtype">void</span> BenchmarkAll(<span class="keywordtype">double</span> t, <span class="keywordtype">double</span> hertz)<a name="l00248"></a>00248 {<a name="l00249"></a>00249 <span class="preprocessor">#if 1</span><a name="l00250"></a>00250 <span class="preprocessor"></span> logtotal = 0;<a name="l00251"></a>00251 logcount = 0;<a name="l00252"></a>00252 g_allocatedTime = t;<a name="l00253"></a>00253 g_hertz = hertz;<a name="l00254"></a>00254 <a name="l00255"></a>00255 <span class="keyword">const</span> <span class="keywordtype">char</span> *cpb, *cpk;<a name="l00256"></a>00256 <span class="keywordflow">if</span> (g_hertz)<a name="l00257"></a>00257 {<a name="l00258"></a>00258 cpb = <span class="stringliteral">"<TH>Cycles Per Byte"</span>;<a name="l00259"></a>00259 cpk = <span class="stringliteral">"<TH>Cycles to<br>Setup Key and IV"</span>;<a name="l00260"></a>00260 cout << <span class="stringliteral">"CPU frequency of the test platform is "</span> << g_hertz << <span class="stringliteral">" Hz.\n"</span>;<a name="l00261"></a>00261 }<a name="l00262"></a>00262 <span class="keywordflow">else</span><a name="l00263"></a>00263 {<a name="l00264"></a>00264 cpb = cpk = <span class="stringliteral">""</span>;<a name="l00265"></a>00265 cout << <span class="stringliteral">"CPU frequency of the test platform was not provided.\n"</span>;<a name="l00266"></a>00266 }<a name="l00267"></a>00267 <a name="l00268"></a>00268 cout << <span class="stringliteral">"<TABLE border=1><COLGROUP><COL align=left><COL align=right><COL align=right><COL align=right><COL align=right>"</span> << endl;<a name="l00269"></a>00269 cout << <span class="stringliteral">"<THEAD><TR><TH>Algorithm<TH>MiB/Second"</span> << cpb << <span class="stringliteral">"<TH>Microseconds to<br>Setup Key and IV"</span> << cpk << endl;<a name="l00270"></a>00270 <a name="l00271"></a>00271 cout << <span class="stringliteral">"\n<TBODY style=\"background: white\">"</span>;<a name="l00272"></a>00272 BenchMarkByName<MessageAuthenticationCode>(<span class="stringliteral">"VMAC(AES)-64"</span>);<a name="l00273"></a>00273 BenchMarkByName<MessageAuthenticationCode>(<span class="stringliteral">"VMAC(AES)-128"</span>);<a name="l00274"></a>00274 BenchMarkByName<MessageAuthenticationCode>(<span class="stringliteral">"HMAC(SHA-1)"</span>);<a name="l00275"></a>00275 BenchMarkByName<MessageAuthenticationCode>(<span class="stringliteral">"Two-Track-MAC"</span>);<a name="l00276"></a>00276 BenchMarkKeyed<CBC_MAC<AES> >(<span class="stringliteral">"CBC-MAC/AES"</span>, t);<a name="l00277"></a>00277 BenchMarkKeyed<DMAC<AES> >(<span class="stringliteral">"DMAC/AES"</span>, t);<a name="l00278"></a>00278 <a name="l00279"></a>00279 cout << <span class="stringliteral">"\n<TBODY style=\"background: yellow\">"</span>;<a name="l00280"></a>00280 BenchMarkKeyless<CRC32>(<span class="stringliteral">"CRC-32"</span>, t);<a name="l00281"></a>00281 BenchMarkKeyless<Adler32>(<span class="stringliteral">"Adler-32"</span>, t);<a name="l00282"></a>00282 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"MD5"</span>);<a name="l00283"></a>00283 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"SHA-1"</span>);<a name="l00284"></a>00284 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"SHA-256"</span>);<a name="l00285"></a>00285 <span class="preprocessor">#ifdef WORD64_AVAILABLE</span><a name="l00286"></a>00286 <span class="preprocessor"></span> BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"SHA-512"</span>);<a name="l00287"></a>00287 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"Tiger"</span>);<a name="l00288"></a>00288 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"Whirlpool"</span>);<a name="l00289"></a>00289 <span class="preprocessor">#endif</span><a name="l00290"></a>00290 <span class="preprocessor"></span> BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"RIPEMD-160"</span>);<a name="l00291"></a>00291 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"RIPEMD-320"</span>);<a name="l00292"></a>00292 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"RIPEMD-128"</span>);<a name="l00293"></a>00293 BenchMarkByNameKeyLess<HashTransformation>(<span class="stringliteral">"RIPEMD-256"</span>);<a name="l00294"></a>00294 <a name="l00295"></a>00295 cout << <span class="stringliteral">"\n<TBODY style=\"background: white\">"</span>;<a name="l00296"></a>00296 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Panama-LE"</span>);<a name="l00297"></a>00297 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Panama-BE"</span>);<a name="l00298"></a>00298 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Salsa20"</span>);<a name="l00299"></a>00299 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Salsa20"</span>, 0, <span class="stringliteral">"Salsa20/12"</span>, MakeParameters(<a class="code" href="namespace_name.html#ef07deb188a711a240d95f3ccddc9e8e" title="int">Name::Rounds</a>(), 12));<a name="l00300"></a>00300 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Salsa20"</span>, 0, <span class="stringliteral">"Salsa20/8"</span>, MakeParameters(<a class="code" href="namespace_name.html#ef07deb188a711a240d95f3ccddc9e8e" title="int">Name::Rounds</a>(), 8));<a name="l00301"></a>00301 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Sosemanuk"</span>);<a name="l00302"></a>00302 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"MARC4"</span>);<a name="l00303"></a>00303 BenchMarkKeyed<SEAL<BigEndian>::Encryption>(<span class="stringliteral">"SEAL-3.0-BE"</span>, t);<a name="l00304"></a>00304 BenchMarkKeyed<SEAL<LittleEndian>::Encryption>(<span class="stringliteral">"SEAL-3.0-LE"</span>, t);<a name="l00305"></a>00305 BenchMarkKeyed<WAKE_OFB<BigEndian>::Encryption>(<span class="stringliteral">"WAKE-OFB-BE"</span>, t);<a name="l00306"></a>00306 BenchMarkKeyed<WAKE_OFB<LittleEndian>::Encryption>(<span class="stringliteral">"WAKE-OFB-LE"</span>, t);<a name="l00307"></a>00307 <a name="l00308"></a>00308 cout << <span class="stringliteral">"\n<TBODY style=\"background: yellow\">"</span>;<a name="l00309"></a>00309 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"AES/ECB"</span>, 16);<a name="l00310"></a>00310 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"AES/ECB"</span>, 24);<a name="l00311"></a>00311 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"AES/ECB"</span>, 32);<a name="l00312"></a>00312 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"AES/CTR"</span>, 16);<a name="l00313"></a>00313 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"AES/OFB"</span>, 16);<a name="l00314"></a>00314 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"AES/CFB"</span>, 16);<a name="l00315"></a>00315 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"AES/CBC"</span>, 16);<a name="l00316"></a>00316 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Camellia/ECB"</span>, 16);<a name="l00317"></a>00317 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"Camellia/ECB"</span>, 32);<a name="l00318"></a>00318 BenchMarkKeyed<Twofish::Encryption>(<span class="stringliteral">"Twofish"</span>, t);<a name="l00319"></a>00319 BenchMarkKeyed<Serpent::Encryption>(<span class="stringliteral">"Serpent"</span>, t);<a name="l00320"></a>00320 BenchMarkKeyed<CAST256::Encryption>(<span class="stringliteral">"CAST-256"</span>, t);<a name="l00321"></a>00321 BenchMarkKeyed<RC6::Encryption>(<span class="stringliteral">"RC6"</span>, t);<a name="l00322"></a>00322 BenchMarkKeyed<MARS::Encryption>(<span class="stringliteral">"MARS"</span>, t);<a name="l00323"></a>00323 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"SHACAL-2/ECB"</span>, 16);<a name="l00324"></a>00324 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"SHACAL-2/ECB"</span>, 64);<a name="l00325"></a>00325 BenchMarkKeyed<DES::Encryption>(<span class="stringliteral">"DES"</span>, t);<a name="l00326"></a>00326 BenchMarkKeyed<DES_XEX3::Encryption>(<span class="stringliteral">"DES-XEX3"</span>, t);<a name="l00327"></a>00327 BenchMarkKeyed<DES_EDE3::Encryption>(<span class="stringliteral">"DES-EDE3"</span>, t);<a name="l00328"></a>00328 BenchMarkKeyed<IDEA::Encryption>(<span class="stringliteral">"IDEA"</span>, t);<a name="l00329"></a>00329 BenchMarkKeyed<RC5::Encryption>(<span class="stringliteral">"RC5 (r=16)"</span>, t);<a name="l00330"></a>00330 BenchMarkKeyed<Blowfish::Encryption>(<span class="stringliteral">"Blowfish"</span>, t);<a name="l00331"></a>00331 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"TEA/ECB"</span>);<a name="l00332"></a>00332 BenchMarkByName<SymmetricCipher>(<span class="stringliteral">"XTEA/ECB"</span>);<a name="l00333"></a>00333 BenchMarkKeyed<CAST128::Encryption>(<span class="stringliteral">"CAST-128"</span>, t);<a name="l00334"></a>00334 BenchMarkKeyed<SKIPJACK::Encryption>(<span class="stringliteral">"SKIPJACK"</span>, t);<a name="l00335"></a>00335 cout << <span class="stringliteral">"</TABLE>"</span> << endl;<a name="l00336"></a>00336 <a name="l00337"></a>00337 BenchmarkAll2(t, hertz);<a name="l00338"></a>00338 <a name="l00339"></a>00339 cout << <span class="stringliteral">"Throughput Geometric Average: "</span> << setiosflags(ios::fixed) << exp(logtotal/logcount) << endl;<a name="l00340"></a>00340 <a name="l00341"></a>00341 time_t endTime = time(NULL);<a name="l00342"></a>00342 cout << <span class="stringliteral">"\nTest ended at "</span> << asctime(localtime(&endTime));<a name="l00343"></a>00343 <span class="preprocessor">#endif</span><a name="l00344"></a>00344 <span class="preprocessor"></span>}</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 1 11:11:19 2007 for Crypto++ by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -