📄 class_x_t_r___d_h.html
字号:
<td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [virtual]</code></td> </tr> </table></div><div class="memdoc"><p>generate private key <p><dl class="pre" compact><dt><b>Precondition:</b></dt><dd>size of privateKey == <a class="el" href="class_x_t_r___d_h.html#e3f6c87695d27b57f218daa0a7a19a6b" title="return length of private keys in this domain">PrivateKeyLength()</a> </dd></dl><p>Implements <a class="el" href="class_simple_key_agreement_domain.html#ee7a4929f8a1a77acd04e12fbcd0a0b1">SimpleKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="xtrcrypt_8cpp-source.html#l00077">77</a> of file <a class="el" href="xtrcrypt_8cpp-source.html">xtrcrypt.cpp</a>.<p>References <a class="el" href="integer_8cpp-source.html#l03112">Integer::Encode()</a>, <a class="el" href="xtrcrypt_8h-source.html#l00030">PrivateKeyLength()</a>, and <a class="el" href="integer_8cpp-source.html#l02862">Integer::Zero()</a>.</div></div><p><a class="anchor" name="9b2d088f034d458abccc7fea30a22412"></a><!-- doxytag: member="XTR_DH::GeneratePublicKey" ref="9b2d088f034d458abccc7fea30a22412" args="(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void XTR_DH::GeneratePublicKey </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> [virtual]</code></td> </tr> </table></div><div class="memdoc"><p>generate public key <p><dl class="pre" compact><dt><b>Precondition:</b></dt><dd>size of publicKey == <a class="el" href="class_x_t_r___d_h.html#d8086f9959a856e7c1279b18af566b6c" title="return length of public keys in this domain">PublicKeyLength()</a> </dd></dl><p>Implements <a class="el" href="class_simple_key_agreement_domain.html#56d0957a43c48f3e6431868f564f574f">SimpleKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="xtrcrypt_8cpp-source.html#l00083">83</a> of file <a class="el" href="xtrcrypt_8cpp-source.html">xtrcrypt.cpp</a>.<p>References <a class="el" href="xtr_8h-source.html#l00021">GFP2Element::Encode()</a>, <a class="el" href="xtrcrypt_8h-source.html#l00030">PrivateKeyLength()</a>, and <a class="el" href="xtrcrypt_8h-source.html#l00031">PublicKeyLength()</a>.</div></div><p><a class="anchor" name="6947d070cbdba7b811cc79a33a3c6632"></a><!-- doxytag: member="XTR_DH::Agree" ref="6947d070cbdba7b811cc79a33a3c6632" args="(byte *agreedValue, const byte *privateKey, const byte *otherPublicKey, bool validateOtherPublicKey=true) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool XTR_DH::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>privateKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const byte * </td> <td class="paramname"> <em>otherPublicKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>validateOtherPublicKey</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 key and couterparty's public key, return false in case of failure <p><dl class="note" compact><dt><b>Note:</b></dt><dd>If you have previously validated the public key, use validateOtherPublicKey=false to save time. </dd></dl><dl class="pre" compact><dt><b>Precondition:</b></dt><dd>size of agreedValue == <a class="el" href="class_x_t_r___d_h.html#68d30b38dde37f451a539d0d1907408d" title="return length of agreed value produced">AgreedValueLength()</a> <p>length of privateKey == <a class="el" href="class_x_t_r___d_h.html#e3f6c87695d27b57f218daa0a7a19a6b" title="return length of private keys in this domain">PrivateKeyLength()</a> <p>length of otherPublicKey == <a class="el" href="class_x_t_r___d_h.html#d8086f9959a856e7c1279b18af566b6c" title="return length of public keys in this domain">PublicKeyLength()</a> </dd></dl><p>Implements <a class="el" href="class_simple_key_agreement_domain.html#732339ca730408cca7b1191fc32eb39e">SimpleKeyAgreementDomain</a>.<p>Definition at line <a class="el" href="xtrcrypt_8cpp-source.html#l00090">90</a> of file <a class="el" href="xtrcrypt_8cpp-source.html">xtrcrypt.cpp</a>.<p>References <a class="el" href="xtrcrypt_8h-source.html#l00029">AgreedValueLength()</a>, <a class="el" href="xtr_8h-source.html#l00038">GFP2Element::c1</a>, <a class="el" href="xtr_8h-source.html#l00038">GFP2Element::c2</a>, <a class="el" href="xtr_8h-source.html#l00056">GFP2_ONB< F >::ConvertIn()</a>, <a class="el" href="xtr_8h-source.html#l00021">GFP2Element::Encode()</a>, <a class="el" href="integer_8h-source.html#l00201">Integer::IsNegative()</a>, <a class="el" href="xtrcrypt_8h-source.html#l00030">PrivateKeyLength()</a>, and <a class="el" href="xtrcrypt_8h-source.html#l00031">PublicKeyLength()</a>.</div></div><p><a class="anchor" name="75629cd8157dca667c6aff0562ca59af"></a><!-- doxytag: member="XTR_DH::GenerateKeyPair" ref="75629cd8157dca667c6aff0562ca59af" args="(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void SimpleKeyAgreementDomain::GenerateKeyPair </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_simple_key_agreement_domain.html#ee7a4929f8a1a77acd04e12fbcd0a0b1" title="generate private key">GeneratePrivateKey()</a> and then <a class="el" href="class_simple_key_agreement_domain.html#56d0957a43c48f3e6431868f564f574f" title="generate public key">GeneratePublicKey()</a> </dd></dl>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -