ida_8h-source.html

来自「Crypto++是一个非常强大的密码学库,主要是功能全」· HTML 代码 · 共 159 行 · 第 1/2 页

HTML
159
字号
<a name="l00074"></a><a class="code" href="class_secret_recovery.html">00074</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_secret_recovery.html">SecretRecovery</a> : <span class="keyword">public</span> <a class="code" href="class_raw_i_d_a.html">RawIDA</a>00075 {00076 <span class="keyword">public</span>:00077         <a class="code" href="class_secret_recovery.html">SecretRecovery</a>(<span class="keywordtype">int</span> threshold, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment=NULL, <span class="keywordtype">bool</span> removePadding=<span class="keyword">true</span>)00078                 : <a class="code" href="class_raw_i_d_a.html">RawIDA</a>(attachment)00079                 {<a class="code" href="class_secret_recovery.html#_secret_recoverya1">Initialize</a>(MakeParameters(<span class="stringliteral">"RecoveryThreshold"</span>, threshold)(<span class="stringliteral">"RemovePadding"</span>, removePadding), 0);}00080 00081         <span class="keywordtype">void</span> <a class="code" href="class_secret_recovery.html#_secret_recoverya1">Initialize</a>(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters=g_nullNameValuePairs, <span class="keywordtype">int</span> propagation=-1);00082 00083 <span class="keyword">protected</span>:00084         <span class="keywordtype">void</span> FlushOutputQueues();00085         <span class="keywordtype">void</span> OutputMessageEnds();00086 00087         <span class="keywordtype">bool</span> m_pad;00088 };00089 <span class="comment"></span>00090 <span class="comment">/// a variant of Rabin's Information Dispersal Algorithm</span><a name="l00091"></a><a class="code" href="class_information_dispersal.html">00091</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_information_dispersal.html">InformationDispersal</a> : <span class="keyword">public</span> CustomSignalPropagation&lt;Filter&gt;00092 {00093 <span class="keyword">public</span>:00094         <a class="code" href="class_information_dispersal.html">InformationDispersal</a>(<span class="keywordtype">int</span> threshold, <span class="keywordtype">int</span> nShares, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment=NULL, <span class="keywordtype">bool</span> addPadding=<span class="keyword">true</span>)00095                 : CustomSignalPropagation&lt;Filter&gt;(attachment), m_ida(<span class="keyword">new</span> OutputProxy(*<span class="keyword">this</span>, <span class="keyword">true</span>))00096                 {<a class="code" href="class_information_dispersal.html#_information_dispersala1">Initialize</a>(MakeParameters(<span class="stringliteral">"RecoveryThreshold"</span>, threshold)(<span class="stringliteral">"NumberOfShares"</span>, nShares)(<span class="stringliteral">"AddPadding"</span>, addPadding), 0);}00097 00098         <span class="keywordtype">void</span> <a class="code" href="class_information_dispersal.html#_information_dispersala1">Initialize</a>(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters=g_nullNameValuePairs, <span class="keywordtype">int</span> propagation=-1);00099         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_information_dispersal.html#_information_dispersala2">Put2</a>(<span class="keyword">const</span> byte *begin, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking);<a name="l00100"></a><a class="code" href="class_information_dispersal.html#_information_dispersala3">00100</a>         <span class="keywordtype">bool</span> <a class="code" href="class_information_dispersal.html#_information_dispersala3">Flush</a>(<span class="keywordtype">bool</span> hardFlush, <span class="keywordtype">int</span> propagation=-1, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>) {<span class="keywordflow">return</span> m_ida.Flush(hardFlush, propagation, blocking);}00101 00102 <span class="keyword">protected</span>:00103         <a class="code" href="class_raw_i_d_a.html">RawIDA</a> m_ida;00104         <span class="keywordtype">bool</span> m_pad;00105         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_nextChannel;00106 };00107 <span class="comment"></span>00108 <span class="comment">/// a variant of Rabin's Information Dispersal Algorithm</span><a name="l00109"></a><a class="code" href="class_information_recovery.html">00109</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_information_recovery.html">InformationRecovery</a> : <span class="keyword">public</span> <a class="code" href="class_raw_i_d_a.html">RawIDA</a>00110 {00111 <span class="keyword">public</span>:00112         <a class="code" href="class_information_recovery.html">InformationRecovery</a>(<span class="keywordtype">int</span> threshold, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment=NULL, <span class="keywordtype">bool</span> removePadding=<span class="keyword">true</span>)00113                 : <a class="code" href="class_raw_i_d_a.html">RawIDA</a>(attachment)00114                 {<a class="code" href="class_information_recovery.html#_information_recoverya1">Initialize</a>(MakeParameters(<span class="stringliteral">"RecoveryThreshold"</span>, threshold)(<span class="stringliteral">"RemovePadding"</span>, removePadding), 0);}00115 00116         <span class="keywordtype">void</span> <a class="code" href="class_information_recovery.html#_information_recoverya1">Initialize</a>(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters=g_nullNameValuePairs, <span class="keywordtype">int</span> propagation=-1);00117 00118 <span class="keyword">protected</span>:00119         <span class="keywordtype">void</span> FlushOutputQueues();00120         <span class="keywordtype">void</span> OutputMessageEnds();00121 00122         <span class="keywordtype">bool</span> m_pad;00123         <a class="code" href="class_byte_queue.html">ByteQueue</a> m_queue;00124 };00125 00126 <span class="keyword">class </span>PaddingRemover : <span class="keyword">public</span> Unflushable&lt;Filter&gt;00127 {00128 <span class="keyword">public</span>:00129         PaddingRemover(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment=NULL)00130                 : Unflushable&lt;<a class="code" href="class_filter.html">Filter</a>&gt;(attachment), m_possiblePadding(false) {}00131 00132         <span class="keywordtype">void</span> IsolatedInitialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters) {m_possiblePadding = <span class="keyword">false</span>;}00133         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Put2(<span class="keyword">const</span> byte *begin, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">int</span> messageEnd, <span class="keywordtype">bool</span> blocking);00134 00135         <span class="comment">// GetPossiblePadding() == false at the end of a message indicates incorrect padding</span>00136         <span class="keywordtype">bool</span> GetPossiblePadding()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_possiblePadding;}00137 00138 <span class="keyword">private</span>:00139         <span class="keywordtype">bool</span> m_possiblePadding;00140         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> m_zeroCount;00141 };00142 00143 NAMESPACE_END00144 00145 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:16 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 + =
减小字号Ctrl + -
显示快捷键?