📄 default_8h-source.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Crypto++: default.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.2 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Compound List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Compound Members</a> | <a class="qindex" href="globals.html">File Members</a></div><h1>default.h</h1><div class="fragment"><pre>00001 <span class="preprocessor">#ifndef CRYPTOPP_DEFAULT_H</span>00002 <span class="preprocessor"></span><span class="preprocessor">#define CRYPTOPP_DEFAULT_H</span>00003 <span class="preprocessor"></span>00004 <span class="preprocessor">#include "sha.h"</span>00005 <span class="preprocessor">#include "hmac.h"</span>00006 <span class="preprocessor">#include "<a class="code" href="des_8h.html">des.h</a>"</span>00007 <span class="preprocessor">#include "filters.h"</span>00008 <span class="preprocessor">#include "<a class="code" href="modes_8h.html">modes.h</a>"</span>00009 00010 NAMESPACE_BEGIN(CryptoPP)00011 00012 <span class="keyword">typedef</span> <a class="code" href="class_d_e_s___e_d_e2.html">DES_EDE2</a> <a class="code" href="class_d_e_s___e_d_e2.html">Default_BlockCipher</a>;00013 <span class="keyword">typedef</span> <a class="code" href="class_s_h_a.html">SHA</a> <a class="code" href="class_s_h_a.html">DefaultHashModule</a>;00014 <span class="keyword">typedef</span> <a class="code" href="class_h_m_a_c.html">HMAC<DefaultHashModule></a> <a class="code" href="class_h_m_a_c.html">DefaultMAC</a>;00015 <span class="comment"></span>00016 <span class="comment">//! Password-Based Encryptor using DES-EDE2</span><a name="l00017"></a><a class="code" href="class_default_encryptor.html">00017</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_default_encryptor.html">DefaultEncryptor</a> : <span class="keyword">public</span> <a class="code" href="class_proxy_filter.html">ProxyFilter</a>00018 {00019 <span class="keyword">public</span>:00020 <a class="code" href="class_default_encryptor.html">DefaultEncryptor</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *passphrase, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL);00021 <a class="code" href="class_default_encryptor.html">DefaultEncryptor</a>(<span class="keyword">const</span> byte *passphrase, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> passphraseLength, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL);00022 00023 <span class="keyword">protected</span>:00024 <span class="keywordtype">void</span> FirstPut(<span class="keyword">const</span> byte *);00025 <span class="keywordtype">void</span> LastPut(<span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00026 00027 <span class="keyword">private</span>:00028 <a class="code" href="class_sec_block.html">SecByteBlock</a> m_passphrase;00029 <a class="code" href="struct_c_b_c___mode.html">CBC_Mode<Default_BlockCipher></a>::Encryption m_cipher;00030 };00031 <span class="comment"></span>00032 <span class="comment">//! Password-Based Decryptor using DES-EDE2</span><a name="l00033"></a><a class="code" href="class_default_decryptor.html">00033</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_default_decryptor.html">DefaultDecryptor</a> : <span class="keyword">public</span> <a class="code" href="class_proxy_filter.html">ProxyFilter</a>00034 {00035 <span class="keyword">public</span>:00036 <a class="code" href="class_default_decryptor.html">DefaultDecryptor</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *passphrase, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL, <span class="keywordtype">bool</span> throwException=<span class="keyword">true</span>);00037 <a class="code" href="class_default_decryptor.html">DefaultDecryptor</a>(<span class="keyword">const</span> byte *passphrase, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> passphraseLength, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL, <span class="keywordtype">bool</span> throwException=<span class="keyword">true</span>);00038 00039 <span class="keyword">class </span>Err : <span class="keyword">public</span> <a class="code" href="class_exception.html">Exception</a>00040 {00041 <span class="keyword">public</span>:00042 Err(<span class="keyword">const</span> std::string &s) 00043 : <a class="code" href="class_exception.html">Exception</a>(<a class="code" href="class_exception.html#_zlib_decompressor_1_1_unsupported_preset_dictionaryw7_zlib_decompressor_1_1_unsupported_preset_dictionaryw3">DATA_INTEGRITY_CHECK_FAILED</a>, s) {}00044 };00045 <span class="keyword">class </span>KeyBadErr : <span class="keyword">public</span> Err {<span class="keyword">public</span>: KeyBadErr() : Err(<span class="stringliteral">"DefaultDecryptor: cannot decrypt message with this passphrase"</span>) {}};00046 00047 <span class="keyword">enum</span> State {WAITING_FOR_KEYCHECK, KEY_GOOD, KEY_BAD};00048 State CurrentState()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_state;}00049 00050 <span class="keyword">protected</span>:00051 <span class="keywordtype">void</span> FirstPut(<span class="keyword">const</span> byte *inString);00052 <span class="keywordtype">void</span> LastPut(<span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00053 00054 State m_state;00055 00056 <span class="keyword">private</span>:00057 <span class="keywordtype">void</span> CheckKey(<span class="keyword">const</span> byte *salt, <span class="keyword">const</span> byte *keyCheck);00058 00059 <a class="code" href="class_sec_block.html">SecByteBlock</a> m_passphrase;00060 <a class="code" href="struct_c_b_c___mode.html">CBC_Mode<Default_BlockCipher></a>::Decryption m_cipher;00061 member_ptr<FilterWithBufferedInput> m_decryptor;00062 <span class="keywordtype">bool</span> m_throwException;00063 };00064 <span class="comment"></span>00065 <span class="comment">//! Password-Based Encryptor using DES-EDE2 and HMAC/SHA-1</span><a name="l00066"></a><a class="code" href="class_default_encryptor_with_m_a_c.html">00066</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_default_encryptor_with_m_a_c.html">DefaultEncryptorWithMAC</a> : <span class="keyword">public</span> <a class="code" href="class_proxy_filter.html">ProxyFilter</a>00067 {00068 <span class="keyword">public</span>:00069 <a class="code" href="class_default_encryptor_with_m_a_c.html">DefaultEncryptorWithMAC</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *passphrase, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL);00070 <a class="code" href="class_default_encryptor_with_m_a_c.html">DefaultEncryptorWithMAC</a>(<span class="keyword">const</span> byte *passphrase, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> passphraseLength, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL);00071 00072 <span class="keyword">protected</span>:00073 <span class="keywordtype">void</span> FirstPut(<span class="keyword">const</span> byte *inString) {}00074 <span class="keywordtype">void</span> LastPut(<span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00075 00076 <span class="keyword">private</span>:00077 member_ptr<DefaultMAC> m_mac;00078 };00079 <span class="comment"></span>00080 <span class="comment">//! Password-Based Decryptor using DES-EDE2 and HMAC/SHA-1</span><a name="l00081"></a><a class="code" href="class_default_decryptor_with_m_a_c.html">00081</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_default_decryptor_with_m_a_c.html">DefaultDecryptorWithMAC</a> : <span class="keyword">public</span> <a class="code" href="class_proxy_filter.html">ProxyFilter</a>00082 {00083 <span class="keyword">public</span>:00084 <span class="keyword">class </span>MACBadErr : <span class="keyword">public</span> <a class="code" href="class_default_decryptor.html">DefaultDecryptor</a>::Err {<span class="keyword">public</span>: MACBadErr() : DefaultDecryptor::Err(<span class="stringliteral">"DefaultDecryptorWithMAC: MAC check failed"</span>) {}};00085 00086 <a class="code" href="class_default_decryptor_with_m_a_c.html">DefaultDecryptorWithMAC</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *passphrase, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL, <span class="keywordtype">bool</span> throwException=<span class="keyword">true</span>);00087 <a class="code" href="class_default_decryptor_with_m_a_c.html">DefaultDecryptorWithMAC</a>(<span class="keyword">const</span> byte *passphrase, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> passphraseLength, <a class="code" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment = NULL, <span class="keywordtype">bool</span> throwException=<span class="keyword">true</span>);00088 00089 DefaultDecryptor::State CurrentState() <span class="keyword">const</span>;00090 <span class="keywordtype">bool</span> CheckLastMAC() <span class="keyword">const</span>;00091 00092 <span class="keyword">protected</span>:00093 <span class="keywordtype">void</span> FirstPut(<span class="keyword">const</span> byte *inString) {}00094 <span class="keywordtype">void</span> LastPut(<span class="keyword">const</span> byte *inString, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length);00095 00096 <span class="keyword">private</span>:00097 member_ptr<DefaultMAC> m_mac;00098 <a class="code" href="class_hash_verification_filter.html">HashVerifier</a> *m_hashVerifier;00099 <span class="keywordtype">bool</span> m_throwException;00100 };00101 00102 NAMESPACE_END00103 00104 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:11 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -