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

📄 asn_8h-source.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00114 00115         word32 m_flags;00116         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_nObjects, m_nCurrentObject, m_level;00117         std::vector&lt;unsigned int&gt; m_positions;00118         <a class="code" href="class_byte_queue.html">ByteQueue</a> m_queue;00119         <span class="keyword">enum</span> State {IDENTIFIER, LENGTH, BODY, TAIL, ALL_DONE} m_state;00120         byte m_id;00121         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_lengthRemaining;00122 };00123 <span class="comment"></span>00124 <span class="comment">//! BER General Decoder</span><a name="l00125"></a><a class="code" href="class_b_e_r_general_decoder.html">00125</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL BERGeneralDecoder : <span class="keyword">public</span> <a class="code" href="class_store.html">Store</a>00126 {00127 <span class="keyword">public</span>:00128         <span class="keyword">explicit</span> BERGeneralDecoder(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;inQueue, byte asnTag);00129         <span class="keyword">explicit</span> BERGeneralDecoder(BERGeneralDecoder &amp;inQueue, byte asnTag);00130         ~BERGeneralDecoder();00131 00132         <span class="keywordtype">bool</span> IsDefiniteLength()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_definiteLength;}00133         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> RemainingLength()<span class="keyword"> const </span>{assert(m_definiteLength); <span class="keywordflow">return</span> m_length;}00134         <span class="keywordtype">bool</span> EndReached() <span class="keyword">const</span>;00135         byte PeekByte() <span class="keyword">const</span>;00136         <span class="keywordtype">void</span> CheckByte(byte b);00137 00138         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_buffered_transformation.html#_storez11_0">TransferTo2</a>(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> &amp;transferBytes, <span class="keyword">const</span> std::string &amp;channel=NULL_CHANNEL, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>);00139         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> CopyRangeTo2(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> &amp;begin, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> end=ULONG_MAX, <span class="keyword">const</span> std::string &amp;channel=NULL_CHANNEL, <span class="keywordtype">bool</span> blocking=<span class="keyword">true</span>) <span class="keyword">const</span>;00140 00141         <span class="comment">// call this to denote end of sequence</span>00142         <span class="keywordtype">void</span> MessageEnd();00143 00144 <span class="keyword">protected</span>:00145         <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;m_inQueue;00146         <span class="keywordtype">bool</span> m_finished, m_definiteLength;00147         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_length;00148 00149 <span class="keyword">private</span>:00150         <span class="keywordtype">void</span> StoreInitialize(<span class="keyword">const</span> <a class="code" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters) {assert(<span class="keyword">false</span>);}00151         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ReduceLength(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> delta);00152 };00153 <span class="comment"></span>00154 <span class="comment">//! DER General Encoder</span><a name="l00155"></a><a class="code" href="class_d_e_r_general_encoder.html">00155</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL DERGeneralEncoder : <span class="keyword">public</span> <a class="code" href="class_byte_queue.html">ByteQueue</a>00156 {00157 <span class="keyword">public</span>:00158         <span class="keyword">explicit</span> DERGeneralEncoder(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;outQueue, byte asnTag = SEQUENCE | CONSTRUCTED);00159         <span class="keyword">explicit</span> DERGeneralEncoder(DERGeneralEncoder &amp;outQueue, byte asnTag = SEQUENCE | CONSTRUCTED);00160         ~DERGeneralEncoder();00161 00162         <span class="comment">// call this to denote end of sequence</span>00163         <span class="keywordtype">void</span> MessageEnd();00164 00165 <span class="keyword">private</span>:00166         <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;m_outQueue;00167         <span class="keywordtype">bool</span> m_finished;00168 00169         byte m_asnTag;00170 };00171 <span class="comment"></span>00172 <span class="comment">//! BER Sequence Decoder</span><a name="l00173"></a><a class="code" href="class_b_e_r_sequence_decoder.html">00173</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL BERSequenceDecoder : <span class="keyword">public</span> BERGeneralDecoder00174 {00175 <span class="keyword">public</span>:00176         <span class="keyword">explicit</span> BERSequenceDecoder(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;inQueue, byte asnTag = SEQUENCE | CONSTRUCTED)00177                 : BERGeneralDecoder(inQueue, asnTag) {}00178         <span class="keyword">explicit</span> BERSequenceDecoder(BERSequenceDecoder &amp;inQueue, byte asnTag = SEQUENCE | CONSTRUCTED)00179                 : BERGeneralDecoder(inQueue, asnTag) {}00180 };00181 <span class="comment"></span>00182 <span class="comment">//! DER Sequence Encoder</span><a name="l00183"></a><a class="code" href="class_d_e_r_sequence_encoder.html">00183</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL DERSequenceEncoder : <span class="keyword">public</span> DERGeneralEncoder00184 {00185 <span class="keyword">public</span>:00186         <span class="keyword">explicit</span> DERSequenceEncoder(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;outQueue, byte asnTag = SEQUENCE | CONSTRUCTED)00187                 : DERGeneralEncoder(outQueue, asnTag) {}00188         <span class="keyword">explicit</span> DERSequenceEncoder(DERSequenceEncoder &amp;outQueue, byte asnTag = SEQUENCE | CONSTRUCTED)00189                 : DERGeneralEncoder(outQueue, asnTag) {}00190 };00191 <span class="comment"></span>00192 <span class="comment">//! BER Set Decoder</span><a name="l00193"></a><a class="code" href="class_b_e_r_set_decoder.html">00193</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL BERSetDecoder : <span class="keyword">public</span> BERGeneralDecoder00194 {00195 <span class="keyword">public</span>:00196         <span class="keyword">explicit</span> BERSetDecoder(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;inQueue, byte asnTag = SET | CONSTRUCTED)00197                 : BERGeneralDecoder(inQueue, asnTag) {}00198         <span class="keyword">explicit</span> BERSetDecoder(BERSetDecoder &amp;inQueue, byte asnTag = SET | CONSTRUCTED)00199                 : BERGeneralDecoder(inQueue, asnTag) {}00200 };00201 <span class="comment"></span>00202 <span class="comment">//! DER Set Encoder</span><a name="l00203"></a><a class="code" href="class_d_e_r_set_encoder.html">00203</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL DERSetEncoder : <span class="keyword">public</span> DERGeneralEncoder00204 {00205 <span class="keyword">public</span>:00206         <span class="keyword">explicit</span> DERSetEncoder(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;outQueue, byte asnTag = SET | CONSTRUCTED)00207                 : DERGeneralEncoder(outQueue, asnTag) {}00208         <span class="keyword">explicit</span> DERSetEncoder(DERSetEncoder &amp;outQueue, byte asnTag = SET | CONSTRUCTED)00209                 : DERGeneralEncoder(outQueue, asnTag) {}00210 };00211 00212 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;00213 <span class="keyword">class </span>ASNOptional : <span class="keyword">public</span> member_ptr&lt;T&gt;00214 {00215 <span class="keyword">public</span>:00216         <span class="keywordtype">void</span> BERDecode(BERSequenceDecoder &amp;seqDecoder, byte tag, byte mask = ~CONSTRUCTED)00217         {00218                 byte b;00219                 <span class="keywordflow">if</span> (seqDecoder.<a class="code" href="class_buffered_transformation.html#_zlib_decompressorz7_4">Peek</a>(b) &amp;&amp; (b &amp; mask) == tag)00220                         reset(<span class="keyword">new</span> T(seqDecoder));00221         }00222         <span class="keywordtype">void</span> DEREncode(<a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;out)00223         {00224                 <span class="keywordflow">if</span> (get() != NULL)00225                         get()-&gt;DEREncode(out);00226         }00227 };00228 <span class="comment"></span>00229 <span class="comment">//! .</span><a name="l00230"></a><a class="code" href="class_a_s_n1_key.html">00230</a> <span class="comment"></span><span class="keyword">class </span>CRYPTOPP_DLL ASN1Key : <span class="keyword">public</span> <a class="code" href="class_a_s_n1_crypto_material.html">ASN1CryptoMaterial</a>00231 {00232 <span class="keyword">public</span>:00233         <span class="keyword">virtual</span> OID GetAlgorithmID() <span class="keyword">const</span> =0;

⌨️ 快捷键说明

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