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

📄 class_d_h2.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Crypto++: DH2 class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.2 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div><h1>DH2 Class Reference</h1><code>#include &lt;<a class="el" href="dh2_8h-source.html">dh2.h</a>&gt;</code><p><p>Inheritance diagram for DH2:<p><center><img src="class_d_h2.png" usemap="#DH2_map" border="0" alt=""></center><map name="DH2_map"><area href="class_authenticated_key_agreement_domain.html" alt="AuthenticatedKeyAgreementDomain" shape="rect" coords="0,224,214,248"><area href="class_key_agreement_algorithm.html" alt="KeyAgreementAlgorithm" shape="rect" coords="0,168,214,192"><area href="class_asymmetric_algorithm.html" alt="AsymmetricAlgorithm" shape="rect" coords="0,112,214,136"><area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="0,56,214,80"><area href="class_clonable.html" alt="Clonable" shape="rect" coords="0,0,214,24"></map><a href="class_d_h2-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2><a href="http://www.weidai.com/scan-mirror/ka.html#DH2">Unified Diffie-Hellman</a> <p><p>Definition at line <a class="el" href="dh2_8h-source.html#l00012">12</a> of file <a class="el" href="dh2_8h-source.html">dh2.h</a>.<table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2a0" doxytag="DH2::DH2"></a>&nbsp;</td><td class="memItemRight" valign=bottom><b>DH2</b> (const <a class="el" href="class_simple_key_agreement_domain.html">SimpleKeyAgreementDomain</a> &amp;domain)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2a1" doxytag="DH2::DH2"></a>&nbsp;</td><td class="memItemRight" valign=bottom><b>DH2</b> (const <a class="el" href="class_simple_key_agreement_domain.html">SimpleKeyAgreementDomain</a> &amp;staticDomain, const <a class="el" href="class_simple_key_agreement_domain.html">SimpleKeyAgreementDomain</a> &amp;ephemeralDomain)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2a2" doxytag="DH2::AgreedValueLength"></a>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a2">AgreedValueLength</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return length of agreed value produced <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2a3" doxytag="DH2::StaticPrivateKeyLength"></a>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a3">StaticPrivateKeyLength</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return length of static private keys in this domain <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2a4" doxytag="DH2::StaticPublicKeyLength"></a>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a4">StaticPublicKeyLength</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return length of static public keys in this domain <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a5">GenerateStaticPrivateKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate static private key </em> <a href="#_d_h2a5"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a6">GenerateStaticPublicKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *privateKey, byte *publicKey) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate static public key </em> <a href="#_d_h2a6"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a7">GenerateStaticKeyPair</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey, byte *publicKey) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate private/public key pair </em> <a href="#_d_h2a7"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2a8" doxytag="DH2::EphemeralPrivateKeyLength"></a>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a8">EphemeralPrivateKeyLength</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return length of ephemeral private keys in this domain <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2a9" doxytag="DH2::EphemeralPublicKeyLength"></a>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a9">EphemeralPublicKeyLength</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return length of ephemeral public keys in this domain <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a10">GenerateEphemeralPrivateKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate ephemeral private key </em> <a href="#_d_h2a10"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a11">GenerateEphemeralPublicKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *privateKey, byte *publicKey) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate ephemeral public key </em> <a href="#_d_h2a11"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a12">GenerateEphemeralKeyPair</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey, byte *publicKey) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate private/public key pair </em> <a href="#_d_h2a12"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_d_h2a13">Agree</a> (byte *agreedValue, const byte *staticPrivateKey, const byte *ephemeralPrivateKey, const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey=true) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">derive agreed value from your private keys and couterparty's public keys, return false in case of failure </em> <a href="#_d_h2a13"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha21" doxytag="DH2::AccessMaterial"></a><a class="el" href="class_crypto_material.html">CryptoMaterial</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_x_t_r___d_ha21">AccessMaterial</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns a reference to the crypto material used by this object <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha22" doxytag="DH2::GetMaterial"></a>const <a class="el" href="class_crypto_material.html">CryptoMaterial</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_x_t_r___d_ha22">GetMaterial</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns a const reference to the crypto material used by this object <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_simple_key_agreement_domaina9" doxytag="DH2::AccessCryptoParameters"></a>virtual <a class="el" href="class_crypto_parameters.html">CryptoParameters</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>AccessCryptoParameters</b> ()=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha23" doxytag="DH2::GetCryptoParameters"></a>virtual const <a class="el" href="class_crypto_parameters.html">CryptoParameters</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>GetCryptoParameters</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha24" doxytag="DH2::BERDecode"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_x_t_r___d_ha24">BERDecode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for backwards compatibility, calls <a class="el" href="class_asymmetric_algorithm.html#_asymmetric_algorithma0">AccessMaterial()</a>.Load(bt) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_verifier_with_recovery_templatea23" doxytag="DH2::DEREncode"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_verifier_with_recovery_templatea23">DEREncode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for backwards compatibility, calls <a class="el" href="class_asymmetric_algorithm.html#_asymmetric_algorithma1">GetMaterial()</a>.Save(bt) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_zlib_decompressora17" doxytag="DH2::AlgorithmName"></a>virtual std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_zlib_decompressora17">AlgorithmName</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns name of this algorithm, not universally implemented yet <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_zlib_decompressora18" doxytag="DH2::Clone"></a>virtual <a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_d_h2.html#_zlib_decompressora18">Clone</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this is not implemented by most classes yet <br><br></td></tr><tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2p0" doxytag="DH2::d1"></a>const <a class="el" href="class_simple_key_agreement_domain.html">SimpleKeyAgreementDomain</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>d1</b></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_d_h2p1" doxytag="DH2::d2"></a>const <a class="el" href="class_simple_key_agreement_domain.html">SimpleKeyAgreementDomain</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><b>d2</b></td></tr></table><hr><h2>Member Function Documentation</h2><a name="_d_h2a5" doxytag="DH2::GenerateStaticPrivateKey"></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void DH2::GenerateStaticPrivateKey </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>rng</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>byte *&nbsp;</td>          <td class="mdname" nowrap> <em>privateKey</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const<code> [inline, virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>generate static private key <p><dl compact><dt><b>Precondition:</b></dt><dd>size of privateKey == PrivateStaticKeyLength() </dd></dl><p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#_authenticated_key_agreement_domaina3">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="dh2_8h-source.html#l00027">27</a> of file <a class="el" href="dh2_8h-source.html">dh2.h</a>.<p>References <a class="el" href="class_simple_key_agreement_domain.html#_simple_key_agreement_domaina3">SimpleKeyAgreementDomain::GeneratePrivateKey()</a>.    </td>  </tr></table><a name="_d_h2a6" doxytag="DH2::GenerateStaticPublicKey"></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void DH2::GenerateStaticPublicKey </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>rng</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>const byte *&nbsp;</td>          <td class="mdname" nowrap> <em>privateKey</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>byte *&nbsp;</td>          <td class="mdname" nowrap> <em>publicKey</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const<code> [inline, virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>generate static public key <p><dl compact><dt><b>Precondition:</b></dt><dd>size of publicKey == PublicStaticKeyLength() </dd></dl><p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#_authenticated_key_agreement_domaina4">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="dh2_8h-source.html#l00029">29</a> of file <a class="el" href="dh2_8h-source.html">dh2.h</a>.<p>References <a class="el" href="class_simple_key_agreement_domain.html#_simple_key_agreement_domaina4">SimpleKeyAgreementDomain::GeneratePublicKey()</a>.    </td>  </tr></table><a name="_d_h2a7" doxytag="DH2::GenerateStaticKeyPair"></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void DH2::GenerateStaticKeyPair </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>rng</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>byte *&nbsp;</td>          <td class="mdname" nowrap> <em>privateKey</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>byte *&nbsp;</td>          <td class="mdname" nowrap> <em>publicKey</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const<code> [inline, virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td>

⌨️ 快捷键说明

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