Sophie

Sophie

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

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++: gf256.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>gf256.h</h1><pre class="fragment"><div>00001 <span class="preprocessor">#ifndef CRYPTOPP_GF256_H</span>
00002 <span class="preprocessor"></span><span class="preprocessor">#define CRYPTOPP_GF256_H</span>
00003 <span class="preprocessor"></span>
00004 <span class="preprocessor">#include "<a class="code" href="cryptlib_8h.html">cryptlib.h</a>"</span>
00005 
00006 NAMESPACE_BEGIN(CryptoPP)
00007 
00008 <span class="comment">//! GF(256) with polynomial basis</span>
<a name="l00009"></a><a class="code" href="class_g_f256.html">00009</a> <span class="comment"></span>class <a class="code" href="class_g_f256.html">GF256</a>
00010 {
00011 <span class="keyword">public</span>:
00012         <span class="keyword">typedef</span> byte Element;
00013         <span class="keyword">typedef</span> <span class="keywordtype">int</span> RandomizationParameter;
00014 
00015         GF256(byte modulus) : m_modulus(modulus) {}
00016 
00017         Element RandomElement(<a class="code" href="class_random_number_generator.html">RandomNumberGenerator</a> &amp;rng, <span class="keywordtype">int</span> ignored = 0)<span class="keyword"> const</span>
00018 <span class="keyword">                </span>{<span class="keywordflow">return</span> rng.<a class="code" href="class_random_number_generator.html#_random_number_generatora0">GenerateByte</a>();}
00019 
00020         <span class="keywordtype">bool</span> Equal(Element a, Element b)<span class="keyword"> const</span>
00021 <span class="keyword">                </span>{<span class="keywordflow">return</span> a==b;}
00022 
00023         Element Zero()<span class="keyword"> const</span>
00024 <span class="keyword">                </span>{<span class="keywordflow">return</span> 0;}
00025 
00026         Element Add(Element a, Element b)<span class="keyword"> const</span>
00027 <span class="keyword">                </span>{<span class="keywordflow">return</span> a^b;}
00028 
00029         Element&amp; Accumulate(Element &amp;a, Element b)<span class="keyword"> const</span>
00030 <span class="keyword">                </span>{<span class="keywordflow">return</span> a^=b;}
00031 
00032         Element Inverse(Element a)<span class="keyword"> const</span>
00033 <span class="keyword">                </span>{<span class="keywordflow">return</span> a;}
00034 
00035         Element Subtract(Element a, Element b)<span class="keyword"> const</span>
00036 <span class="keyword">                </span>{<span class="keywordflow">return</span> a^b;}
00037 
00038         Element&amp; Reduce(Element &amp;a, Element b)<span class="keyword"> const</span>
00039 <span class="keyword">                </span>{<span class="keywordflow">return</span> a^=b;}
00040 
00041         Element Double(Element a)<span class="keyword"> const</span>
00042 <span class="keyword">                </span>{<span class="keywordflow">return</span> 0;}
00043 
00044         Element One()<span class="keyword"> const</span>
00045 <span class="keyword">                </span>{<span class="keywordflow">return</span> 1;}
00046 
00047         Element Multiply(Element a, Element b) <span class="keyword">const</span>;
00048 
00049         Element <a class="code" href="class_square.html">Square</a>(Element a)<span class="keyword"> const</span>
00050 <span class="keyword">                </span>{<span class="keywordflow">return</span> Multiply(a, a);}
00051 
00052         <span class="keywordtype">bool</span> IsUnit(Element a)<span class="keyword"> const</span>
00053 <span class="keyword">                </span>{<span class="keywordflow">return</span> a != 0;}
00054 
00055         Element MultiplicativeInverse(Element a) <span class="keyword">const</span>;
00056 
00057         Element Divide(Element a, Element b)<span class="keyword"> const</span>
00058 <span class="keyword">                </span>{<span class="keywordflow">return</span> Multiply(a, MultiplicativeInverse(b));}
00059 
00060 <span class="keyword">private</span>:
00061         word m_modulus;
00062 };
00063 
00064 NAMESPACE_END
00065 
00066 <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>