📄 class_m_q_v___domain.html
字号:
<div class="memproto"><div class="memtemplate">template<class GROUP_PARAMETERS, class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>< GROUP_PARAMETERS, COFACTOR_OPTION >::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> [inline, 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_m_q_v___domain.html#6558a699673c7de656379ef801e3bae1" title="return length of agreed value produced">AgreedValueLength()</a> <p>length of staticPrivateKey == <a class="el" href="class_m_q_v___domain.html#95a8aed92bc010a5b048902bcc30da37" title="return length of static private keys in this domain">StaticPrivateKeyLength()</a> <p>length of ephemeralPrivateKey == <a class="el" href="class_m_q_v___domain.html#2e8c585ba17f8eb0ddf10cb2c6c4b0dc" title="return length of ephemeral private keys in this domain">EphemeralPrivateKeyLength()</a> <p>length of staticOtherPublicKey == <a class="el" href="class_m_q_v___domain.html#c2623ab1d98b3de87b35be50bc1e797f" title="return length of static public keys in this domain">StaticPublicKeyLength()</a> <p>length of ephemeralOtherPublicKey == <a class="el" href="class_m_q_v___domain.html#071369fe7462d070cbdf0521b8fb5edd" 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="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#l03054">Integer::BitCount()</a>, <a class="el" href="pubkey_8h-source.html#l01427">COMPATIBLE_COFACTOR_MULTIPLICTION</a>, DL_GroupParameters< T >::ConvertElementToInteger(), DL_GroupParameters< T >::DecodeElement(), <a class="el" href="integer_8cpp-source.html#l03730">Integer::Divide()</a>, DL_GroupParameters< T >::EncodeElement(), <a class="el" href="pubkey_8h-source.html#l00580">DL_GroupParameters< T >::ExponentiateElement()</a>, <a class="el" href="pubkey_8h-source.html#l00593">DL_GroupParameters< T >::GetCofactor()</a>, DL_GroupParameters< T >::GetSubgroupOrder(), DL_GroupParameters< T >::IsIdentity(), <a class="el" href="pubkey_8h-source.html#l01427">NO_COFACTOR_MULTIPLICTION</a>, <a class="el" href="integer_8cpp-source.html#l02846">Integer::Power2()</a>, and DL_GroupParameters< T >::SimultaneousExponentiate().</div></div><p><a class="anchor" name="e2c306a6582c6e592ecb2c13abfd7c9f"></a><!-- doxytag: member="MQV_Domain::GenerateStaticKeyPair" ref="e2c306a6582c6e592ecb2c13abfd7c9f" args="(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void AuthenticatedKeyAgreementDomain::GenerateStaticKeyPair </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> [virtual, inherited]</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_authenticated_key_agreement_domain.html#00d9b12028e9ecb61af6d0f312965c6f" title="generate static private key">GenerateStaticPrivateKey()</a> and then <a class="el" href="class_authenticated_key_agreement_domain.html#853885a901ac7c4f8c51fd177df5d96c" title="generate static public key">GenerateStaticPublicKey()</a> </dd></dl><p>Reimplemented in <a class="el" href="class_d_h2.html#a4a447f81fcdcc656fe4fc5b6e99dc2e">DH2</a>.<p>Definition at line <a class="el" href="cryptlib_8cpp-source.html#l00707">707</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#00d9b12028e9ecb61af6d0f312965c6f">AuthenticatedKeyAgreementDomain::GenerateStaticPrivateKey()</a>, and <a class="el" href="class_authenticated_key_agreement_domain.html#853885a901ac7c4f8c51fd177df5d96c">AuthenticatedKeyAgreementDomain::GenerateStaticPublicKey()</a>.</div></div><p><a class="anchor" name="18f1fc5fa590be704d53759e44fba093"></a><!-- doxytag: member="MQV_Domain::GenerateEphemeralKeyPair" ref="18f1fc5fa590be704d53759e44fba093" args="(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void AuthenticatedKeyAgreementDomain::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> [virtual, inherited]</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_authenticated_key_agreement_domain.html#b6280d3bf8ad1dd2aa976910b81502f8" title="generate ephemeral private key">GenerateEphemeralPrivateKey()</a> and then <a class="el" href="class_authenticated_key_agreement_domain.html#9d1bc83a77f44af6616da42c33b3bc49" title="generate ephemeral public key">GenerateEphemeralPublicKey()</a> </dd></dl><p>Reimplemented in <a class="el" href="class_d_h2.html#4b5a84bf47e9a18348521b5a9c752cce">DH2</a>.<p>Definition at line <a class="el" href="cryptlib_8cpp-source.html#l00713">713</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#b6280d3bf8ad1dd2aa976910b81502f8">AuthenticatedKeyAgreementDomain::GenerateEphemeralPrivateKey()</a>, and <a class="el" href="class_authenticated_key_agreement_domain.html#9d1bc83a77f44af6616da42c33b3bc49">AuthenticatedKeyAgreementDomain::GenerateEphemeralPublicKey()</a>.</div></div><p><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="text-align: right;"><small>Generated on Fri Jun 1 11:11:42 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 + -