Sophie

Sophie

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

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++: shark.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>shark.h</h1><a href="shark_8h.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="preprocessor">#ifndef CRYPTOPP_SHARK_H</span>
00002 <span class="preprocessor"></span><span class="preprocessor">#define CRYPTOPP_SHARK_H</span>
00003 <span class="preprocessor"></span><span class="comment"></span>
00004 <span class="comment">/** \file</span>
00005 <span class="comment">*/</span>
00006 
00007 <span class="preprocessor">#include "config.h"</span>
00008 
00009 <span class="preprocessor">#ifdef WORD64_AVAILABLE</span>
00010 <span class="preprocessor"></span>
00011 <span class="preprocessor">#include "seckey.h"</span>
00012 <span class="preprocessor">#include "secblock.h"</span>
00013 
00014 NAMESPACE_BEGIN(CryptoPP)
00015 
00016 <span class="comment">//! _</span>
<a name="l00017"></a><a class="code" href="struct_s_h_a_r_k___info.html">00017</a> <span class="comment"></span>struct <a class="code" href="struct_s_h_a_r_k___info.html">SHARK_Info</a> : public <a class="code" href="class_fixed_block_size.html">FixedBlockSize</a>&lt;8&gt;, public <a class="code" href="class_variable_key_length.html">VariableKeyLength</a>&lt;16, 1, 16&gt;, public <a class="code" href="class_variable_rounds.html">VariableRounds</a>&lt;6, 2&gt;
00018 {
00019         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *StaticAlgorithmName() {<span class="keywordflow">return</span> <span class="stringliteral">"SHARK-E"</span>;}
00020 };
00021 <span class="comment"></span>
00022 <span class="comment">/// &lt;a href="http://www.weidai.com/scan-mirror/cs.html#SHARK-E"&gt;SHARK-E&lt;/a&gt;</span>
<a name="l00023"></a><a class="code" href="class_s_h_a_r_k.html">00023</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_s_h_a_r_k.html">SHARK</a> : <span class="keyword">public</span> <a class="code" href="struct_s_h_a_r_k___info.html">SHARK_Info</a>, <span class="keyword">public</span> <a class="code" href="struct_block_cipher_documentation.html">BlockCipherDocumentation</a>
00024 {
00025         <span class="keyword">class </span>CRYPTOPP_NO_VTABLE Base : <span class="keyword">public</span> BlockCipherImpl&lt;SHARK_Info&gt;
00026         {
00027         <span class="keyword">public</span>:
00028                 <span class="keywordtype">void</span> UncheckedSetKey(<a class="code" href="cryptlib_8h.html#a11">CipherDir</a> dir, <span class="keyword">const</span> byte *key, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rounds);
00029 
00030         <span class="keyword">protected</span>:
00031                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_rounds;
00032                 <a class="code" href="class_sec_block.html">SecBlock&lt;word64&gt;</a> m_roundKeys;
00033         };
00034 
00035         <span class="keyword">class </span>CRYPTOPP_NO_VTABLE Enc : <span class="keyword">public</span> Base
00036         {
00037         <span class="keyword">public</span>:
00038                 <span class="keywordtype">void</span> ProcessAndXorBlock(<span class="keyword">const</span> byte *inBlock, <span class="keyword">const</span> byte *xorBlock, byte *outBlock) <span class="keyword">const</span>;
00039 
00040                 <span class="comment">// used by Base to do key setup</span>
00041                 <span class="keywordtype">void</span> InitForKeySetup();
00042 
00043         <span class="keyword">private</span>:
00044                 <span class="keyword">static</span> <span class="keyword">const</span> byte sbox[256];
00045                 <span class="keyword">static</span> <span class="keyword">const</span> word64 cbox[8][256];
00046         };
00047 
00048         <span class="keyword">class </span>CRYPTOPP_NO_VTABLE Dec : <span class="keyword">public</span> Base
00049         {
00050         <span class="keyword">public</span>:
00051                 <span class="keywordtype">void</span> ProcessAndXorBlock(<span class="keyword">const</span> byte *inBlock, <span class="keyword">const</span> byte *xorBlock, byte *outBlock) <span class="keyword">const</span>;
00052 
00053         <span class="keyword">private</span>:
00054                 <span class="keyword">static</span> <span class="keyword">const</span> byte sbox[256];
00055                 <span class="keyword">static</span> <span class="keyword">const</span> word64 cbox[8][256];
00056         };
00057 
00058 <span class="keyword">public</span>:
<a name="l00059"></a><a class="code" href="class_s_h_a_r_k.html#_s_h_a_r_kw0">00059</a>         <span class="keyword">typedef</span> <a class="code" href="class_block_cipher_final.html">BlockCipherFinal&lt;ENCRYPTION, Enc&gt;</a> <a class="code" href="class_block_cipher_final.html">Encryption</a>;
<a name="l00060"></a><a class="code" href="class_s_h_a_r_k.html#_s_h_a_r_kw1">00060</a>         <span class="keyword">typedef</span> <a class="code" href="class_block_cipher_final.html">BlockCipherFinal&lt;DECRYPTION, Dec&gt;</a> <a class="code" href="class_block_cipher_final.html">Decryption</a>;
00061 };
00062 
00063 <span class="keyword">typedef</span> <a class="code" href="class_block_cipher_final.html">SHARK::Encryption</a> <a class="code" href="class_block_cipher_final.html">SHARKEncryption</a>;
00064 <span class="keyword">typedef</span> <a class="code" href="class_block_cipher_final.html">SHARK::Decryption</a> <a class="code" href="class_block_cipher_final.html">SHARKDecryption</a>;
00065 
00066 NAMESPACE_END
00067 
00068 <span class="preprocessor">#endif</span>
00069 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
</div></pre><hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:23:59 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>