📄 eccrypto_8h-source.html
字号:
00091 }00092 <a class="code" href="class_integer.html">Integer</a> ConvertElementToInteger(<span class="keyword">const</span> Element &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 &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 &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 &a, <span class="keyword">const</span> Element &b) <span class="keyword">const</span>;00102 Element CascadeExponentiate(<span class="keyword">const</span> Element &element1, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &exponent1, <span class="keyword">const</span> Element &element2, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &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> &oid);00108 00109 <span class="keywordtype">void</span> BERDecode(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &bt);00110 <span class="keywordtype">void</span> DEREncode(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &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& 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> &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<EcPrecomputation<EC></a> >::operator==(rhs);}00122 00123 <span class="preprocessor">#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY</span>00124 <span class="preprocessor"></span> <span class="keyword">const</span> Point& 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>& 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> &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<ECP></a>;00140 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC<EC2N></a>;00141 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key_impl.html">DL_PublicKeyImpl<DL_GroupParameters_EC<ECP></a> >;00142 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key_impl.html">DL_PublicKeyImpl<DL_GroupParameters_EC<EC2N></a> >;00143 <span class="comment"></span>00144 <span class="comment">//! .</span>00145 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> EC><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><DL_GroupParameters_EC<EC> >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<EC></a> &params, <span class="keyword">const</span> Element &Q)00152 {AccessGroupParameters() = params; SetPublicElement(Q);}00153 <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> EC &ec, <span class="keyword">const</span> Element &G, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &n, <span class="keyword">const</span> Element &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> &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> &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<ECP></a>;00162 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___public_key___e_c.html">DL_PublicKey_EC<EC2N></a>;00163 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key_impl.html">DL_PrivateKeyImpl<DL_GroupParameters_EC<ECP></a> >;00164 CRYPTOPP_DLL_TEMPLATE_CLASS <a class="code" href="class_d_l___private_key_impl.html">DL_PrivateKeyImpl<DL_GroupParameters_EC<EC2N></a> >;00165 <span class="comment"></span>00166 <span class="comment">//! .</span>00167 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> EC><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><DL_GroupParameters_EC<EC> >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<EC></a> &params, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &x)00174 {AccessGroupParameters() = params; SetPrivateExponent(x);}00175 <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> EC &ec, <span class="keyword">const</span> Element &G, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &n, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &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> &rng, <span class="keyword">const</span> <a class="code" href="class_d_l___group_parameters___e_c.html">DL_GroupParameters_EC<EC></a> &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> &rng, <span class="keyword">const</span> EC &ec, <span class="keyword">const</span> Element &G, <span class="keyword">const</span> <a class="code" href="class_integer.html">Integer</a> &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<EC></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> &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> &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<ECP></a>;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -