📄 ecp_8h-source.html
字号:
00064 <span class="keywordtype">bool</span> VerifyPoint(<span class="keyword">const</span> <a class="code" href="struct_e_c_p_point.html">Point</a> &P) <span class="keyword">const</span>;00065 00066 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> EncodedPointSize(<span class="keywordtype">bool</span> compressed = <span class="keyword">false</span>)<span class="keyword"> const</span>00067 <span class="keyword"> </span>{<span class="keywordflow">return</span> 1 + (compressed?1:2)*GetField().MaxElementByteLength();}00068 <span class="comment">// returns false if point is compressed and not valid (doesn't check if uncompressed)</span>00069 <span class="keywordtype">bool</span> DecodePoint(<a class="code" href="struct_e_c_p_point.html">Point</a> &P, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len) <span class="keyword">const</span>;00070 <span class="keywordtype">bool</span> DecodePoint(<a class="code" href="struct_e_c_p_point.html">Point</a> &P, <span class="keyword">const</span> byte *encodedPoint, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len) <span class="keyword">const</span>;00071 <span class="keywordtype">void</span> EncodePoint(byte *encodedPoint, <span class="keyword">const</span> <a class="code" href="struct_e_c_p_point.html">Point</a> &P, <span class="keywordtype">bool</span> compressed) <span class="keyword">const</span>;00072 <span class="keywordtype">void</span> EncodePoint(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, <span class="keyword">const</span> <a class="code" href="struct_e_c_p_point.html">Point</a> &P, <span class="keywordtype">bool</span> compressed) <span class="keyword">const</span>;00073 00074 <a class="code" href="struct_e_c_p_point.html">Point</a> BERDecodePoint(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &bt) <span class="keyword">const</span>;00075 <span class="keywordtype">void</span> DEREncodePoint(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, <span class="keyword">const</span> <a class="code" href="struct_e_c_p_point.html">Point</a> &P, <span class="keywordtype">bool</span> compressed) <span class="keyword">const</span>;00076 00077 <a class="code" href="class_integer.html">Integer</a> FieldSize()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetField().GetModulus();}00078 <span class="keyword">const</span> <a class="code" href="class_modular_arithmetic.html">Field</a> & GetField()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *m_fieldPtr;}00079 <span class="keyword">const</span> <a class="code" href="class_integer.html">FieldElement</a> & GetA()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_a;}00080 <span class="keyword">const</span> <a class="code" href="class_integer.html">FieldElement</a> & GetB()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_b;}00081 00082 <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ECP &rhs)<span class="keyword"> const</span>00083 <span class="keyword"> </span>{<span class="keywordflow">return</span> GetField() == rhs.<a class="code" href="class_e_c_p.html#_e_c_pa26">GetField</a>() && m_a == rhs.<a class="code" href="class_e_c_p.html#_e_c_pr1">m_a</a> && m_b == rhs.<a class="code" href="class_e_c_p.html#_e_c_pr2">m_b</a>;}00084 00085 <span class="keyword">private</span>:00086 clonable_ptr<Field> m_fieldPtr;00087 <a class="code" href="class_integer.html">FieldElement</a> m_a, m_b;00088 <span class="keyword">mutable</span> <a class="code" href="struct_e_c_p_point.html">Point</a> m_R;00089 };00090 00091 CRYPTOPP_DLL_TEMPLATE_CLASS DL_FixedBasePrecomputationImpl<ECP::Point>;00092 CRYPTOPP_DLL_TEMPLATE_CLASS DL_GroupPrecomputation<ECP::Point>;00093 00094 <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span>EcPrecomputation;00095 <span class="comment"></span>00096 <span class="comment">//! .</span><a name="l00097"></a><a class="code" href="class_ec_precomputation_3_01_e_c_p_01_4.html">00097</a> <span class="comment"></span><span class="keyword">template</span><> <span class="keyword">class </span>EcPrecomputation<ECP> : <span class="keyword">public</span> DL_GroupPrecomputation<ECP::Point>00098 {00099 <span class="keyword">public</span>:00100 <span class="keyword">typedef</span> ECP <a class="code" href="class_e_c_p.html">EllipticCurve</a>;00101 00102 <span class="comment">// DL_GroupPrecomputation</span>00103 <span class="keywordtype">bool</span> NeedConversions()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <span class="keyword">true</span>;}00104 Element ConvertIn(<span class="keyword">const</span> Element &P)<span class="keyword"> const</span>00105 <span class="keyword"> </span>{<span class="keywordflow">return</span> P.identity ? P : <a class="code" href="struct_e_c_p_point.html">ECP::Point</a>(m_ec->GetField().ConvertIn(P.x), m_ec->GetField().ConvertIn(P.y));};00106 Element ConvertOut(<span class="keyword">const</span> Element &P)<span class="keyword"> const</span>00107 <span class="keyword"> </span>{<span class="keywordflow">return</span> P.identity ? P : <a class="code" href="struct_e_c_p_point.html">ECP::Point</a>(m_ec->GetField().ConvertOut(P.x), m_ec->GetField().ConvertOut(P.y));}00108 <span class="keyword">const</span> <a class="code" href="class_abstract_group.html">AbstractGroup<Element></a> & GetGroup()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *m_ec;}00109 Element BERDecodeElement(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &bt)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_ec->BERDecodePoint(bt);}00110 <span class="keywordtype">void</span> DEREncodeElement(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &bt, <span class="keyword">const</span> Element &v)<span class="keyword"> const </span>{m_ec->DEREncodePoint(bt, v, <span class="keyword">false</span>);}00111 00112 <span class="comment">// non-inherited</span>00113 <span class="keywordtype">void</span> SetCurve(<span class="keyword">const</span> ECP &ec)00114 {00115 m_ec.reset(<span class="keyword">new</span> ECP(ec, <span class="keyword">true</span>));00116 m_ecOriginal = ec;00117 }00118 <span class="keyword">const</span> ECP & GetCurve()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *m_ecOriginal;}00119 00120 <span class="keyword">private</span>:00121 value_ptr<ECP> m_ec, m_ecOriginal;00122 };00123 00124 NAMESPACE_END00125 00126 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:13 2003 for Crypto++ by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -