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

📄 class_stream_transformation.html

📁 著名的密码库Crypto++的文档 C++语言的杰作。程序员必备。
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>Crypto++: StreamTransformation Class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.2 --><div class="tabs">  <ul>    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>    <li><a href="namespaces.html"><span>Namespaces</span></a></li>    <li class="current"><a href="classes.html"><span>Classes</span></a></li>    <li><a href="files.html"><span>Files</span></a></li>  </ul></div><div class="tabs">  <ul>    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>  </ul></div><h1>StreamTransformation Class Reference</h1><!-- doxytag: class="StreamTransformation" --><!-- doxytag: inherits="Algorithm" --><code>#include &lt;<a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>&gt;</code><p><p>Inheritance diagram for StreamTransformation:<p><center><img src="class_stream_transformation.png" usemap="#StreamTransformation_map" border="0" alt=""></center><map name="StreamTransformation_map"><area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="754,56,1121,80"><area href="class_clonable.html" alt="Clonable" shape="rect" coords="754,0,1121,24"><area href="class_public_blum_blum_shub.html" alt="PublicBlumBlumShub" shape="rect" coords="0,168,367,192"><area href="class_symmetric_cipher.html" alt="SymmetricCipher" shape="rect" coords="1508,168,1875,192"><area href="class_blum_blum_shub.html" alt="BlumBlumShub" shape="rect" coords="0,224,367,248"><area href="class_cipher_mode_base.html" alt="CipherModeBase" shape="rect" coords="942,224,1309,248"><area href="class_weak1_1_1_a_r_c4___base.html" alt="Weak1::ARC4_Base" shape="rect" coords="2073,224,2440,248"><area href="class_block_oriented_cipher_mode_base.html" alt="BlockOrientedCipherModeBase" shape="rect" coords="377,280,744,304"><area href="class_mode_policy_common_template.html" alt="ModePolicyCommonTemplate< POLICY_INTERFACE >" shape="rect" coords="754,280,1121,304"><area href="class_mode_policy_common_template.html" alt="ModePolicyCommonTemplate< AdditiveCipherAbstractPolicy >" shape="rect" coords="1131,280,1498,304"><area href="class_mode_policy_common_template.html" alt="ModePolicyCommonTemplate< CFB_CipherAbstractPolicy >" shape="rect" coords="1696,280,2063,304"><area href="class_weak1_1_1_m_a_r_c4___base.html" alt="Weak1::MARC4_Base" shape="rect" coords="2073,280,2440,304"><area href="class_c_b_c___mode_base.html" alt="CBC_ModeBase" shape="rect" coords="188,336,555,360"><area href="class_e_c_b___one_way.html" alt="ECB_OneWay" shape="rect" coords="565,336,932,360"><area href="class_c_t_r___mode_policy.html" alt="CTR_ModePolicy" shape="rect" coords="942,336,1309,360"><area href="class_o_f_b___mode_policy.html" alt="OFB_ModePolicy" shape="rect" coords="1319,336,1686,360"><area href="class_c_f_b___mode_policy.html" alt="CFB_ModePolicy" shape="rect" coords="1696,336,2063,360"><area href="class_c_b_c___decryption.html" alt="CBC_Decryption" shape="rect" coords="0,392,367,416"><area href="class_c_b_c___encryption.html" alt="CBC_Encryption" shape="rect" coords="377,392,744,416"><area href="class_c_b_c___c_t_s___decryption.html" alt="CBC_CTS_Decryption" shape="rect" coords="0,448,367,472"><area href="class_c_b_c___c_t_s___encryption.html" alt="CBC_CTS_Encryption" shape="rect" coords="377,448,744,472"></map><a href="class_stream_transformation-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>interface for the data processing part of stream ciphers <p><p>Definition at line <a class="el" href="cryptlib_8h-source.html#l00464">464</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 class="el" href="class_stream_transformation.html">StreamTransformation</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#8c9304fff5af593ee68d3cf0d33c06e9">Ref</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return a reference to this object,  <a href="#8c9304fff5af593ee68d3cf0d33c06e9"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e224d250f716e82c54bc4e4c8930d188"></a><!-- doxytag: member="StreamTransformation::MandatoryBlockSize" ref="e224d250f716e82c54bc4e4c8930d188" args="() const" -->virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#e224d250f716e82c54bc4e4c8930d188">MandatoryBlockSize</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns block size, if input must be processed in blocks, otherwise 1 <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#f66ef64545279c01310718af3d627534">OptimalBlockSize</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns the input block size that is most efficient for this cipher  <a href="#f66ef64545279c01310718af3d627534"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b8422f6eee08fbc70069e222186e90de"></a><!-- doxytag: member="StreamTransformation::GetOptimalBlockSizeUsed" ref="b8422f6eee08fbc70069e222186e90de" args="() const" -->virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#b8422f6eee08fbc70069e222186e90de">GetOptimalBlockSizeUsed</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns how much of the current block is used up <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b9e603c24d02c4538b77b9d59f36310e"></a><!-- doxytag: member="StreamTransformation::OptimalDataAlignment" ref="b9e603c24d02c4538b77b9d59f36310e" args="() const" -->virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#b9e603c24d02c4538b77b9d59f36310e">OptimalDataAlignment</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns how input should be aligned for optimal performance <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#26feabde21bc4d1783195969733e3bb0">ProcessData</a> (byte *outString, const byte *inString, size_t length)=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encrypt or decrypt an array of bytes of specified length  <a href="#26feabde21bc4d1783195969733e3bb0"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#0668b78edaea082f87bf3e878c4c02f7">ProcessLastBlock</a> (byte *outString, const byte *inString, size_t length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for ciphers where the last block of data is special, encrypt or decrypt the last block of data  <a href="#0668b78edaea082f87bf3e878c4c02f7"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0b7c5bc41b9b5f6443ee32d65ebc044c"></a><!-- doxytag: member="StreamTransformation::MinLastBlockSize" ref="0b7c5bc41b9b5f6443ee32d65ebc044c" args="() const" -->virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#0b7c5bc41b9b5f6443ee32d65ebc044c">MinLastBlockSize</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns the minimum size of the last block, 0 indicating the last block is not special <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c00f3fcc21f33f11c8efa4de67ff7774"></a><!-- doxytag: member="StreamTransformation::ProcessString" ref="c00f3fcc21f33f11c8efa4de67ff7774" args="(byte *inoutString, size_t length)" -->void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#c00f3fcc21f33f11c8efa4de67ff7774">ProcessString</a> (byte *inoutString, size_t length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">same as ProcessData(inoutString, inoutString, length) <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="17951cb36412763e0d6bd9696177175d"></a><!-- doxytag: member="StreamTransformation::ProcessString" ref="17951cb36412763e0d6bd9696177175d" args="(byte *outString, const byte *inString, size_t length)" -->void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#17951cb36412763e0d6bd9696177175d">ProcessString</a> (byte *outString, const byte *inString, size_t length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">same as ProcessData(outString, inString, length) <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="71a9bd33526fc7f227050075e7a78106"></a><!-- doxytag: member="StreamTransformation::ProcessByte" ref="71a9bd33526fc7f227050075e7a78106" args="(byte input)" -->byte&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#71a9bd33526fc7f227050075e7a78106">ProcessByte</a> (byte input)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implemented as {ProcessData(&amp;input, &amp;input, 1); return input;} <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c97d3fcac9b9f596ac8a7c69b69524cf"></a><!-- doxytag: member="StreamTransformation::IsRandomAccess" ref="c97d3fcac9b9f596ac8a7c69b69524cf" args="() const=0" -->virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#c97d3fcac9b9f596ac8a7c69b69524cf">IsRandomAccess</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this cipher supports random access <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7bfbac3f2e43b50d1e16e6b4b2d2e48a"></a><!-- doxytag: member="StreamTransformation::Seek" ref="7bfbac3f2e43b50d1e16e6b4b2d2e48a" args="(lword n)" -->virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#7bfbac3f2e43b50d1e16e6b4b2d2e48a">Seek</a> (lword n)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for random access ciphers, seek to an absolute position <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aad9b1fd9cceaf3641f03452da29534b"></a><!-- doxytag: member="StreamTransformation::IsSelfInverting" ref="aad9b1fd9cceaf3641f03452da29534b" args="() const=0" -->virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#aad9b1fd9cceaf3641f03452da29534b">IsSelfInverting</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this transformation is self-inverting (e.g. xor with a keystream) <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="548b24c9354ebda5cdd06ef1cd79667b"></a><!-- doxytag: member="StreamTransformation::IsForwardTransformation" ref="548b24c9354ebda5cdd06ef1cd79667b" args="() const=0" -->virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#548b24c9354ebda5cdd06ef1cd79667b">IsForwardTransformation</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this is an encryption object <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4f31510a192d1121856efe8ad0a9b844"></a><!-- doxytag: member="StreamTransformation::AlgorithmName" ref="4f31510a192d1121856efe8ad0a9b844" args="() const" -->virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#4f31510a192d1121856efe8ad0a9b844">AlgorithmName</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns name of this algorithm, not universally implemented yet <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d0016ba2d505c23aa85aad49e6c19bb7"></a><!-- doxytag: member="StreamTransformation::Clone" ref="d0016ba2d505c23aa85aad49e6c19bb7" args="() const" -->virtual <a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_clonable.html#d0016ba2d505c23aa85aad49e6c19bb7">Clone</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this is not implemented by most classes yet <br></td></tr></table><hr><h2>Member Function Documentation</h2><a class="anchor" name="8c9304fff5af593ee68d3cf0d33c06e9"></a><!-- doxytag: member="StreamTransformation::Ref" ref="8c9304fff5af593ee68d3cf0d33c06e9" args="()" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname"><a class="el" href="class_stream_transformation.html">StreamTransformation</a>&amp; StreamTransformation::Ref           </td>          <td>(</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline]</code></td>        </tr>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -