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

📄 pubkey_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00462 00463         <span class="comment">// PublicKeyAlgorithm or PrivateKeyAlgorithm</span>00464         std::string AlgorithmName()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.AlgorithmName();}00465 00466         <a class="code" href="class_private_key.html">PrivateKey</a> &amp; AccessPrivateKey() {<span class="keywordflow">return</span> m_ds.AccessPrivateKey();}00467         <span class="keyword">const</span> <a class="code" href="class_private_key.html">PrivateKey</a> &amp; GetPrivateKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.GetPrivateKey();}00468 00469         <a class="code" href="class_public_key.html">PublicKey</a> &amp; AccessPublicKey() {<span class="keywordflow">return</span> m_ds.AccessPublicKey();}00470         <span class="keyword">const</span> <a class="code" href="class_public_key.html">PublicKey</a> &amp; GetPublicKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.GetPublicKey();}00471 00472         KeyClass &amp; AccessKey() {<span class="keywordflow">return</span> m_ds.AccessKey();}00473         <span class="keyword">const</span> KeyClass &amp; GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.GetKey();}00474 00475         <span class="keyword">const</span> KeyClass &amp; GetTrapdoorFunction()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.GetTrapdoorFunction();}00476 00477         DS &amp; AccessDigestSignatureScheme() {<span class="keywordflow">return</span> m_ds;}00478         <span class="keyword">const</span> DS &amp; GetDigestSignatureScheme()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds;}00479 00480 <span class="keyword">protected</span>:00481         DS m_ds;00482 };00483 <span class="comment"></span>00484 <span class="comment">//! .</span>00485 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> DS, <span class="keyword">class</span> H&gt;<a name="l00486"></a><a class="code" href="class_p_k___signer_impl.html">00486</a> <span class="keyword">class </span><a class="code" href="class_p_k___signer_impl.html">PK_SignerImpl</a> : <span class="keyword">public</span> <a class="code" href="class_p_k___signature_scheme_impl.html">PK_SignatureSchemeImpl</a>&lt;PK_SignerBase&lt;H&gt;, DS&gt;, <span class="keyword">public</span> <a class="code" href="class_private_key_copier.html">PrivateKeyCopier</a>&lt;typename DS::SchemeOptions&gt;00487 {00488         <span class="keyword">const</span> <a class="code" href="class_digest_signer.html">DigestSigner</a> &amp; GetDigestSignatureSchemeInterface()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds;}00489 <span class="keyword">public</span>:00490         <span class="comment">// PrivateKeyCopier</span>00491         <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> DS::SchemeOptions::PublicKey &amp;key)<span class="keyword"> const</span>00492 <span class="keyword">                </span>{m_ds.CopyKeyInto(key);}00493         <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> DS::SchemeOptions::PrivateKey &amp;key)<span class="keyword"> const</span>00494 <span class="keyword">                </span>{m_ds.CopyKeyInto(key);}00495 };00496 <span class="comment"></span>00497 <span class="comment">//! .</span>00498 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> DS, <span class="keyword">class</span> H&gt;<a name="l00499"></a><a class="code" href="class_p_k___verifier_impl.html">00499</a> <span class="keyword">class </span><a class="code" href="class_p_k___verifier_impl.html">PK_VerifierImpl</a> : <span class="keyword">public</span> <a class="code" href="class_p_k___signature_scheme_impl.html">PK_SignatureSchemeImpl</a>&lt;PK_VerifierBase&lt;H&gt;, DS&gt;, <span class="keyword">public</span> <a class="code" href="class_public_key_copier.html">PublicKeyCopier</a>&lt;typename DS::SchemeOptions&gt;00500 {00501         <span class="keyword">const</span> <a class="code" href="class_digest_verifier.html">DigestVerifier</a> &amp; GetDigestSignatureSchemeInterface()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds;}00502 <span class="keyword">public</span>:00503         <span class="comment">// PublicKeyCopier</span>00504         <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> DS::SchemeOptions::PublicKey &amp;key)<span class="keyword"> const</span>00505 <span class="keyword">                </span>{m_ds.CopyKeyInto(key);}00506 };00507 00508 <span class="comment">// ********************************************************</span>00509 <span class="comment"></span>00510 <span class="comment">//! .</span><a name="l00511"></a><a class="code" href="class_signature_encoding_method_with_recovery.html">00511</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_signature_encoding_method_with_recovery.html">SignatureEncodingMethodWithRecovery</a> : <span class="keyword">public</span> HashTransformationWithDefaultTruncation00512 {00513 <span class="keyword">public</span>:<a name="l00514"></a><a class="code" href="class_signature_encoding_method_with_recovery.html#_signature_encoding_method_with_recoverya0">00514</a>         <span class="keywordtype">void</span> <a class="code" href="class_signature_encoding_method_with_recovery.html#_signature_encoding_method_with_recoverya0">Final</a>(byte *digest) {}00515         <span class="keyword">virtual</span> <span class="keywordtype">void</span> Encode(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *representative) =0;00516         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_signature_encoding_method_with_recovery.html#_signature_encoding_method_with_recoverya2">Verify</a>(<span class="keyword">const</span> byte *representative) =0;00517         <span class="keyword">virtual</span> <a class="code" href="struct_decoding_result.html">DecodingResult</a> Decode(byte *message) =0;00518         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> MaximumRecoverableLength() <span class="keyword">const</span> =0;00519 };00520 <span class="comment"></span>00521 <span class="comment">//! .</span>00522 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> H&gt;<a name="l00523"></a><a class="code" href="class_signature_system_with_recovery_base_template.html">00523</a> <span class="keyword">class </span><a class="code" href="class_signature_system_with_recovery_base_template.html">SignatureSystemWithRecoveryBaseTemplate</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="class_p_k___signature_scheme_with_recovery.html">PK_SignatureSchemeWithRecovery</a>00524 {00525 <span class="keyword">public</span>:<a name="l00526"></a><a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea9">00526</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea9">SignatureLength</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetTrapdoorFunctionBounds().<a class="code" href="class_trapdoor_function_bounds.html#_trapdoor_function_boundsa3">MaxPreimage</a>().<a class="code" href="class_integer.html#_integerz41_3">ByteCount</a>();}<a name="l00527"></a><a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea10">00527</a>         <a class="code" href="class_hash_transformation.html">HashTransformation</a> * <a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea10">NewMessageAccumulator</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <span class="keyword">new</span> H(PaddedBlockBitLength());}<a name="l00528"></a><a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea11">00528</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea11">MaximumRecoverableLength</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> H::MaximumRecoverableLength(PaddedBlockBitLength());}<a name="l00529"></a><a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea12">00529</a>         <span class="keywordtype">bool</span> <a class="code" href="class_signature_system_with_recovery_base_template.html#_verifier_with_recovery_templatea12">AllowLeftoverMessage</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> H::AllowLeftoverMessage();}00530 00531 <span class="keyword">protected</span>:00532         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PaddedBlockByteLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> BitsToBytes(PaddedBlockBitLength());}00533         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> PaddedBlockBitLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetTrapdoorFunctionBounds().<a class="code" href="class_trapdoor_function_bounds.html#_trapdoor_function_boundsa2">ImageBound</a>().<a class="code" href="class_integer.html#_integerz41_2">BitCount</a>()-1;}00534 00535         <span class="keyword">virtual</span> <span class="keyword">const</span> TrapdoorFunctionBounds &amp; GetTrapdoorFunctionBounds() <span class="keyword">const</span> =0;00536 };00537 <span class="comment"></span>00538 <span class="comment">//! .</span>00539 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> TF, <span class="keyword">class</span> H&gt;<a name="l00540"></a><a class="code" href="class_signer_with_recovery_template.html">00540</a> <span class="keyword">class </span><a class="code" href="class_signer_with_recovery_template.html">SignerWithRecoveryTemplate</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="class_signature_system_with_recovery_base_template.html">SignatureSystemWithRecoveryBaseTemplate</a>&lt;H&gt;, <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="class_p_k___signer_with_recovery.html">PK_SignerWithRecovery</a>, <span class="keyword">public</span> TF00541 {00542 <span class="keyword">public</span>:00543         <span class="keyword">typedef</span> TF KeyClass;00544 00545         <span class="keyword">const</span> KeyClass &amp; GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00546         KeyClass &amp; AccessKey() {<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00547 00548         <a class="code" href="class_private_key.html">PrivateKey</a> &amp; AccessPrivateKey() {<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00549 00550         <a class="code" href="class_signer_with_recovery_template.html">SignerWithRecoveryTemplate</a>() {}00551         <span class="keywordtype">void</span> <a class="code" href="class_signer_with_recovery_template.html#_signer_with_recovery_templatea4">SignAndRestart</a>(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <a class="code" href="class_hash_transformation.html">HashTransformation</a> &amp;messageAccumulator, byte *signature) <span class="keyword">const</span>;00552         <span class="keyword">const</span> TrapdoorFunctionBounds &amp; GetTrapdoorFunctionBounds()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00553 };00554 <span class="comment"></span>00555 <span class="comment">//! .</span>00556 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> TF, <span class="keyword">class</span> H&gt;<a name="l00557"></a><a class="code" href="class_verifier_with_recovery_template.html">00557</a> <span class="keyword">class </span><a class="code" href="class_verifier_with_recovery_template.html">VerifierWithRecoveryTemplate</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="class_signature_system_with_recovery_base_template.html">SignatureSystemWithRecoveryBaseTemplate</a>&lt;H&gt;, <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="class_p_k___verifier_with_recovery.html">PK_VerifierWithRecovery</a>, <span class="keyword">public</span> TF00558 {00559 <span class="keyword">public</span>:00560         <span class="keyword">typedef</span> TF KeyClass;00561 00562         <span class="keyword">const</span> KeyClass &amp; GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00563         KeyClass &amp; AccessKey() {<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00564 00565         <a class="code" href="class_public_key.html">PublicKey</a> &amp; AccessPublicKey() {<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00566 00567         <a class="code" href="class_verifier_with_recovery_template.html">VerifierWithRecoveryTemplate</a>() {}00568         <span class="keywordtype">bool</span> <a class="code" href="class_verifier_with_recovery_template.html#_verifier_with_recovery_templatea4">VerifyAndRestart</a>(<a class="code" href="class_hash_transformation.html">HashTransformation</a> &amp;messageAccumulator, <span class="keyword">const</span> byte *sig) <span class="keyword">const</span>;<a name="l00569"></a><a class="code" href="class_verifier_with_recovery_template.html#_verifier_with_recovery_templatea5">00569</a>         <span class="keywordtype">bool</span> <a class="code" href="class_verifier_with_recovery_template.html#_verifier_with_recovery_templatea5">SignatureUpfrontForRecovery</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <span class="keyword">true</span>;}00570         <a class="code" href="class_hash_transformation.html">HashTransformation</a> * <a class="code" href="class_verifier_with_recovery_template.html#_verifier_with_recovery_templatea6">NewRecoveryAccumulator</a>(<span class="keyword">const</span> byte *signature) <span class="keyword">const</span>;00571         <a class="code" href="struct_decoding_result.html">DecodingResult</a> <a class="code" href="class_verifier_with_recovery_template.html#_verifier_with_recovery_templatea7">Recover</a>(byte *recoveredMessage, <a class="code" href="class_hash_transformation.html">HashTransformation</a> *recoveryAccumulator, <span class="keyword">const</span> byte *signature) <span class="keyword">const</span>;00572         <span class="keyword">const</span> TrapdoorFunctionBounds &amp; GetTrapdoorFunctionBounds()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00573 };00574 00575 <span class="keyword">template</span> &lt;<span class="keyword">class</span> TF, <span class="keyword">class</span> H&gt;<a name="l00576"></a><a class="code" href="class_signer_with_recovery_template.html#_signer_with_recovery_templatea4">00576</a> <span class="keywordtype">void</span> <a class="code" href="class_sig

⌨️ 快捷键说明

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