Sophie

Sophie

distrib > Mandriva > 10.2 > i586 > media > contrib > by-pkgid > 7457b841ac8136d3a1a9d3d960c5252e > files > 1201

libcryptopp-doc-5.2.1-2mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 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.7 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>default.h</h1><pre class="fragment"><div>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 typedef <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 typedef <a class="code" href="class_s_h_a.html">SHA</a> <a class="code" href="class_s_h_a.html">DefaultHashModule</a>;
00014 typedef <a class="code" href="class_h_m_a_c.html">HMAC</a>&lt;DefaultHashModule&gt; <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>class <a class="code" href="class_default_encryptor.html">DefaultEncryptor</a> : public <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&lt;Default_BlockCipher&gt;</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 &amp;s) 
00043                         : <a class="code" href="class_exception.html">Exception</a>(DATA_INTEGRITY_CHECK_FAILED, 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&lt;Default_BlockCipher&gt;</a>::Decryption m_cipher;
00061         member_ptr&lt;FilterWithBufferedInput&gt; 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&lt;DefaultMAC&gt; 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&lt;DefaultMAC&gt; 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_END
00103 
00104 <span class="preprocessor">#endif</span>
</div></pre><hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:23:57 2004 for Crypto++ by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address>
</body>
</html>