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

📄 class_block_transformation.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 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++: BlockTransformation class Reference</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&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">Compound&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">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div><h1>BlockTransformation Class Reference</h1><code>#include &lt;<a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>&gt;</code><p><p>Inheritance diagram for BlockTransformation:<p><center><img src="class_block_transformation.png" usemap="#BlockTransformation_map" border="0" alt=""></center><map name="BlockTransformation_map"><area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="0,56,366,80"><area href="class_clonable.html" alt="Clonable" shape="rect" coords="0,0,366,24"><area href="class_block_cipher.html" alt="BlockCipher" shape="rect" coords="0,168,366,192"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, Blowfish_Info >" shape="rect" coords="376,280,742,304"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, CAST128_Info >" shape="rect" coords="376,336,742,360"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, CAST256_Info >" shape="rect" coords="376,392,742,416"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, DES_EDE2_Info >" shape="rect" coords="376,448,742,472"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, DES_EDE3_Info >" shape="rect" coords="376,504,742,528"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, DES_Info >" shape="rect" coords="376,560,742,584"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, DES_XEX3_Info >" shape="rect" coords="376,616,742,640"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, Diamond2_Info >" shape="rect" coords="376,672,742,696"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, Diamond2Lite_Info >" shape="rect" coords="376,728,742,752"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, GOST_Info >" shape="rect" coords="376,784,742,808"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, IDEA_Info >" shape="rect" coords="376,840,742,864"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, LR_Info< T > >" shape="rect" coords="376,896,742,920"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, MARS_Info >" shape="rect" coords="376,952,742,976"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, MDC_Info< T > >" shape="rect" coords="376,1008,742,1032"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, RC2_Info >" shape="rect" coords="376,1064,742,1088"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, RC5_Info >" shape="rect" coords="376,1120,742,1144"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, RC6_Info >" shape="rect" coords="376,1176,742,1200"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, Rijndael_Info >" shape="rect" coords="376,1232,742,1256"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, Serpent_Info >" shape="rect" coords="376,1288,742,1312"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, SHARK_Info >" shape="rect" coords="376,1344,742,1368"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, SKIPJACK_Info >" shape="rect" coords="376,1400,742,1424"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, Square_Info >" shape="rect" coords="376,1456,742,1480"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, TEA_Info >" shape="rect" coords="376,1512,742,1536"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, ThreeWay_Info >" shape="rect" coords="376,1568,742,1592"><area href="class_simple_keying_interface_impl.html" alt="SimpleKeyingInterfaceImpl< BlockCipher, Twofish_Info >" shape="rect" coords="376,1624,742,1648"></map><a href="class_block_transformation-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>interface for the data processing part of block ciphers <p>Classes derived from BlockTransformation are block ciphers in ECB mode (for example the <a class="el" href="class_d_e_s.html#_d_e_sw0">DES::Encryption</a> class), which are stateless, and they can make assumptions about the memory alignment of their inputs and outputs. These classes should not be used directly, but only in combination with a mode class (see <a class="el" href="struct_cipher_mode_documentation.html">CipherModeDocumentation</a> in <a class="el" href="modes_8h.html">modes.h</a>). <p><p>Definition at line <a class="el" href="cryptlib_8h-source.html#l00416">416</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>.<table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_twofish_1_1_basea8" doxytag="BlockTransformation::ProcessAndXorBlock"></a>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_basea8">ProcessAndXorBlock</a> (const byte *inBlock, const byte *xorBlock, byte *outBlock) const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encrypt or decrypt inBlock, xor with xorBlock, and write to outBlock <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_enca9">ProcessBlock</a> (const byte *inBlock, byte *outBlock) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encrypt or decrypt one block </em> <a href="#_twofish_1_1_enca9"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_twofish_1_1_enca10" doxytag="BlockTransformation::ProcessBlock"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_enca10">ProcessBlock</a> (byte *inoutBlock) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encrypt or decrypt one block in place <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_simple_keying_interface_impl_3_01_s_a_f_e_r_1_1_enc_00_01_s_a_f_e_r___s_k___info_01_4a10" doxytag="BlockTransformation::BlockSize"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_simple_keying_interface_impl_3_01_s_a_f_e_r_1_1_enc_00_01_s_a_f_e_r___s_k___info_01_4a10">BlockSize</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">block size of the cipher in bytes <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_twofish_1_1_enca11" doxytag="BlockTransformation::BlockAlignment"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_enca11">BlockAlignment</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">block pointers must be divisible by this <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_twofish_1_1_enca12" doxytag="BlockTransformation::IsPermutation"></a>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_enca12">IsPermutation</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns true if this is a permutation (i.e. there is an inverse transformation) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_twofish_1_1_enca13" doxytag="BlockTransformation::IsForwardTransformation"></a>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_enca13">IsForwardTransformation</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns true if this is an encryption object <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_twofish_1_1_enca14" doxytag="BlockTransformation::OptimalNumberOfParallelBlocks"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_enca14">OptimalNumberOfParallelBlocks</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return number of blocks that can be processed in parallel, for bit-slicing implementations <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_twofish_1_1_enca15" doxytag="BlockTransformation::ProcessAndXorMultipleBlocks"></a>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_twofish_1_1_enca15">ProcessAndXorMultipleBlocks</a> (const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, unsigned int numberOfBlocks) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encrypt or decrypt multiple blocks, for bit-slicing implementations <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_zlib_decompressora17" doxytag="BlockTransformation::AlgorithmName"></a>virtual std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_zlib_decompressora17">AlgorithmName</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns name of this algorithm, not universally implemented yet <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_zlib_decompressora18" doxytag="BlockTransformation::Clone"></a>virtual <a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_block_transformation.html#_zlib_decompressora18">Clone</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this is not implemented by most classes yet <br><br></td></tr></table><hr><h2>Member Function Documentation</h2><a name="_twofish_1_1_enca9" doxytag="BlockTransformation::ProcessBlock"></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> void BlockTransformation::ProcessBlock </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const byte *&nbsp;</td>          <td class="mdname" nowrap> <em>inBlock</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>byte *&nbsp;</td>          <td class="mdname" nowrap> <em>outBlock</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const<code> [inline]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>encrypt or decrypt one block <p><dl compact><dt><b>Precondition:</b></dt><dd>size of inBlock and outBlock == <a class="el" href="class_block_transformation.html#_simple_keying_interface_impl_3_01_s_a_f_e_r_1_1_enc_00_01_s_a_f_e_r___s_k___info_01_4a10">BlockSize()</a> </dd></dl><p>Definition at line <a class="el" href="cryptlib_8h-source.html#l00424">424</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>.    </td>  </tr></table><hr>The documentation for this class was generated from the following files:<ul><li><a class="el" href="cryptlib_8h-source.html">cryptlib.h</a><li><a class="el" href="cryptlib_8cpp-source.html">cryptlib.cpp</a></ul><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 8 23:34:38 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 + -