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

📄 eccrypto_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00091         }00092         <a class="code" href="class_integer.html">Integer</a> ConvertElementToInteger(<span class="keyword">const</span> Element &amp;element) <span class="keyword">const</span>;00093         <a class="code" href="class_integer.html">Integer</a> GetMaxExponent()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetSubgroupOrder()-1;}00094         <span class="keywordtype">bool</span> IsIdentity(<span class="keyword">const</span> Element &amp;element)<span class="keyword"> const </span>{<span class="keywordflow">return</span> element.identity;}00095         <span class="keywordtype">void</span> SimultaneousExponentiate(Element *results, <span class="keyword">const</span> Element &amp;base, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> *exponents, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> exponentsCount) <span class="keyword">const</span>;00096 00097         <span class="comment">// ASN1Key</span>00098         <a class="code" href="class_o_i_d.html">OID</a> GetAlgorithmID() <span class="keyword">const</span>;00099 00100         <span class="comment">// used by MQV</span>00101         Element MultiplyElements(<span class="keyword">const</span> Element &amp;a, <span class="keyword">const</span> Element &amp;b) <span class="keyword">const</span>;00102         Element CascadeExponentiate(<span class="keyword">const</span> Element &amp;element1, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &amp;exponent1, <span class="keyword">const</span> Element &amp;element2, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &amp;exponent2) <span class="keyword">const</span>;00103 00104         <span class="comment">// non-inherited</span>00105 00106         <span class="comment">// enumerate OIDs for recommended parameters, use OID() to get first one</span>00107         <span class="keyword">static</span> <a class="code" href="class_o_i_d.html">OID</a> GetNextRecommendedParametersOID(<span class="keyword">const</span> <a class="code" href="class_o_i_d.html">OID</a> &amp;oid);00108 00109         <span class="keywordtype">void</span> BERDecode(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt);00110         <span class="keywordtype">void</span> DEREncode(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) <span class="keyword">const</span>;00111 00112         <span class="keywordtype">void</span> SetPointCompression(<span class="keywordtype">bool</span> compress) {m_compress = compress;}00113         <span class="keywordtype">bool</span> GetPointCompression()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_compress;}00114 00115         <span class="keywordtype">void</span> SetEncodeAsOID(<span class="keywordtype">bool</span> encodeAsOID) {m_encodeAsOID = encodeAsOID;}00116         <span class="keywordtype">bool</span> GetEncodeAsOID()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_encodeAsOID;}00117 00118         <span class="keyword">const</span> EllipticCurve&amp; GetCurve()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_groupPrecomputation.GetCurve();}00119 00120         <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="class_d_l___group_parameters___e_c.html">ThisClass</a> &amp;rhs)<span class="keyword"> const</span>00121 <span class="keyword">                </span>{<span class="keywordflow">return</span> <a class="code" href="class_d_l___group_parameters_impl.html">DL_GroupParametersImpl&lt;EcPrecomputation&lt;EC&gt;</a> &gt;::operator==(rhs);}00122 00123 <span class="preprocessor">#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY</span>00124 <span class="preprocessor"></span>        <span class="keyword">const</span> Point&amp; GetBasePoint()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetSubgroupGenerator();}00125         <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a>&amp; GetBasePointOrder()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetSubgroupOrder();}00126         <span class="keywordtype">void</span> LoadRecommendedParameters(<span class="keyword">const</span> <a class="code" href="class_o_i_d.html">OID</a> &amp;oid) {Initialize(oid);}00127 <span class="preprocessor">#endif</span>00128 <span class="preprocessor"></span>00129 <span class="keyword">protected</span>:00130         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> FieldElementLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetCurve().GetField().MaxElementByteLength();}00131         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ExponentLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_n.<a class="code" href="class_integer.html#_integerz41_3">ByteCount</a>();}00132 00133         <a class="code" href="class_o_i_d.html">OID</a> m_oid;                      <span class="comment">// set if parameters loaded from a recommended curve</span>00134         <a class="code" href="class_integer.html">Integer</a> m_n;            <span class="comment">// order of base point</span>00135         <span class="keywordtype">bool</span> m_compress, m_encodeAsOID;00136         <span class="keyword">mutable</span> <a class="code" href="class_integer.html">Integer</a> m_k;            <span class="comment">// cofactor</span>00137 };00138 00139 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC&lt;ECP&gt;</a>;00140 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC&lt;EC2N&gt;</a>;00141 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key_impl.html">DL_PublicKeyImpl&lt;DL_GroupParameters_EC&lt;ECP&gt;</a> &gt;;00142 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key_impl.html">DL_PublicKeyImpl&lt;DL_GroupParameters_EC&lt;EC2N&gt;</a> &gt;;00143 <span class="comment"></span>00144 <span class="comment">//! .</span>00145 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> EC&gt;<a name="l00146"></a><a class="code" href="class_d_l___public_key___e_c.html">00146</a> <span class="keyword">class </span><a class="code" href="class_d_l___public_key___e_c.html">DL_PublicKey_EC</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___public_key_impl.html">DL_PublicKeyImpl</a>&lt;DL_GroupParameters_EC&lt;EC&gt; &gt;00147 {00148 <span class="keyword">public</span>:00149         <span class="keyword">typedef</span> <span class="keyword">typename</span> EC::Point Element;00150 00151         <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC&lt;EC&gt;</a> &amp;params, <span class="keyword">const</span> Element &amp;Q)00152                 {AccessGroupParameters() = params; SetPublicElement(Q);}00153         <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> EC &amp;ec, <span class="keyword">const</span> Element &amp;G, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &amp;n, <span class="keyword">const</span> Element &amp;Q)00154                 {AccessGroupParameters().Initialize(ec, G, n); SetPublicElement(Q);}00155 00156         <span class="comment">// X509PublicKey</span>00157         <span class="keywordtype">void</span> BERDecodeKey2(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt, <span class="keywordtype">bool</span> parametersPresent, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size);00158         <span class="keywordtype">void</span> DEREncodeKey(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) <span class="keyword">const</span>;00159 };00160 00161 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key___e_c.html">DL_PublicKey_EC&lt;ECP&gt;</a>;00162 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key___e_c.html">DL_PublicKey_EC&lt;EC2N&gt;</a>;00163 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key_impl.html">DL_PrivateKeyImpl&lt;DL_GroupParameters_EC&lt;ECP&gt;</a> &gt;;00164 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key_impl.html">DL_PrivateKeyImpl&lt;DL_GroupParameters_EC&lt;EC2N&gt;</a> &gt;;00165 <span class="comment"></span>00166 <span class="comment">//! .</span>00167 <span class="comment"></span><span class="keyword">template</span> &lt;<span class="keyword">class</span> EC&gt;<a name="l00168"></a><a class="code" href="class_d_l___private_key___e_c.html">00168</a> <span class="keyword">class </span><a class="code" href="class_d_l___private_key___e_c.html">DL_PrivateKey_EC</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___private_key_impl.html">DL_PrivateKeyImpl</a>&lt;DL_GroupParameters_EC&lt;EC&gt; &gt;00169 {00170 <span class="keyword">public</span>:00171         <span class="keyword">typedef</span> <span class="keyword">typename</span> EC::Point Element;00172 00173         <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC&lt;EC&gt;</a> &amp;params, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &amp;x)00174                 {AccessGroupParameters() = params; SetPrivateExponent(x);}00175         <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> EC &amp;ec, <span class="keyword">const</span> Element &amp;G, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &amp;n, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &amp;x)00176                 {AccessGroupParameters().Initialize(ec, G, n); SetPrivateExponent(x);}00177         <span class="keywordtype">void</span> Initialize(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC&lt;EC&gt;</a> &amp;params)00178                 {<a class="code" href="class_d_l___private_key_impl.html#_d_l___private_key_impla3">GenerateRandom</a>(rng, params);}00179         <span class="keywordtype">void</span> Initialize(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keyword">const</span> EC &amp;ec, <span class="keyword">const</span> Element &amp;G, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &amp;n)00180                 {<a class="code" href="class_d_l___private_key_impl.html#_d_l___private_key_impla3">GenerateRandom</a>(rng, <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC&lt;EC&gt;</a>(ec, G, n));}00181 00182         <span class="comment">// PKCS8PrivateKey</span>00183         <span class="keywordtype">void</span> BERDecodeKey2(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt,  <span class="keywordtype">bool</span> parametersPresent, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size);00184         <span class="keywordtype">void</span> DEREncodeKey(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;bt) <span class="keyword">const</span>;00185 };00186 00187 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key___e_c.html">DL_PrivateKey_EC&lt;ECP&gt;</a>;

⌨️ 快捷键说明

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