📄 class_m_q_v___domain.html
字号:
</tr> <tr> <td></td> <td></td> <td class="md" nowrap>const byte * </td> <td class="mdname" nowrap> <em>staticPrivateKey</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const byte * </td> <td class="mdname" nowrap> <em>ephemeralPrivateKey</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const byte * </td> <td class="mdname" nowrap> <em>staticOtherPublicKey</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const byte * </td> <td class="mdname" nowrap> <em>ephemeralOtherPublicKey</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>bool </td> <td class="mdname" nowrap> <em>validateStaticOtherPublicKey</em> = true</td> </tr> <tr> <td></td> <td class="md">) </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> </td> <td><p>derive agreed value from your private keys and couterparty's public keys, return false in case of failure <p><dl 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 compact><dt><b>Precondition:</b></dt><dd>size of agreedValue == <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina9">AgreedValueLength()</a> <p>length of staticPrivateKey == <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina10">StaticPrivateKeyLength()</a> <p>length of ephemeralPrivateKey == <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina14">EphemeralPrivateKeyLength()</a> <p>length of staticOtherPublicKey == <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina11">StaticPublicKeyLength()</a> <p>length of ephemeralOtherPublicKey == <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina15">EphemeralPublicKeyLength()</a></dd></dl><p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#_authenticated_key_agreement_domaina11">AuthenticatedKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="mqv_8h-source.html#l00080">80</a> of file <a class="el" href="mqv_8h-source.html">mqv.h</a>.<p>References <a class="el" href="integer_8cpp-source.html#l02808">Integer::BitCount()</a>, DL_GroupParameters< T >::ConvertElementToInteger(), DL_GroupParameters< T >::DecodeElement(), DL_GroupParameters< T >::EncodeElement(), <a class="el" href="pubkey_8h-source.html#l00679">DL_GroupParameters< T >::ExponentiateElement()</a>, <a class="el" href="pubkey_8h-source.html#l00692">DL_GroupParameters< T >::GetCofactor()</a>, DL_GroupParameters< T >::GetSubgroupOrder(), DL_GroupParameters< T >::IsIdentity(), <a class="el" href="integer_8cpp-source.html#l02603">Integer::Power2()</a>, DL_GroupParameters< T >::SimultaneousExponentiate(), and <a class="el" href="mqv_8h-source.html#l00046">MQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >::StaticPrivateKeyLength()</a>. </td> </tr></table><a name="_m_q_v___domaina19" doxytag="MQV_Domain::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 AuthenticatedKeyAgreementDomain::GenerateStaticKeyPair </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> & </td> <td class="mdname" nowrap> <em>rng</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>byte * </td> <td class="mdname" nowrap> <em>privateKey</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>byte * </td> <td class="mdname" nowrap> <em>publicKey</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"> const<code> [virtual, inherited]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>generate private/public key pair <p><dl compact><dt><b>Note:</b></dt><dd>equivalent to calling <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina12">GenerateStaticPrivateKey()</a> and then <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina13">GenerateStaticPublicKey()</a> </dd></dl><p>Reimplemented in <a class="el" href="class_d_h2.html#_d_h2a7">DH2</a>.<p>Definition at line <a class="el" href="cryptlib_8cpp-source.html#l00651">651</a> of file <a class="el" href="cryptlib_8cpp-source.html">cryptlib.cpp</a>.<p>References <a class="el" href="class_authenticated_key_agreement_domain.html#_authenticated_key_agreement_domaina3">AuthenticatedKeyAgreementDomain::GenerateStaticPrivateKey()</a>, and <a class="el" href="class_authenticated_key_agreement_domain.html#_authenticated_key_agreement_domaina4">AuthenticatedKeyAgreementDomain::GenerateStaticPublicKey()</a>. </td> </tr></table><a name="_m_q_v___domaina20" doxytag="MQV_Domain::GenerateEphemeralKeyPair"></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 AuthenticatedKeyAgreementDomain::GenerateEphemeralKeyPair </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> & </td> <td class="mdname" nowrap> <em>rng</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>byte * </td> <td class="mdname" nowrap> <em>privateKey</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>byte * </td> <td class="mdname" nowrap> <em>publicKey</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"> const<code> [virtual, inherited]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>generate private/public key pair <p><dl compact><dt><b>Note:</b></dt><dd>equivalent to calling <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina16">GenerateEphemeralPrivateKey()</a> and then <a class="el" href="class_m_q_v___domain.html#_m_q_v___domaina17">GenerateEphemeralPublicKey()</a> </dd></dl><p>Reimplemented in <a class="el" href="class_d_h2.html#_d_h2a12">DH2</a>.<p>Definition at line <a class="el" href="cryptlib_8cpp-source.html#l00657">657</a> of file <a class="el" href="cryptlib_8cpp-source.html">cryptlib.cpp</a>.<p>References <a class="el" href="class_authenticated_key_agreement_domain.html#_authenticated_key_agreement_domaina8">AuthenticatedKeyAgreementDomain::GenerateEphemeralPrivateKey()</a>, and <a class="el" href="class_authenticated_key_agreement_domain.html#_authenticated_key_agreement_domaina9">AuthenticatedKeyAgreementDomain::GenerateEphemeralPublicKey()</a>. </td> </tr></table><hr>The documentation for this class was generated from the following file:<ul><li><a class="el" href="mqv_8h-source.html">mqv.h</a></ul><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:35:12 2003 for Crypto++ by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -