📄 eprecomp_8h-source.html
字号:
<a name="l00030"></a>00030 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsInitialized() <span class="keyword">const</span> =0;<a name="l00031"></a>00031 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetBase(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> &base) =0;<a name="l00032"></a>00032 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> & GetBase(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group) <span class="keyword">const</span> =0;<a name="l00033"></a>00033 <span class="keyword">virtual</span> <span class="keywordtype">void</span> Precompute(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxExpBits, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> storage) =0;<a name="l00034"></a>00034 <span class="keyword">virtual</span> <span class="keywordtype">void</span> Load(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &storedPrecomputation) =0;<a name="l00035"></a>00035 <span class="keyword">virtual</span> <span class="keywordtype">void</span> Save(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &storedPrecomputation) <span class="keyword">const</span> =0;<a name="l00036"></a>00036 <span class="keyword">virtual</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> Exponentiate(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &exponent) <span class="keyword">const</span> =0;<a name="l00037"></a>00037 <span class="keyword">virtual</span> <a class="code" href="class_d_l___fixed_base_precomputation.html#5d0a97b7a92644dda0c571f65c904879">Element</a> CascadeExponentiate(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &exponent, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation<Element></a> &pc2, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &exponent2) <span class="keyword">const</span> =0;<a name="l00038"></a>00038 };<a name="l00039"></a>00039 <a name="l00040"></a>00040 <span class="keyword">template</span> <<span class="keyword">class</span> T><a name="l00041"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html">00041</a> <span class="keyword">class </span><a class="code" href="class_d_l___fixed_base_precomputation_impl.html">DL_FixedBasePrecomputationImpl</a> : <span class="keyword">public</span> <a class="code" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation</a><T><a name="l00042"></a>00042 {<a name="l00043"></a>00043 <span class="keyword">public</span>:<a name="l00044"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">00044</a> <span class="keyword">typedef</span> T <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a>;<a name="l00045"></a>00045 <a name="l00046"></a>00046 <span class="comment">// DL_FixedBasePrecomputation</span><a name="l00047"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html#6c273749a72768e78fb0953cf62b7e65">00047</a> <span class="keywordtype">bool</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#6c273749a72768e78fb0953cf62b7e65">IsInitialized</a>()<span class="keyword"> const</span><a name="l00048"></a>00048 <span class="keyword"> </span>{<span class="keywordflow">return</span> !m_bases.empty();}<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#84f4151f6ffb1b05b8f0efccd120d169">SetBase</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> &base);<a name="l00050"></a><a class="code" href="class_d_l___fixed_base_precomputation_impl.html#d1c683d28b19854e6c61cef0c7471f55">00050</a> <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> & <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#d1c683d28b19854e6c61cef0c7471f55">GetBase</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group)<span class="keyword"> const</span><a name="l00051"></a>00051 <span class="keyword"> </span>{<span class="keywordflow">return</span> group.<a class="code" href="class_d_l___group_precomputation.html#f06195fe5dbbf8da4491a9b7356b1293">NeedConversions</a>() ? m_base : m_bases[0];}<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#aef0287112a39612d23c00fa6ceb4782">Precompute</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxExpBits, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> storage);<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#15b52a9f5d25dedceb7fb88ddef3eee0">Load</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &storedPrecomputation);<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#bcfa8d9239aafa6dde7016fa10a8417b">Save</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <a class="code" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> &storedPrecomputation) <span class="keyword">const</span>;<a name="l00055"></a>00055 <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#31d6b133cebe1402f420990fecd51422">Exponentiate</a>(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &exponent) <span class="keyword">const</span>;<a name="l00056"></a>00056 <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> CascadeExponentiate(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &exponent, <span class="keyword">const</span> <a class="code" href="class_d_l___fixed_base_precomputation.html">DL_FixedBasePrecomputation<Element></a> &pc2, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &exponent2) <span class="keyword">const</span>;<a name="l00057"></a>00057 <a name="l00058"></a>00058 <span class="keyword">private</span>:<a name="l00059"></a>00059 <span class="keywordtype">void</span> PrepareCascade(<span class="keyword">const</span> <a class="code" href="class_d_l___group_precomputation.html">DL_GroupPrecomputation<Element></a> &group, std::vector<<a class="code" href="struct_base_and_exponent.html" title="Base and Exponent.">BaseAndExponent<Element></a> > &eb, <span class="keyword">const</span> <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> &exponent) <span class="keyword">const</span>;<a name="l00060"></a>00060 <a name="l00061"></a>00061 <a class="code" href="class_d_l___fixed_base_precomputation_impl.html#71b1da041ab718df3f7e3ee95d84727d">Element</a> m_base;<a name="l00062"></a>00062 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_windowSize;<a name="l00063"></a>00063 <a class="code" href="class_integer.html" title="multiple precision integer and basic arithmetics">Integer</a> m_exponentBase; <span class="comment">// what base to represent the exponent in</span><a name="l00064"></a>00064 std::vector<Element> m_bases; <span class="comment">// precalculated bases</span><a name="l00065"></a>00065 };<a name="l00066"></a>00066 <a name="l00067"></a>00067 NAMESPACE_END<a name="l00068"></a>00068 <a name="l00069"></a>00069 <span class="preprocessor">#ifdef CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES</span><a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor">#include "eprecomp.cpp"</span><a name="l00071"></a>00071 <span class="preprocessor">#endif</span><a name="l00072"></a>00072 <span class="preprocessor"></span><a name="l00073"></a>00073 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 1 11:11:21 2007 for Crypto++ by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -