Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 0a67b807a02637f2cae68649d519a89d > files > 1218

libcryptopp-devel-7.0.0-1.mga7.armv7hl.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crypto++: MQV_Domain&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crypto++
   &#160;<span id="projectnumber">7.0</span>
   </div>
   <div id="projectbrief">Free&nbsp;C&#43;&#43;&nbsp;class&nbsp;library&nbsp;of&nbsp;cryptographic&nbsp;schemes</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_m_q_v___domain-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">MQV_Domain&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>MQV domain for performing authenticated key agreement.  
 <a href="class_m_q_v___domain.html#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for MQV_Domain&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="class_m_q_v___domain.png" usemap="#MQV_5FDomain_3C_20GROUP_5FPARAMETERS_2C_20COFACTOR_5FOPTION_20_3E_map" alt=""/>
  <map id="MQV_5FDomain_3C_20GROUP_5FPARAMETERS_2C_20COFACTOR_5FOPTION_20_3E_map" name="MQV_5FDomain_3C_20GROUP_5FPARAMETERS_2C_20COFACTOR_5FOPTION_20_3E_map">
<area href="class_authenticated_key_agreement_domain.html" title="Interface for domains of authenticated key agreement protocols. " alt="AuthenticatedKeyAgreementDomain" shape="rect" coords="0,224,382,248"/>
<area href="class_key_agreement_algorithm.html" title="Interface for key agreement algorithms. " alt="KeyAgreementAlgorithm" shape="rect" coords="0,168,382,192"/>
<area href="class_asymmetric_algorithm.html" title="Interface for asymmetric algorithms. " alt="AsymmetricAlgorithm" shape="rect" coords="0,112,382,136"/>
<area href="class_algorithm.html" title="Interface for all crypto algorithms. " alt="Algorithm" shape="rect" coords="0,56,382,80"/>
<area href="class_clonable.html" title="Interface for cloning objects. " alt="Clonable" shape="rect" coords="0,0,382,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a4cff608458e5959a568d7436fdc3029f"><td class="memItemLeft" align="right" valign="top"><a id="a4cff608458e5959a568d7436fdc3029f"></a>
typedef GROUP_PARAMETERS&#160;</td><td class="memItemRight" valign="bottom"><b>GroupParameters</b></td></tr>
<tr class="separator:a4cff608458e5959a568d7436fdc3029f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f5dcde7c2ada9f94e2c67fd07389360"><td class="memItemLeft" align="right" valign="top"><a id="a9f5dcde7c2ada9f94e2c67fd07389360"></a>
typedef GroupParameters::Element&#160;</td><td class="memItemRight" valign="bottom"><b>Element</b></td></tr>
<tr class="separator:a9f5dcde7c2ada9f94e2c67fd07389360"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575a65a1e83cbf2981ba727f2a424fcc"><td class="memItemLeft" align="right" valign="top"><a id="a575a65a1e83cbf2981ba727f2a424fcc"></a>
typedef <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Domain</b></td></tr>
<tr class="separator:a575a65a1e83cbf2981ba727f2a424fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae2b0485e16dceb4349f434d774830431"><td class="memItemLeft" align="right" valign="top"><a id="ae2b0485e16dceb4349f434d774830431"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#ae2b0485e16dceb4349f434d774830431">MQV_Domain</a> ()</td></tr>
<tr class="memdesc:ae2b0485e16dceb4349f434d774830431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a MQV domain. <br /></td></tr>
<tr class="separator:ae2b0485e16dceb4349f434d774830431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89a6c2d98cc463ae0355c9c52d950b18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a89a6c2d98cc463ae0355c9c52d950b18">MQV_Domain</a> (const GroupParameters &amp;params)</td></tr>
<tr class="memdesc:a89a6c2d98cc463ae0355c9c52d950b18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a MQV domain.  <a href="#a89a6c2d98cc463ae0355c9c52d950b18">More...</a><br /></td></tr>
<tr class="separator:a89a6c2d98cc463ae0355c9c52d950b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c64fc7b2e78e07654f4ec77176aa0dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a2c64fc7b2e78e07654f4ec77176aa0dd">MQV_Domain</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt)</td></tr>
<tr class="memdesc:a2c64fc7b2e78e07654f4ec77176aa0dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a MQV domain.  <a href="#a2c64fc7b2e78e07654f4ec77176aa0dd">More...</a><br /></td></tr>
<tr class="separator:a2c64fc7b2e78e07654f4ec77176aa0dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f3553af8a957e127be76fee7fb8878c"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 &gt; </td></tr>
<tr class="memitem:a0f3553af8a957e127be76fee7fb8878c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a0f3553af8a957e127be76fee7fb8878c">MQV_Domain</a> (T1 v1, T2 v2)</td></tr>
<tr class="memdesc:a0f3553af8a957e127be76fee7fb8878c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a MQV domain.  <a href="#a0f3553af8a957e127be76fee7fb8878c">More...</a><br /></td></tr>
<tr class="separator:a0f3553af8a957e127be76fee7fb8878c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0d4a0d10dc7acd0265af242758c2b53"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 , class T3 &gt; </td></tr>
<tr class="memitem:aa0d4a0d10dc7acd0265af242758c2b53"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#aa0d4a0d10dc7acd0265af242758c2b53">MQV_Domain</a> (T1 v1, T2 v2, T3 v3)</td></tr>
<tr class="memdesc:aa0d4a0d10dc7acd0265af242758c2b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a MQV domain.  <a href="#aa0d4a0d10dc7acd0265af242758c2b53">More...</a><br /></td></tr>
<tr class="separator:aa0d4a0d10dc7acd0265af242758c2b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a805ea6821887fd27eab3f2210950adcd"><td class="memTemplParams" colspan="2">template&lt;class T1 , class T2 , class T3 , class T4 &gt; </td></tr>
<tr class="memitem:a805ea6821887fd27eab3f2210950adcd"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a805ea6821887fd27eab3f2210950adcd">MQV_Domain</a> (T1 v1, T2 v2, T3 v3, T4 v4)</td></tr>
<tr class="memdesc:a805ea6821887fd27eab3f2210950adcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a MQV domain.  <a href="#a805ea6821887fd27eab3f2210950adcd">More...</a><br /></td></tr>
<tr class="separator:a805ea6821887fd27eab3f2210950adcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acba0479b43a31a97b7e0b38661acd50a"><td class="memItemLeft" align="right" valign="top">const GroupParameters &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#acba0479b43a31a97b7e0b38661acd50a">GetGroupParameters</a> () const</td></tr>
<tr class="memdesc:acba0479b43a31a97b7e0b38661acd50a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the group parameters for this domain.  <a href="#acba0479b43a31a97b7e0b38661acd50a">More...</a><br /></td></tr>
<tr class="separator:acba0479b43a31a97b7e0b38661acd50a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2af02b1905ff725e7f8fb379ac64940"><td class="memItemLeft" align="right" valign="top">GroupParameters &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#aa2af02b1905ff725e7f8fb379ac64940">AccessGroupParameters</a> ()</td></tr>
<tr class="memdesc:aa2af02b1905ff725e7f8fb379ac64940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the group parameters for this domain.  <a href="#aa2af02b1905ff725e7f8fb379ac64940">More...</a><br /></td></tr>
<tr class="separator:aa2af02b1905ff725e7f8fb379ac64940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4dda134c82bac3cd13bb1b468159cde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_crypto_parameters.html">CryptoParameters</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#af4dda134c82bac3cd13bb1b468159cde">AccessCryptoParameters</a> ()</td></tr>
<tr class="memdesc:af4dda134c82bac3cd13bb1b468159cde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the crypto parameters for this domain.  <a href="#af4dda134c82bac3cd13bb1b468159cde">More...</a><br /></td></tr>
<tr class="separator:af4dda134c82bac3cd13bb1b468159cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6558a699673c7de656379ef801e3bae1"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a6558a699673c7de656379ef801e3bae1">AgreedValueLength</a> () const</td></tr>
<tr class="memdesc:a6558a699673c7de656379ef801e3bae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the size of the agreed value.  <a href="#a6558a699673c7de656379ef801e3bae1">More...</a><br /></td></tr>
<tr class="separator:a6558a699673c7de656379ef801e3bae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95a8aed92bc010a5b048902bcc30da37"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a95a8aed92bc010a5b048902bcc30da37">StaticPrivateKeyLength</a> () const</td></tr>
<tr class="memdesc:a95a8aed92bc010a5b048902bcc30da37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the size of the static private key.  <a href="#a95a8aed92bc010a5b048902bcc30da37">More...</a><br /></td></tr>
<tr class="separator:a95a8aed92bc010a5b048902bcc30da37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2623ab1d98b3de87b35be50bc1e797f"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#ac2623ab1d98b3de87b35be50bc1e797f">StaticPublicKeyLength</a> () const</td></tr>
<tr class="memdesc:ac2623ab1d98b3de87b35be50bc1e797f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the size of the static public key.  <a href="#ac2623ab1d98b3de87b35be50bc1e797f">More...</a><br /></td></tr>
<tr class="separator:ac2623ab1d98b3de87b35be50bc1e797f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39b60e2dbf9ea3028d63f0dfc81d0cfb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a39b60e2dbf9ea3028d63f0dfc81d0cfb">GenerateStaticPrivateKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey) const</td></tr>
<tr class="memdesc:a39b60e2dbf9ea3028d63f0dfc81d0cfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate static private key in this domain.  <a href="#a39b60e2dbf9ea3028d63f0dfc81d0cfb">More...</a><br /></td></tr>
<tr class="separator:a39b60e2dbf9ea3028d63f0dfc81d0cfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ce4df4bf76fe67038393e53e6dfe84d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a5ce4df4bf76fe67038393e53e6dfe84d">GenerateStaticPublicKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *privateKey, byte *publicKey) const</td></tr>
<tr class="memdesc:a5ce4df4bf76fe67038393e53e6dfe84d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a static public key from a private key in this domain.  <a href="#a5ce4df4bf76fe67038393e53e6dfe84d">More...</a><br /></td></tr>
<tr class="separator:a5ce4df4bf76fe67038393e53e6dfe84d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e8c585ba17f8eb0ddf10cb2c6c4b0dc"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a2e8c585ba17f8eb0ddf10cb2c6c4b0dc">EphemeralPrivateKeyLength</a> () const</td></tr>
<tr class="memdesc:a2e8c585ba17f8eb0ddf10cb2c6c4b0dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the size of ephemeral private key.  <a href="#a2e8c585ba17f8eb0ddf10cb2c6c4b0dc">More...</a><br /></td></tr>
<tr class="separator:a2e8c585ba17f8eb0ddf10cb2c6c4b0dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a071369fe7462d070cbdf0521b8fb5edd"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a071369fe7462d070cbdf0521b8fb5edd">EphemeralPublicKeyLength</a> () const</td></tr>
<tr class="memdesc:a071369fe7462d070cbdf0521b8fb5edd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the size of ephemeral public key.  <a href="#a071369fe7462d070cbdf0521b8fb5edd">More...</a><br /></td></tr>
<tr class="separator:a071369fe7462d070cbdf0521b8fb5edd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b07e1e10bf1d8b9f1a4644eef74ea43"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a6b07e1e10bf1d8b9f1a4644eef74ea43">GenerateEphemeralPrivateKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey) const</td></tr>
<tr class="memdesc:a6b07e1e10bf1d8b9f1a4644eef74ea43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate ephemeral private key.  <a href="#a6b07e1e10bf1d8b9f1a4644eef74ea43">More...</a><br /></td></tr>
<tr class="separator:a6b07e1e10bf1d8b9f1a4644eef74ea43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dd74c07dd93b000b48e689b30809373"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a2dd74c07dd93b000b48e689b30809373">GenerateEphemeralPublicKey</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, const byte *privateKey, byte *publicKey) const</td></tr>
<tr class="memdesc:a2dd74c07dd93b000b48e689b30809373"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate ephemeral public key.  <a href="#a2dd74c07dd93b000b48e689b30809373">More...</a><br /></td></tr>
<tr class="separator:a2dd74c07dd93b000b48e689b30809373"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a818955f5764130bb4e00f5c061d39be2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_v___domain.html#a818955f5764130bb4e00f5c061d39be2">Agree</a> (byte *agreedValue, const byte *staticPrivateKey, const byte *ephemeralPrivateKey, const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey=true) const</td></tr>
<tr class="memdesc:a818955f5764130bb4e00f5c061d39be2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derive agreed value.  <a href="#a818955f5764130bb4e00f5c061d39be2">More...</a><br /></td></tr>
<tr class="separator:a818955f5764130bb4e00f5c061d39be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_authenticated_key_agreement_domain"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_authenticated_key_agreement_domain')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_authenticated_key_agreement_domain.html">AuthenticatedKeyAgreementDomain</a></td></tr>
<tr class="memitem:aec9aa2db0d67020eb381ba0a18b30aed inherit pub_methods_class_authenticated_key_agreement_domain"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_authenticated_key_agreement_domain.html#aec9aa2db0d67020eb381ba0a18b30aed">GenerateStaticKeyPair</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey, byte *publicKey) const</td></tr>
<tr class="memdesc:aec9aa2db0d67020eb381ba0a18b30aed inherit pub_methods_class_authenticated_key_agreement_domain"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a static private/public key pair.  <a href="class_authenticated_key_agreement_domain.html#aec9aa2db0d67020eb381ba0a18b30aed">More...</a><br /></td></tr>
<tr class="separator:aec9aa2db0d67020eb381ba0a18b30aed inherit pub_methods_class_authenticated_key_agreement_domain"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade1b25546d6f8d2572a9a810164360da inherit pub_methods_class_authenticated_key_agreement_domain"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_authenticated_key_agreement_domain.html#ade1b25546d6f8d2572a9a810164360da">GenerateEphemeralKeyPair</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, byte *privateKey, byte *publicKey) const</td></tr>
<tr class="memdesc:ade1b25546d6f8d2572a9a810164360da inherit pub_methods_class_authenticated_key_agreement_domain"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate private/public key pair.  <a href="class_authenticated_key_agreement_domain.html#ade1b25546d6f8d2572a9a810164360da">More...</a><br /></td></tr>
<tr class="separator:ade1b25546d6f8d2572a9a810164360da inherit pub_methods_class_authenticated_key_agreement_domain"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_key_agreement_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_key_agreement_algorithm')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_key_agreement_algorithm.html">KeyAgreementAlgorithm</a></td></tr>
<tr class="memitem:ab9c52198ff0dd877243c9520d96beaaa inherit pub_methods_class_key_agreement_algorithm"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_crypto_material.html">CryptoMaterial</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_key_agreement_algorithm.html#ab9c52198ff0dd877243c9520d96beaaa">AccessMaterial</a> ()</td></tr>
<tr class="memdesc:ab9c52198ff0dd877243c9520d96beaaa inherit pub_methods_class_key_agreement_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a reference to Crypto Parameters.  <a href="class_key_agreement_algorithm.html#ab9c52198ff0dd877243c9520d96beaaa">More...</a><br /></td></tr>
<tr class="separator:ab9c52198ff0dd877243c9520d96beaaa inherit pub_methods_class_key_agreement_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a1eb8e141b2f26a21efed7a1d7744c9 inherit pub_methods_class_key_agreement_algorithm"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_crypto_material.html">CryptoMaterial</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_key_agreement_algorithm.html#a3a1eb8e141b2f26a21efed7a1d7744c9">GetMaterial</a> () const</td></tr>
<tr class="memdesc:a3a1eb8e141b2f26a21efed7a1d7744c9 inherit pub_methods_class_key_agreement_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a reference to Crypto Parameters.  <a href="class_key_agreement_algorithm.html#a3a1eb8e141b2f26a21efed7a1d7744c9">More...</a><br /></td></tr>
<tr class="separator:a3a1eb8e141b2f26a21efed7a1d7744c9 inherit pub_methods_class_key_agreement_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b0e622b88d0b8d319c23e4aefef414d inherit pub_methods_class_key_agreement_algorithm"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="class_crypto_parameters.html">CryptoParameters</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_key_agreement_algorithm.html#a5b0e622b88d0b8d319c23e4aefef414d">GetCryptoParameters</a> () const</td></tr>
<tr class="memdesc:a5b0e622b88d0b8d319c23e4aefef414d inherit pub_methods_class_key_agreement_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves a reference to Crypto Parameters.  <a href="class_key_agreement_algorithm.html#a5b0e622b88d0b8d319c23e4aefef414d">More...</a><br /></td></tr>
<tr class="separator:a5b0e622b88d0b8d319c23e4aefef414d inherit pub_methods_class_key_agreement_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_algorithm')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_algorithm.html">Algorithm</a></td></tr>
<tr class="memitem:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#a1c77f5117ca2cd881baf26a364cfc606">Algorithm</a> (bool checkSelfTestStatus=true)</td></tr>
<tr class="memdesc:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for all crypto algorithms.  <a href="class_algorithm.html#a1c77f5117ca2cd881baf26a364cfc606">More...</a><br /></td></tr>
<tr class="separator:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#a4f31510a192d1121856efe8ad0a9b844">AlgorithmName</a> () const</td></tr>
<tr class="memdesc:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the name of this algorithm.  <a href="class_algorithm.html#a4f31510a192d1121856efe8ad0a9b844">More...</a><br /></td></tr>
<tr class="separator:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_clonable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_clonable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_clonable.html">Clonable</a></td></tr>
<tr class="memitem:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_clonable.html">Clonable</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_clonable.html#ad0016ba2d505c23aa85aad49e6c19bb7">Clone</a> () const</td></tr>
<tr class="memdesc:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies this object.  <a href="class_clonable.html#ad0016ba2d505c23aa85aad49e6c19bb7">More...</a><br /></td></tr>
<tr class="separator:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class GROUP_PARAMETERS, class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption&gt;<br />
class MQV_Domain&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;</h3>

<p>MQV domain for performing authenticated key agreement. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">GROUP_PARAMETERS</td><td>doamin parameters </td></tr>
    <tr><td class="paramname">COFACTOR_OPTION</td><td>cofactor option</td></tr>
  </table>
  </dd>
</dl>
<p>GROUP_PARAMETERS parameters include the curve coefcients and the base point. Binary curves use a polynomial to represent its characteristic, while prime curves use a prime number. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="mqv_8h.html#a55efec2ab777263bc0d165afa0c3fe3b" title="Menezes-Qu-Vanstone in GF(p) with key validation, AKA MQV ">MQV</a>, <a class="el" href="hmqv_8h.html#a7e819fbd915da58cb3391be3a0c96bf7" title="Hashed Menezes-Qu-Vanstone in GF(p) ">HMQV</a>, <a class="el" href="fhmqv_8h.html#a7cdbb4ab473eb13fab56921103f833df" title="Fully Hashed Menezes-Qu-Vanstone in GF(p) ">FHMQV</a>, and <a class="el" href="class_authenticated_key_agreement_domain.html" title="Interface for domains of authenticated key agreement protocols. ">AuthenticatedKeyAgreementDomain</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 3.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00028">28</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a89a6c2d98cc463ae0355c9c52d950b18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89a6c2d98cc463ae0355c9c52d950b18">&#9670;&nbsp;</a></span>MQV_Domain() <span class="overload">[1/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::<a class="el" href="class_m_q_v___domain.html">MQV_Domain</a> </td>
          <td>(</td>
          <td class="paramtype">const GroupParameters &amp;&#160;</td>
          <td class="paramname"><em>params</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct a MQV domain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">params</td><td>group parameters and options </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00040">40</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a2c64fc7b2e78e07654f4ec77176aa0dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c64fc7b2e78e07654f4ec77176aa0dd">&#9670;&nbsp;</a></span>MQV_Domain() <span class="overload">[2/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::<a class="el" href="class_m_q_v___domain.html">MQV_Domain</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td>
          <td class="paramname"><em>bt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct a MQV domain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bt</td><td><a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations. ">BufferedTransformation</a> with group parameters and options </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00045">45</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a0f3553af8a957e127be76fee7fb8878c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f3553af8a957e127be76fee7fb8878c">&#9670;&nbsp;</a></span>MQV_Domain() <span class="overload">[3/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<div class="memtemplate">
template&lt;class T1 , class T2 &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::<a class="el" href="class_m_q_v___domain.html">MQV_Domain</a> </td>
          <td>(</td>
          <td class="paramtype">T1&#160;</td>
          <td class="paramname"><em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T2&#160;</td>
          <td class="paramname"><em>v2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct a MQV domain. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T1</td><td>template parameter used as a constructor parameter </td></tr>
    <tr><td class="paramname">T2</td><td>template parameter used as a constructor parameter </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">v1</td><td>first parameter </td></tr>
    <tr><td class="paramname">v2</td><td>second parameter</td></tr>
  </table>
  </dd>
</dl>
<p>v1 and v2 are passed directly to the GROUP_PARAMETERS object. </p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00055">55</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="aa0d4a0d10dc7acd0265af242758c2b53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0d4a0d10dc7acd0265af242758c2b53">&#9670;&nbsp;</a></span>MQV_Domain() <span class="overload">[4/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<div class="memtemplate">
template&lt;class T1 , class T2 , class T3 &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::<a class="el" href="class_m_q_v___domain.html">MQV_Domain</a> </td>
          <td>(</td>
          <td class="paramtype">T1&#160;</td>
          <td class="paramname"><em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T2&#160;</td>
          <td class="paramname"><em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T3&#160;</td>
          <td class="paramname"><em>v3</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct a MQV domain. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T1</td><td>template parameter used as a constructor parameter </td></tr>
    <tr><td class="paramname">T2</td><td>template parameter used as a constructor parameter </td></tr>
    <tr><td class="paramname">T3</td><td>template parameter used as a constructor parameter </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">v1</td><td>first parameter </td></tr>
    <tr><td class="paramname">v2</td><td>second parameter </td></tr>
    <tr><td class="paramname">v3</td><td>third parameter</td></tr>
  </table>
  </dd>
</dl>
<p>v1, v2 and v3 are passed directly to the GROUP_PARAMETERS object. </p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00067">67</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a805ea6821887fd27eab3f2210950adcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a805ea6821887fd27eab3f2210950adcd">&#9670;&nbsp;</a></span>MQV_Domain() <span class="overload">[5/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<div class="memtemplate">
template&lt;class T1 , class T2 , class T3 , class T4 &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::<a class="el" href="class_m_q_v___domain.html">MQV_Domain</a> </td>
          <td>(</td>
          <td class="paramtype">T1&#160;</td>
          <td class="paramname"><em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T2&#160;</td>
          <td class="paramname"><em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T3&#160;</td>
          <td class="paramname"><em>v3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T4&#160;</td>
          <td class="paramname"><em>v4</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct a MQV domain. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T1</td><td>template parameter used as a constructor parameter </td></tr>
    <tr><td class="paramname">T2</td><td>template parameter used as a constructor parameter </td></tr>
    <tr><td class="paramname">T3</td><td>template parameter used as a constructor parameter </td></tr>
    <tr><td class="paramname">T4</td><td>template parameter used as a constructor parameter </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">v1</td><td>first parameter </td></tr>
    <tr><td class="paramname">v2</td><td>second parameter </td></tr>
    <tr><td class="paramname">v3</td><td>third parameter </td></tr>
    <tr><td class="paramname">v4</td><td>third parameter</td></tr>
  </table>
  </dd>
</dl>
<p>v1, v2, v3 and v4 are passed directly to the GROUP_PARAMETERS object. </p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00081">81</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="acba0479b43a31a97b7e0b38661acd50a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acba0479b43a31a97b7e0b38661acd50a">&#9670;&nbsp;</a></span>GetGroupParameters()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const GroupParameters&amp; <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::GetGroupParameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Retrieves the group parameters for this domain. </p>
<dl class="section return"><dt>Returns</dt><dd>the group parameters for this domain as a const reference </dd></dl>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00086">86</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="aa2af02b1905ff725e7f8fb379ac64940"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2af02b1905ff725e7f8fb379ac64940">&#9670;&nbsp;</a></span>AccessGroupParameters()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GroupParameters&amp; <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::AccessGroupParameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Retrieves the group parameters for this domain. </p>
<dl class="section return"><dt>Returns</dt><dd>the group parameters for this domain as a non-const reference </dd></dl>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00090">90</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="af4dda134c82bac3cd13bb1b468159cde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4dda134c82bac3cd13bb1b468159cde">&#9670;&nbsp;</a></span>AccessCryptoParameters()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_crypto_parameters.html">CryptoParameters</a>&amp; <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::AccessCryptoParameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Retrieves the crypto parameters for this domain. </p>
<dl class="section return"><dt>Returns</dt><dd>the crypto parameters for this domain as a non-const reference </dd></dl>

<p>Implements <a class="el" href="class_key_agreement_algorithm.html#abbe709ef84c668901d9e6cf09167d9c9">KeyAgreementAlgorithm</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00094">94</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a6558a699673c7de656379ef801e3bae1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6558a699673c7de656379ef801e3bae1">&#9670;&nbsp;</a></span>AgreedValueLength()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::AgreedValueLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides the size of the agreed value. </p>
<dl class="section return"><dt>Returns</dt><dd>size of agreed value produced in this domain</dd></dl>
<p>The length is calculated using <code>GetEncodedElementSize(false)</code>, which means the element is encoded in a non-reversible format. A non-reversible format means its a raw byte array, and it lacks presentation format like an ASN.1 BIT_STRING or OCTET_STRING. </p>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#a98ff4ab957b445060f06c95636a098ea">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00101">101</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a95a8aed92bc010a5b048902bcc30da37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95a8aed92bc010a5b048902bcc30da37">&#9670;&nbsp;</a></span>StaticPrivateKeyLength()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::StaticPrivateKeyLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides the size of the static private key. </p>
<dl class="section return"><dt>Returns</dt><dd>size of static private keys in this domain</dd></dl>
<p>The length is calculated using the byte count of the subgroup order. </p>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#a1ede4e454e74031ec0f0786dc2a14ddf">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00106">106</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="ac2623ab1d98b3de87b35be50bc1e797f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2623ab1d98b3de87b35be50bc1e797f">&#9670;&nbsp;</a></span>StaticPublicKeyLength()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::StaticPublicKeyLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides the size of the static public key. </p>
<dl class="section return"><dt>Returns</dt><dd>size of static public keys in this domain</dd></dl>
<p>The length is calculated using <code>GetEncodedElementSize(true)</code>, which means the element is encoded in a reversible format. A reversible format means it has a presentation format, and its an ANS.1 encoded element or point. </p>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#aa7a7a1a641b21fb55cfec96cbf029795">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00113">113</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a39b60e2dbf9ea3028d63f0dfc81d0cfb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39b60e2dbf9ea3028d63f0dfc81d0cfb">&#9670;&nbsp;</a></span>GenerateStaticPrivateKey()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::GenerateStaticPrivateKey </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>privateKey</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate static private key in this domain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td>a <a class="el" href="class_random_number_generator.html" title="Interface for random number generators. ">RandomNumberGenerator</a> derived class </td></tr>
    <tr><td class="paramname">privateKey</td><td>a byte buffer for the generated private key in this domain</td></tr>
  </table>
  </dd>
</dl>
<p>The private key is a random scalar used as an exponent in the range <code>[1,MaxExponent()]</code>. </p><dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(privateKey)</a> == PrivateStaticKeyLength()</code> </dd></dl>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#a00d9b12028e9ecb61af6d0f312965c6f">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00120">120</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a5ce4df4bf76fe67038393e53e6dfe84d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ce4df4bf76fe67038393e53e6dfe84d">&#9670;&nbsp;</a></span>GenerateStaticPublicKey()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::GenerateStaticPublicKey </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>privateKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>publicKey</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate a static public key from a private key in this domain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td>a <a class="el" href="class_random_number_generator.html" title="Interface for random number generators. ">RandomNumberGenerator</a> derived class </td></tr>
    <tr><td class="paramname">privateKey</td><td>a byte buffer with the previously generated private key </td></tr>
    <tr><td class="paramname">publicKey</td><td>a byte buffer for the generated public key in this domain</td></tr>
  </table>
  </dd>
</dl>
<p>The public key is an element or point on the curve, and its stored in a revrsible format. A reversible format means it has a presentation format, and its an ANS.1 encoded element or point. </p><dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(publicKey)</a> == PublicStaticKeyLength()</code> </dd></dl>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#a853885a901ac7c4f8c51fd177df5d96c">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00133">133</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a2e8c585ba17f8eb0ddf10cb2c6c4b0dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e8c585ba17f8eb0ddf10cb2c6c4b0dc">&#9670;&nbsp;</a></span>EphemeralPrivateKeyLength()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::EphemeralPrivateKeyLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides the size of ephemeral private key. </p>
<dl class="section return"><dt>Returns</dt><dd>the size of ephemeral private key in this domain </dd></dl>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#a449deae54019f6dfc9677e721a193004">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00142">142</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a071369fe7462d070cbdf0521b8fb5edd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a071369fe7462d070cbdf0521b8fb5edd">&#9670;&nbsp;</a></span>EphemeralPublicKeyLength()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::EphemeralPublicKeyLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provides the size of ephemeral public key. </p>
<dl class="section return"><dt>Returns</dt><dd>the size of ephemeral public key in this domain </dd></dl>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#a3dbef507ea4fd300ad8b2afb4d7afbe9">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00143">143</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a6b07e1e10bf1d8b9f1a4644eef74ea43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b07e1e10bf1d8b9f1a4644eef74ea43">&#9670;&nbsp;</a></span>GenerateEphemeralPrivateKey()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::GenerateEphemeralPrivateKey </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>privateKey</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate ephemeral private key. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td>a <a class="el" href="class_random_number_generator.html" title="Interface for random number generators. ">RandomNumberGenerator</a> derived class </td></tr>
    <tr><td class="paramname">privateKey</td><td>a byte buffer for the generated private key in this domain </td></tr>
  </table>
  </dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(privateKey)</a> == PrivateEphemeralKeyLength()</code> </dd></dl>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#ab6280d3bf8ad1dd2aa976910b81502f8">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00145">145</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a2dd74c07dd93b000b48e689b30809373"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dd74c07dd93b000b48e689b30809373">&#9670;&nbsp;</a></span>GenerateEphemeralPublicKey()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::GenerateEphemeralPublicKey </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;&#160;</td>
          <td class="paramname"><em>rng</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>privateKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>publicKey</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate ephemeral public key. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rng</td><td>a <a class="el" href="class_random_number_generator.html" title="Interface for random number generators. ">RandomNumberGenerator</a> derived class </td></tr>
    <tr><td class="paramname">privateKey</td><td>a byte buffer for the generated private key in this domain </td></tr>
    <tr><td class="paramname">publicKey</td><td>a byte buffer for the generated public key in this domain </td></tr>
  </table>
  </dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(publicKey)</a> == PublicEphemeralKeyLength()</code> </dd></dl>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#a9d1bc83a77f44af6616da42c33b3bc49">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00154">154</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<a id="a818955f5764130bb4e00f5c061d39be2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a818955f5764130bb4e00f5c061d39be2">&#9670;&nbsp;</a></span>Agree()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class GROUP_PARAMETERS , class COFACTOR_OPTION  = typename GROUP_PARAMETERS::DefaultCofactorOption&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_m_q_v___domain.html">MQV_Domain</a>&lt; GROUP_PARAMETERS, COFACTOR_OPTION &gt;::Agree </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>agreedValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>staticPrivateKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>ephemeralPrivateKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>staticOtherPublicKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>ephemeralOtherPublicKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>validateStaticOtherPublicKey</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Derive agreed value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">agreedValue</td><td>a byte buffer for the shared secret </td></tr>
    <tr><td class="paramname">staticPrivateKey</td><td>a byte buffer with your static private key in this domain </td></tr>
    <tr><td class="paramname">ephemeralPrivateKey</td><td>a byte buffer with your ephemeral private key in this domain </td></tr>
    <tr><td class="paramname">staticOtherPublicKey</td><td>a byte buffer with the other party's static public key in this domain </td></tr>
    <tr><td class="paramname">ephemeralOtherPublicKey</td><td>a byte buffer with the other party's ephemeral public key in this domain </td></tr>
    <tr><td class="paramname">validateStaticOtherPublicKey</td><td>a flag indicating if the other party's public key should be validated </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true upon success, false in case of failure</dd></dl>
<p><a class="el" href="class_m_q_v___domain.html#a818955f5764130bb4e00f5c061d39be2" title="Derive agreed value. ">Agree()</a> derives an agreed value from your private keys and couterparty's public keys.</p>
<p>The other party's ephemeral public key is validated by default. If you have previously validated the static public key, use <code>validateStaticOtherPublicKey=false</code> to save time. </p><dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(agreedValue)</a> == <a class="el" href="class_m_q_v___domain.html#a6558a699673c7de656379ef801e3bae1" title="Provides the size of the agreed value. ">AgreedValueLength()</a></code> </dd>
<dd>
<code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(staticPrivateKey)</a> == <a class="el" href="class_m_q_v___domain.html#a95a8aed92bc010a5b048902bcc30da37" title="Provides the size of the static private key. ">StaticPrivateKeyLength()</a></code> </dd>
<dd>
<code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(ephemeralPrivateKey)</a> == <a class="el" href="class_m_q_v___domain.html#a2e8c585ba17f8eb0ddf10cb2c6c4b0dc" title="Provides the size of ephemeral private key. ">EphemeralPrivateKeyLength()</a></code> </dd>
<dd>
<code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(staticOtherPublicKey)</a> == <a class="el" href="class_m_q_v___domain.html#ac2623ab1d98b3de87b35be50bc1e797f" title="Provides the size of the static public key. ">StaticPublicKeyLength()</a></code> </dd>
<dd>
<code><a class="el" href="misc_8h.html#a2d7e4464ea73d6393ebe78f952253426" title="Counts elements in an array. ">COUNTOF(ephemeralOtherPublicKey)</a> == <a class="el" href="class_m_q_v___domain.html#a071369fe7462d070cbdf0521b8fb5edd" title="Provides the size of ephemeral public key. ">EphemeralPublicKeyLength()</a></code> </dd></dl>

<p>Implements <a class="el" href="class_authenticated_key_agreement_domain.html#ac9808fb56eacee0c08a9bbd22fe2c98e">AuthenticatedKeyAgreementDomain</a>.</p>

<p class="definition">Definition at line <a class="el" href="mqv_8h_source.html#l00160">160</a> of file <a class="el" href="mqv_8h_source.html">mqv.h</a>.</p>

</div>
</div>
<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></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Sep 16 2018 07:58:44 for Crypto++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>