📄 pubkey_8h-source.html
字号:
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> & 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> & 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> & 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> & GetPublicKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.GetPublicKey();}00471 00472 KeyClass & AccessKey() {<span class="keywordflow">return</span> m_ds.AccessKey();}00473 <span class="keyword">const</span> KeyClass & GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.GetKey();}00474 00475 <span class="keyword">const</span> KeyClass & GetTrapdoorFunction()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ds.GetTrapdoorFunction();}00476 00477 DS & AccessDigestSignatureScheme() {<span class="keywordflow">return</span> m_ds;}00478 <span class="keyword">const</span> DS & 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> <<span class="keyword">class</span> DS, <span class="keyword">class</span> H><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><PK_SignerBase<H>, DS>, <span class="keyword">public</span> <a class="code" href="class_private_key_copier.html">PrivateKeyCopier</a><typename DS::SchemeOptions>00487 {00488 <span class="keyword">const</span> <a class="code" href="class_digest_signer.html">DigestSigner</a> & 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 &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 &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> <<span class="keyword">class</span> DS, <span class="keyword">class</span> H><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><PK_VerifierBase<H>, DS>, <span class="keyword">public</span> <a class="code" href="class_public_key_copier.html">PublicKeyCopier</a><typename DS::SchemeOptions>00500 {00501 <span class="keyword">const</span> <a class="code" href="class_digest_verifier.html">DigestVerifier</a> & 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 &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> &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> <<span class="keyword">class</span> H><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 & 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> <<span class="keyword">class</span> TF, <span class="keyword">class</span> H><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><H>, <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 & GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00546 KeyClass & AccessKey() {<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00547 00548 <a class="code" href="class_private_key.html">PrivateKey</a> & 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> &rng, <a class="code" href="class_hash_transformation.html">HashTransformation</a> &messageAccumulator, byte *signature) <span class="keyword">const</span>;00552 <span class="keyword">const</span> TrapdoorFunctionBounds & 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> <<span class="keyword">class</span> TF, <span class="keyword">class</span> H><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><H>, <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 & GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00563 KeyClass & AccessKey() {<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00564 00565 <a class="code" href="class_public_key.html">PublicKey</a> & 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> &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 & GetTrapdoorFunctionBounds()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<span class="keyword">this</span>;}00573 };00574 00575 <span class="keyword">template</span> <<span class="keyword">class</span> TF, <span class="keyword">class</span> H><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 + -