⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xtr_8h-source.html

📁 著名的密码库Crypto++的文档 C++语言的杰作。程序员必备。
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<a name="l00102"></a>00102                 <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Subtract(a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>, b.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00103"></a>00103                 <span class="keywordflow">return</span> <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>;<a name="l00104"></a>00104         }<a name="l00105"></a>00105 <a name="l00106"></a><a class="code" href="class_g_f_p2___o_n_b.html#a3ebe08c701e8c020fb764082128b54a">00106</a>         <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a>&amp; <a class="code" href="class_g_f_p2___o_n_b.html#a3ebe08c701e8c020fb764082128b54a">Accumulate</a>(<a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;a, <span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;b)<span class="keyword"> const</span><a name="l00107"></a>00107 <span class="keyword">        </span>{<a name="l00108"></a>00108                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Accumulate(a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>, b.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>);<a name="l00109"></a>00109                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Accumulate(a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>, b.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00110"></a>00110                 <span class="keywordflow">return</span> a;<a name="l00111"></a>00111         }<a name="l00112"></a>00112 <a name="l00113"></a><a class="code" href="class_g_f_p2___o_n_b.html#1eb5dc1382210ee9d0678489a48db476">00113</a>         <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a>&amp; <a class="code" href="class_g_f_p2___o_n_b.html#1eb5dc1382210ee9d0678489a48db476">Reduce</a>(<a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;a, <span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;b)<span class="keyword"> const</span><a name="l00114"></a>00114 <span class="keyword">        </span>{<a name="l00115"></a>00115                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Reduce(a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>, b.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>);<a name="l00116"></a>00116                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Reduce(a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>, b.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00117"></a>00117                 <span class="keywordflow">return</span> a;<a name="l00118"></a>00118         }<a name="l00119"></a>00119 <a name="l00120"></a><a class="code" href="class_g_f_p2___o_n_b.html#25f52100a3c7f53bd5cd96904335c820">00120</a>         <span class="keywordtype">bool</span> <a class="code" href="class_g_f_p2___o_n_b.html#25f52100a3c7f53bd5cd96904335c820">IsUnit</a>(<span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;a)<span class="keyword"> const</span><a name="l00121"></a>00121 <span class="keyword">        </span>{<a name="l00122"></a>00122                 <span class="keywordflow">return</span> a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>.<a class="code" href="class_integer.html#5364029d13bf6d21e7b578127160dbed">NotZero</a>() || a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>.<a class="code" href="class_integer.html#5364029d13bf6d21e7b578127160dbed">NotZero</a>();<a name="l00123"></a>00123         }<a name="l00124"></a>00124 <a name="l00125"></a><a class="code" href="class_g_f_p2___o_n_b.html#a1d3c030219de3c1635a72fbdf0c7228">00125</a>         <span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a>&amp; <a class="code" href="class_g_f_p2___o_n_b.html#a1d3c030219de3c1635a72fbdf0c7228">MultiplicativeIdentity</a>()<span class="keyword"> const</span><a name="l00126"></a>00126 <span class="keyword">        </span>{<a name="l00127"></a>00127                 <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a> = <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Inverse(<a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.MultiplicativeIdentity());<a name="l00128"></a>00128                 <span class="keywordflow">return</span> <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>;<a name="l00129"></a>00129         }<a name="l00130"></a>00130 <a name="l00131"></a><a class="code" href="class_g_f_p2___o_n_b.html#be477db3d5bf5fdb72b9fcc832ff8bac">00131</a>         <span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a>&amp; <a class="code" href="class_g_f_p2___o_n_b.html#be477db3d5bf5fdb72b9fcc832ff8bac">Multiply</a>(<span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;a, <span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;b)<span class="keyword"> const</span><a name="l00132"></a>00132 <span class="keyword">        </span>{<a name="l00133"></a>00133                 <a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Add(a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>, a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00134"></a>00134                 <a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Multiply(<a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a>, <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Add(b.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>, b.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>));<a name="l00135"></a>00135                 <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Multiply(a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>, b.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>);<a name="l00136"></a>00136                 <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Multiply(a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>, b.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00137"></a>00137                 <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>.<a class="code" href="class_integer.html#bf1e9c170e56841ce73d137c12675f9b">swap</a>(<a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00138"></a>00138                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Reduce(<a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a>, <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>);<a name="l00139"></a>00139                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Reduce(<a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a>, <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00140"></a>00140                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Reduce(<a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>, <a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a>);<a name="l00141"></a>00141                 <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Reduce(<a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>, <a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a>);<a name="l00142"></a>00142                 <span class="keywordflow">return</span> <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>;<a name="l00143"></a>00143         }<a name="l00144"></a>00144 <a name="l00145"></a><a class="code" href="class_g_f_p2___o_n_b.html#566a641ac8a1ffc03e056e93d661a3f3">00145</a>         <span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a>&amp; <a class="code" href="class_g_f_p2___o_n_b.html#566a641ac8a1ffc03e056e93d661a3f3">MultiplicativeInverse</a>(<span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;a)<span class="keyword"> const</span><a name="l00146"></a>00146 <span class="keyword">        </span>{<a name="l00147"></a>00147                 <span class="keywordflow">return</span> <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a> = <a class="code" href="class_g_f_p2___o_n_b.html#d71eeac946b5f17fcb6645bd2f281d23">Exponentiate</a>(a, <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.GetModulus()-2);<a name="l00148"></a>00148         }<a name="l00149"></a>00149 <a name="l00150"></a><a class="code" href="class_g_f_p2___o_n_b.html#f0e2b0a96d4f5124ab43d5373c7057fe">00150</a>         <span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a>&amp; <a class="code" href="class_g_f_p2___o_n_b.html#f0e2b0a96d4f5124ab43d5373c7057fe">Square</a>(<span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;a)<span class="keyword"> const</span><a name="l00151"></a>00151 <span class="keyword">        </span>{<a name="l00152"></a>00152                 <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;ac1 = (&amp;a == &amp;<a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>) ? (<a class="code" href="class_g_f_p2___o_n_b.html#69c8bc73d2d4a07ba6df46b12c8e7913">t</a> = a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>) : a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>;<a name="l00153"></a>00153                 <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Multiply(<a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Subtract(<a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Subtract(a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>, a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>), a.<a class="code" href="class_g_f_p2_element.html#65778354421ad2da42fce4221e6da05c">c1</a>), a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>);<a name="l00154"></a>00154                 <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a> = <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Multiply(<a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Subtract(<a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.Subtract(ac1, a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>), a.<a class="code" href="class_g_f_p2_element.html#1688b28610e1b080a9304daad7c73bbb">c2</a>), ac1);<a name="l00155"></a>00155                 <span class="keywordflow">return</span> <a class="code" href="class_g_f_p2___o_n_b.html#4a8985727330598468dfbeb04cad772d">result</a>;<a name="l00156"></a>00156         }<a name="l00157"></a>00157 <a name="l00158"></a><a class="code" href="class_g_f_p2___o_n_b.html#d71eeac946b5f17fcb6645bd2f281d23">00158</a>         <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> <a class="code" href="class_g_f_p2___o_n_b.html#d71eeac946b5f17fcb6645bd2f281d23">Exponentiate</a>(<span class="keyword">const</span> <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> &amp;a, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &amp;e)<span class="keyword"> const</span><a name="l00159"></a>00159 <span class="keyword">        </span>{<a name="l00160"></a>00160                 <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> edivp, emodp;<a name="l00161"></a>00161                 <a class="code" href="class_integer.html#567c89aa176b354143c99d558d05a5fb" title="calculate r and q such that (a == d*q + r) &amp;&amp; (0 &lt;= r &lt; abs(d))">Integer::Divide</a>(emodp, edivp, e, <a class="code" href="class_g_f_p2___o_n_b.html#12a3de839303bf309ed57d38659a85a9">modp</a>.GetModulus());<a name="l00162"></a>00162                 <a class="code" href="class_g_f_p2_element.html" title="an element of GF(p^2)">Element</a> b = <a class="code" href="class_g_f_p2___o_n_b.html#a4c7a549af3a591f10f05bff645e9d38">PthPower</a>(a);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -