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

📄 validat2_8cpp-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00372 00373 <span class="keywordtype">bool</span> ValidateDLIES()00374 {00375         cout &lt;&lt; <span class="stringliteral">"\nDLIES validation suite running...\n\n"</span>;00376         <span class="keywordtype">bool</span> pass = <span class="keyword">true</span>;00377         {00378                 <a class="code" href="class_file_source.html">FileSource</a> fc(<span class="stringliteral">"dlie1024.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00379                 <a class="code" href="struct_d_l_i_e_s.html">DLIES&lt;&gt;</a>::Decryptor privC(fc);00380                 <a class="code" href="struct_d_l_i_e_s.html">DLIES&lt;&gt;</a>::Encryptor pubC(privC);00381                 pass = CryptoSystemValidate(privC, pubC) &amp;&amp; pass;00382         }00383         {00384                 cout &lt;&lt; <span class="stringliteral">"Generating new encryption key..."</span> &lt;&lt; endl;00385                 <a class="code" href="struct_d_l_i_e_s.html">DLIES&lt;&gt;</a>::GroupParameters gp;00386                 gp.GenerateRandomWithKeySize(GlobalRNG(), 128);00387                 <a class="code" href="struct_d_l_i_e_s.html">DLIES&lt;&gt;</a>::Decryptor decryptor;00388                 decryptor.AccessKey().GenerateRandom(GlobalRNG(), gp);00389                 <a class="code" href="struct_d_l_i_e_s.html">DLIES&lt;&gt;</a>::Encryptor encryptor(decryptor);00390 00391                 pass = CryptoSystemValidate(decryptor, encryptor) &amp;&amp; pass;00392         }00393         <span class="keywordflow">return</span> pass;00394 }00395 00396 <span class="keywordtype">bool</span> ValidateNR()00397 {00398         cout &lt;&lt; <span class="stringliteral">"\nNR validation suite running...\n\n"</span>;00399         <span class="keywordtype">bool</span> pass = <span class="keyword">true</span>;00400         {00401                 <a class="code" href="class_file_source.html">FileSource</a> f(<span class="stringliteral">"nr2048.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00402                 <a class="code" href="struct_n_r.html">NR&lt;SHA&gt;</a>::Signer privS(f);00403                 privS.AccessKey().Precompute();00404                 <a class="code" href="struct_n_r.html">NR&lt;SHA&gt;</a>::Verifier pubS(privS);00405 00406                 pass = SignatureValidate(privS, pubS) &amp;&amp; pass;00407         }00408         {00409                 cout &lt;&lt; <span class="stringliteral">"Generating new signature key..."</span> &lt;&lt; endl;00410                 <a class="code" href="struct_n_r.html">NR&lt;SHA&gt;</a>::Signer privS(GlobalRNG(), 256);00411                 <a class="code" href="struct_n_r.html">NR&lt;SHA&gt;</a>::Verifier pubS(privS);00412 00413                 pass = SignatureValidate(privS, pubS) &amp;&amp; pass;00414         }00415         <span class="keywordflow">return</span> pass;00416 }00417 00418 <span class="keywordtype">bool</span> ValidateDSA(<span class="keywordtype">bool</span> thorough)00419 {00420         cout &lt;&lt; <span class="stringliteral">"\nDSA validation suite running...\n\n"</span>;00421 00422         <span class="keywordtype">bool</span> pass = <span class="keyword">true</span>, fail;00423         {00424         <a class="code" href="class_file_source.html">FileSource</a> fs(<span class="stringliteral">"dsa512.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>());00425         <a class="code" href="struct_g_d_s_a.html">GDSA&lt;SHA&gt;</a>::Signer priv(fs);00426         priv.AccessKey().Precompute(16);00427         <a class="code" href="struct_g_d_s_a.html">GDSA&lt;SHA&gt;</a>::Verifier pub(priv);00428 00429         byte seed[]={0xd5, 0x01, 0x4e, 0x4b, 0x60, 0xef, 0x2b, 0xa8, 0xb6, 0x21, 00430                                  0x1b, 0x40, 0x62, 0xba, 0x32, 0x24, 0xe0, 0x42, 0x7d, 0xd3};00431         <a class="code" href="class_integer.html">Integer</a> k(<span class="stringliteral">"358dad57 1462710f 50e254cf 1a376b2b deaadfbfh"</span>);00432         <a class="code" href="class_integer.html">Integer</a> h(<span class="stringliteral">"a9993e36 4706816a ba3e2571 7850c26c 9cd0d89dh"</span>);00433         byte sig[]={0x8b, 0xac, 0x1a, 0xb6, 0x64, 0x10, 0x43, 0x5c, 0xb7, 0x18,00434                                 0x1f, 0x95, 0xb1, 0x6a, 0xb9, 0x7c, 0x92, 0xb3, 0x41, 0xc0, 00435                                 0x41, 0xe2, 0x34, 0x5f, 0x1f, 0x56, 0xdf, 0x24, 0x58, 0xf4, 00436                                 0x26, 0xd1, 0x55, 0xb4, 0xba, 0x2d, 0xb6, 0xdc, 0xd8, 0xc8};00437         <a class="code" href="class_integer.html">Integer</a> r(sig, 20);00438         <a class="code" href="class_integer.html">Integer</a> s(sig+20, 20);00439 00440         <a class="code" href="class_integer.html">Integer</a> pGen, qGen, rOut, sOut;00441         <span class="keywordtype">int</span> c;00442 00443         fail = !<a class="code" href="struct_d_s_a.html#_d_s_ae1">DSA::GeneratePrimes</a>(seed, 160, c, pGen, 512, qGen);00444         fail = fail || (pGen != pub.GetKey().GetGroupParameters().GetModulus()) || (qGen != pub.GetKey().GetGroupParameters().GetSubgroupOrder());00445         pass = pass &amp;&amp; !fail;00446 00447         cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED    "</span> : <span class="stringliteral">"passed    "</span>);00448         cout &lt;&lt; <span class="stringliteral">"prime generation test\n"</span>;00449 00450         priv.GetDigestSignatureScheme().RawSign(k, h, rOut, sOut);00451         fail = (rOut != r) || (sOut != s);00452         pass = pass &amp;&amp; !fail;00453 00454         cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED    "</span> : <span class="stringliteral">"passed    "</span>);00455         cout &lt;&lt; <span class="stringliteral">"signature check against test vector\n"</span>;00456 00457         fail = !pub.VerifyMessage((byte *)<span class="stringliteral">"abc"</span>, 3, sig);00458         pass = pass &amp;&amp; !fail;00459 00460         cout &lt;&lt; (fail ? <span class="stringliteral">"FAILED    "</span> : <span class="stringliteral">"passed    "</span>);00461         cout &lt;&lt; <span class="stringliteral">"verification check against test vector\n"</span>;00462 00463         fail = pub.VerifyMessage((byte *)<span class="stringliteral">"xyz"</span>, 3, sig);00464         pass = pass &amp;&amp; !fail;00465         }00466         <a class="code" href="class_file_source.html">FileSource</a> fs1(<span class="stringliteral">"dsa1024.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>());00467         <a class="code" href="class_d_l___s_s_a.html#_d_l___s_s_aw0">DSA::Signer</a> priv(fs1);00468         <a class="code" href="class_d_l___s_s_a.html#_d_l___s_s_aw1">DSA::Verifier</a> pub(priv);00469         <a class="code" href="class_file_source.html">FileSource</a> fs2(<span class="stringliteral">"dsa1024b.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>());00470         <a class="code" href="class_d_l___s_s_a.html#_d_l___s_s_aw1">DSA::Verifier</a> pub1(fs2);00471         assert(pub.GetKey() == pub1.GetKey());00472         pass = SignatureValidate(priv, pub, thorough) &amp;&amp; pass;00473         <span class="keywordflow">return</span> pass;00474 }00475 00476 <span class="keywordtype">bool</span> ValidateLUC()00477 {00478         cout &lt;&lt; <span class="stringliteral">"\nLUC validation suite running...\n\n"</span>;00479         <span class="keywordtype">bool</span> pass=<span class="keyword">true</span>;00480 00481         {00482                 <a class="code" href="class_file_source.html">FileSource</a> f(<span class="stringliteral">"luc1024.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00483                 <a class="code" href="struct_l_u_c_s_s_a.html">LUCSSA_PKCS1v15_SHA_Signer</a> priv(f);00484                 <a class="code" href="struct_l_u_c_s_s_a.html">LUCSSA_PKCS1v15_SHA_Verifier</a> pub(priv);00485                 pass = SignatureValidate(priv, pub) &amp;&amp; pass;00486         }00487         {00488                 <a class="code" href="struct_l_u_c_e_s.html">LUCES_OAEP_SHA_Decryptor</a> priv(GlobalRNG(), 512);00489                 <a class="code" href="struct_l_u_c_e_s.html">LUCES_OAEP_SHA_Encryptor</a> pub(priv);00490                 pass = CryptoSystemValidate(priv, pub) &amp;&amp; pass;00491         }00492         <span class="keywordflow">return</span> pass;00493 }00494 00495 <span class="keywordtype">bool</span> ValidateLUC_DL()00496 {00497         cout &lt;&lt; <span class="stringliteral">"\nLUC-HMP validation suite running...\n\n"</span>;00498 00499         <a class="code" href="class_file_source.html">FileSource</a> f(<span class="stringliteral">"lucs512.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00500         <a class="code" href="struct_l_u_c___h_m_p.html">LUC_HMP&lt;SHA&gt;</a>::Signer privS(f);00501         <a class="code" href="struct_l_u_c___h_m_p.html">LUC_HMP&lt;SHA&gt;</a>::Verifier pubS(privS);00502         <span class="keywordtype">bool</span> pass = SignatureValidate(privS, pubS);00503 00504         cout &lt;&lt; <span class="stringliteral">"\nLUC-IES validation suite running...\n\n"</span>;00505 00506         <a class="code" href="class_file_source.html">FileSource</a> fc(<span class="stringliteral">"lucc512.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00507         <a class="code" href="struct_l_u_c___i_e_s.html">LUC_IES&lt;&gt;</a>::Decryptor privC(fc);00508         <a class="code" href="struct_l_u_c___i_e_s.html">LUC_IES&lt;&gt;</a>::Encryptor pubC(privC);00509         pass = CryptoSystemValidate(privC, pubC) &amp;&amp; pass;00510 00511         <span class="keywordflow">return</span> pass;00512 }00513 00514 <span class="keywordtype">bool</span> ValidateRabin()00515 {00516         cout &lt;&lt; <span class="stringliteral">"\nRabin validation suite running...\n\n"</span>;00517         <span class="keywordtype">bool</span> pass=<span class="keyword">true</span>;00518 00519         {00520                 <a class="code" href="class_file_source.html">FileSource</a> f(<span class="stringliteral">"rabi1024.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00521                 <a class="code" href="struct_rabin_p_s_s_r.html">RabinPSSR&lt;SHA&gt;</a>::Signer priv(f);00522                 <a class="code" href="struct_rabin_p_s_s_r.html">RabinPSSR&lt;SHA&gt;</a>::Verifier pub(priv);00523                 pass = SignatureValidate(priv, pub) &amp;&amp; pass;00524         }00525         {00526                 <a class="code" href="struct_rabin_e_s.html">RabinES&lt;OAEP&lt;SHA&gt;</a> &gt;::Decryptor priv(GlobalRNG(), 512);00527                 <a class="code" href="struct_rabin_e_s.html">RabinES&lt;OAEP&lt;SHA&gt;</a> &gt;::Encryptor pub(priv);00528                 pass = CryptoSystemValidate(priv, pub) &amp;&amp; pass;00529         }00530         <span class="keywordflow">return</span> pass;00531 }00532 00533 <span class="keywordtype">bool</span> ValidateRW()00534 {00535         cout &lt;&lt; <span class="stringliteral">"\nRW validation suite running...\n\n"</span>;00536 00537         <a class="code" href="class_file_source.html">FileSource</a> f(<span class="stringliteral">"rw1024.dat"</span>, <span class="keyword">true</span>, <span class="keyword">new</span> <a class="code" href="class_hex_decoder.html">HexDecoder</a>);00538         <a class="code" href="struct_r_w_s_s_a.html">RWSSA&lt;SHA&gt;</a>::Signer priv(f);00539         <a class="code" href="struct_r_w_s_s_a.html">RWSSA&lt;SHA&gt;</a>::Verifier pub(priv);00540 00541         <span class="keywordflow">return</span> SignatureValidate(priv, pub);00542 }00543 00544 <span class="comment">/*</span>00545 <span class="comment">bool ValidateBlumGoldwasser()</span>00546 <span class="comment">{</span>00547 <span class="comment">        cout &lt;&lt; "\nBlumGoldwasser validation suite running...\n\n";</span>00548 <span class="comment"></span>00549 <span class="comment">        FileSource f("blum512.dat", true, new HexDecoder);</span>00550 <span class="comment">        BlumGoldwasserPrivateKey priv(f);</span>00551 <span class="comment">        BlumGoldwasserPublicKey pub(priv);</span>00552 <span class="comment"></span>00553 <span class="comment">        return CryptoSystemValidate(priv, pub);</span>00554 <span class="comment">}</span>00555 <span class="comment">*/</span>00556 00557 <span class="keywordtype">bool</span> ValidateECP()00558 {00559         cout &lt;&lt; <span class="stringliteral">"\nECP validation suite running...\n\n"</span>;00560 

⌨️ 快捷键说明

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