📄 class_d_h2.html
字号:
<tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte * </td> <td class="paramname"> <em>publicKey</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline, virtual]</code></td> </tr> </table></div><div class="memdoc"><p>generate private/public key pair <p><dl class="note" compact><dt><b>Note:</b></dt><dd>equivalent to calling <a class="el" href="class_d_h2.html#05de579e63f552a103208bd7fdd23440" title="generate static private key">GenerateStaticPrivateKey()</a> and then <a class="el" href="class_d_h2.html#7151a0d3e0ab520aef0b61c70f59a50a" title="generate static public key">GenerateStaticPublicKey()</a> </dd></dl><p>Reimplemented from <a class="el" href="class_authenticated_key_agreement_domain.html#e2c306a6582c6e592ecb2c13abfd7c9f">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="dh2_8h-source.html#l00033">33</a> of file <a class="el" href="dh2_8h-source.html">dh2.h</a>.</div></div><p><a class="anchor" name="b0e10e700f4461005b386a53ca37e7f8"></a><!-- doxytag: member="DH2::GenerateEphemeralPrivateKey" ref="b0e10e700f4461005b386a53ca37e7f8" args="(RandomNumberGenerator &rng, byte *privateKey) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void DH2::GenerateEphemeralPrivateKey </td> <td>(</td> <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> & </td> <td class="paramname"> <em>rng</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte * </td> <td class="paramname"> <em>privateKey</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline, virtual]</code></td> </tr> </table></div><div class="memdoc"><p>generate ephemeral private key <p><dl class="pre" compact><dt><b>Precondition:</b></dt><dd>size of privateKey == PrivateEphemeralKeyLength() </dd></dl><p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#b6280d3bf8ad1dd2aa976910b81502f8">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="dh2_8h-source.html#l00040">40</a> of file <a class="el" href="dh2_8h-source.html">dh2.h</a>.</div></div><p><a class="anchor" name="b8f69e52f50794ca51774f671cfa45da"></a><!-- doxytag: member="DH2::GenerateEphemeralPublicKey" ref="b8f69e52f50794ca51774f671cfa45da" args="(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void DH2::GenerateEphemeralPublicKey </td> <td>(</td> <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> & </td> <td class="paramname"> <em>rng</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const byte * </td> <td class="paramname"> <em>privateKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte * </td> <td class="paramname"> <em>publicKey</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline, virtual]</code></td> </tr> </table></div><div class="memdoc"><p>generate ephemeral public key <p><dl class="pre" compact><dt><b>Precondition:</b></dt><dd>size of publicKey == PublicEphemeralKeyLength() </dd></dl><p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#9d1bc83a77f44af6616da42c33b3bc49">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="dh2_8h-source.html#l00042">42</a> of file <a class="el" href="dh2_8h-source.html">dh2.h</a>.</div></div><p><a class="anchor" name="4b5a84bf47e9a18348521b5a9c752cce"></a><!-- doxytag: member="DH2::GenerateEphemeralKeyPair" ref="4b5a84bf47e9a18348521b5a9c752cce" args="(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void DH2::GenerateEphemeralKeyPair </td> <td>(</td> <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> & </td> <td class="paramname"> <em>rng</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte * </td> <td class="paramname"> <em>privateKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte * </td> <td class="paramname"> <em>publicKey</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [inline, virtual]</code></td> </tr> </table></div><div class="memdoc"><p>generate private/public key pair <p><dl class="note" compact><dt><b>Note:</b></dt><dd>equivalent to calling <a class="el" href="class_d_h2.html#b0e10e700f4461005b386a53ca37e7f8" title="generate ephemeral private key">GenerateEphemeralPrivateKey()</a> and then <a class="el" href="class_d_h2.html#b8f69e52f50794ca51774f671cfa45da" title="generate ephemeral public key">GenerateEphemeralPublicKey()</a> </dd></dl><p>Reimplemented from <a class="el" href="class_authenticated_key_agreement_domain.html#18f1fc5fa590be704d53759e44fba093">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="dh2_8h-source.html#l00044">44</a> of file <a class="el" href="dh2_8h-source.html">dh2.h</a>.</div></div><p><a class="anchor" name="561ed549ab2f287bd5f72be06e217290"></a><!-- doxytag: member="DH2::Agree" ref="561ed549ab2f287bd5f72be06e217290" args="(byte *agreedValue, const byte *staticPrivateKey, const byte *ephemeralPrivateKey, const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey=true) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool DH2::Agree </td> <td>(</td> <td class="paramtype">byte * </td> <td class="paramname"> <em>agreedValue</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const byte * </td> <td class="paramname"> <em>staticPrivateKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const byte * </td> <td class="paramname"> <em>ephemeralPrivateKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const byte * </td> <td class="paramname"> <em>staticOtherPublicKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const byte * </td> <td class="paramname"> <em>ephemeralOtherPublicKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>validateStaticOtherPublicKey</em> = <code>true</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [virtual]</code></td> </tr> </table></div><div class="memdoc"><p>derive agreed value from your private keys and couterparty's public keys, return false in case of failure <p><dl class="note" compact><dt><b>Note:</b></dt><dd>The ephemeral public key will always be validated. If you have previously validated the static public key, use validateStaticOtherPublicKey=false to save time. </dd></dl><dl class="pre" compact><dt><b>Precondition:</b></dt><dd>size of agreedValue == <a class="el" href="class_d_h2.html#437daa34e67386be339f77fab6290ed2" title="return length of agreed value produced">AgreedValueLength()</a> <p>length of staticPrivateKey == <a class="el" href="class_d_h2.html#6010ec3b801a1c203e734330fc7fd2a9" title="return length of static private keys in this domain">StaticPrivateKeyLength()</a> <p>length of ephemeralPrivateKey == <a class="el" href="class_d_h2.html#88a83b16397f2048cb71a20327b189c9" title="return length of ephemeral private keys in this domain">EphemeralPrivateKeyLength()</a> <p>length of staticOtherPublicKey == <a class="el" href="class_d_h2.html#d6ad579222bf0d7a4605b9744738a535" title="return length of static public keys in this domain">StaticPublicKeyLength()</a> <p>length of ephemeralOtherPublicKey == <a class="el" href="class_d_h2.html#b0e942c0a0291484f5d07071613be6d9" title="return length of ephemeral public keys in this domain">EphemeralPublicKeyLength()</a> </dd></dl><p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#c9808fb56eacee0c08a9bbd22fe2c98e">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="dh2_8cpp-source.html#l00013">13</a> of file <a class="el" href="dh2_8cpp-source.html">dh2.cpp</a>.<p>References <a class="el" href="class_simple_key_agreement_domain.html#732339ca730408cca7b1191fc32eb39e">SimpleKeyAgreementDomain::Agree()</a>, <a class="el" href="class_simple_key_agreement_domain.html#fbf257cf0f75e66070e2636939e9c2ca">SimpleKeyAgreementDomain::AgreedValueLength()</a>, <a class="el" href="dh2_8h-source.html#l00053">d1</a>, and <a class="el" href="dh2_8h-source.html#l00053">d2</a>.</div></div><p><hr>The documentation for this class was generated from the following files:<ul><li><a class="el" href="dh2_8h-source.html">dh2.h</a><li><a class="el" href="dh2_8cpp-source.html">dh2.cpp</a></ul><hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 1 11:11:33 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 + -