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

📄 class_m_a_r_c4___base.html

📁 Crypto++是一个非常强大的密码学库,主要是功能全
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!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++: MARC4_Base 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>MARC4_Base Class Reference</h1><code>#include &lt;<a class="el" href="arc4_8h-source.html">arc4.h</a>&gt;</code><p><p>Inheritance diagram for MARC4_Base:<p><center><img src="class_m_a_r_c4___base.png" usemap="#MARC4_Base_map" border="0" alt=""></center><map name="MARC4_Base_map"><area href="class_a_r_c4___base.html" alt="ARC4_Base" shape="rect" coords="214,224,418,248"><area href="class_variable_key_length.html" alt="VariableKeyLength< 16, 1, 256 >" shape="rect" coords="0,168,204,192"><area href="class_random_number_generator.html" alt="RandomNumberGenerator" shape="rect" coords="214,168,418,192"><area href="class_symmetric_cipher.html" alt="SymmetricCipher" shape="rect" coords="535,168,739,192"><area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="214,112,418,136"><area href="class_stream_transformation.html" alt="StreamTransformation" shape="rect" coords="428,112,632,136"><area href="class_simple_keying_interface.html" alt="SimpleKeyingInterface" shape="rect" coords="642,112,846,136"><area href="class_clonable.html" alt="Clonable" shape="rect" coords="214,56,418,80"><area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="428,56,632,80"><area href="class_clonable.html" alt="Clonable" shape="rect" coords="428,0,632,24"></map><a href="class_m_a_r_c4___base-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>Modified ARC4: it discards the first 256 bytes of keystream which may be weaker than the rest. <p>You can #MARC4 typedef rather than this class directly. <p><p>Definition at line <a class="el" href="arc4_8h-source.html#l00040">40</a> of file <a class="el" href="arc4_8h-source.html">arc4.h</a>.<table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___basew0" doxytag="MARC4_Base::Encryption"></a>typedef SymmetricCipherFinalTemplate&lt;<br> <a class="el" href="class_m_a_r_c4___base.html">MARC4_Base</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><b>Encryption</b></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___basew1" doxytag="MARC4_Base::Decryption"></a>typedef SymmetricCipherFinalTemplate&lt;<br> <a class="el" href="class_m_a_r_c4___base.html">MARC4_Base</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><b>Decryption</b></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><b>IV_Requirement</b> { <br>&nbsp;&nbsp;<b>STRUCTURED_IV</b> =  0, <b>RANDOM_IV</b>, <b>UNPREDICTABLE_RANDOM_IV</b>, <b>INTERNALLY_GENERATED_IV</b>, <br>&nbsp;&nbsp;<b>NOT_RESYNCHRONIZABLE</b><br> }</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="_m_a_r_c4___basea0" doxytag="MARC4_Base::GenerateByte"></a>byte&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_m_a_r_c4___basea0">GenerateByte</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate new random byte and return it <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_m_a_r_c4___base.html#_m_a_r_c4___basea1">DiscardBytes</a> (unsigned int n)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate and discard n bytes </em> <a href="#_m_a_r_c4___basea1"></a><em><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_m_a_r_c4___base.html#_m_a_r_c4___basea2">ProcessData</a> (byte *outString, const byte *inString, unsigned int length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">encrypt or decrypt an array of bytes of specified length </em> <a href="#_m_a_r_c4___basea2"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___basea3" doxytag="MARC4_Base::IsRandomAccess"></a>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_m_a_r_c4___basea3">IsRandomAccess</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this cipher supports random access <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___basea4" doxytag="MARC4_Base::IsSelfInverting"></a>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_m_a_r_c4___basea4">IsSelfInverting</a> () const</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><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___basea5" doxytag="MARC4_Base::IsForwardTransformation"></a>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_m_a_r_c4___basea5">IsForwardTransformation</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this is an encryption object <br><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_m_a_r_c4___base.html#_x917_r_n_ga2">GenerateBit</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate new random bit and return it </em> <a href="#_x917_r_n_ga2"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x917_r_n_ga3" doxytag="MARC4_Base::GenerateWord32"></a>virtual word32&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x917_r_n_ga3">GenerateWord32</a> (word32 a=0, word32 b=0xffffffffL)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate a random 32 bit word in the range min to max, inclusive <br><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_m_a_r_c4___base.html#_x917_r_n_ga4">GenerateBlock</a> (byte *output, unsigned int size)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">generate random array of bytes </em> <a href="#_x917_r_n_ga4"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x917_r_n_ga6" doxytag="MARC4_Base::Shuffle"></a>template&lt;class IT&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x917_r_n_ga6">Shuffle</a> (IT begin, IT end)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">randomly shuffle the specified array, resulting permutation is uniformly distributed <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_zlib_decompressora17" doxytag="MARC4_Base::AlgorithmName"></a>virtual std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.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="MARC4_Base::Clone"></a>virtual <a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.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><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_m_a_r_c4___base.html#_symmetric_ciphera0">Ref</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return a reference to this object, </em> <a href="#_symmetric_ciphera0"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera1" doxytag="MARC4_Base::MandatoryBlockSize"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera1">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><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_m_a_r_c4___base.html#_symmetric_ciphera2">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 </em> <a href="#_symmetric_ciphera2"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera3" doxytag="MARC4_Base::GetOptimalBlockSizeUsed"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera3">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><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera4" doxytag="MARC4_Base::OptimalDataAlignment"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera4">OptimalDataAlignment</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns how input should be aligned for optimal performance <br><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_m_a_r_c4___base.html#_symmetric_ciphera6">ProcessLastBlock</a> (byte *outString, const byte *inString, unsigned int 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 </em> <a href="#_symmetric_ciphera6"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera7" doxytag="MARC4_Base::MinLastBlockSize"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera7">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><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera8" doxytag="MARC4_Base::ProcessString"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera8">ProcessString</a> (byte *inoutString, unsigned int length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">same as ProcessData(inoutString, inoutString, length) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera9" doxytag="MARC4_Base::ProcessString"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera9">ProcessString</a> (byte *outString, const byte *inString, unsigned int length)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">same as ProcessData(outString, inString, length) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera10" doxytag="MARC4_Base::ProcessByte"></a>byte&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera10">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><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_symmetric_ciphera12" doxytag="MARC4_Base::Seek"></a>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_symmetric_ciphera12">Seek</a> (dword n)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for random access ciphers, seek to an absolute position <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea21" doxytag="MARC4_Base::MinKeyLength"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea21">MinKeyLength</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns smallest valid key length in bytes */ <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea22" doxytag="MARC4_Base::MaxKeyLength"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea22">MaxKeyLength</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns largest valid key length in bytes */ <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea23" doxytag="MARC4_Base::DefaultKeyLength"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea23">DefaultKeyLength</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns default (recommended) key length in bytes */ <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea24" doxytag="MARC4_Base::GetValidKeyLength"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea24">GetValidKeyLength</a> (unsigned int n) const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns the smallest valid key length in bytes that is &gt;= min(n, GetMaxKeyLength()) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea25" doxytag="MARC4_Base::IsValidKeyLength"></a>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea25">IsValidKeyLength</a> (unsigned int n) const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether n is a valid key length <br><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_m_a_r_c4___base.html#_x_m_a_c_c___basea26">SetKey</a> (const byte *key, unsigned int length, const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;params=<a class="el" href="cryptlib_8h.html#a3">g_nullNameValuePairs</a>)=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set or reset the key of this object </em> <a href="#_x_m_a_c_c___basea26"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea27" doxytag="MARC4_Base::SetKeyWithRounds"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea27">SetKeyWithRounds</a> (const byte *key, unsigned int length, int rounds)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">calls <a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea26">SetKey()</a> with an <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> object that just specifies "Rounds" <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea28" doxytag="MARC4_Base::SetKeyWithIV"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea28">SetKeyWithIV</a> (const byte *key, unsigned int length, const byte *iv)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">calls <a class="el" href="class_simple_keying_interface.html#_x_m_a_c_c___basea26">SetKey()</a> with an <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> object that just specifies "IV" <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea29" doxytag="MARC4_Base::IVRequirement"></a>virtual IV_Requirement&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea29">IVRequirement</a> () const=0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns the minimal requirement for secure IVs <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea30">IsResynchronizable</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can be resynchronized (i.e. supports initialization vectors) </em> <a href="#_x_m_a_c_c___basea30"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea31" doxytag="MARC4_Base::CanUseRandomIVs"></a>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea31">CanUseRandomIVs</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can use random IVs (in addition to ones returned by GetNextIV) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea32" doxytag="MARC4_Base::CanUsePredictableIVs"></a>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea32">CanUsePredictableIVs</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can use random but possibly predictable IVs (in addition to ones returned by GetNextIV) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___basea33" doxytag="MARC4_Base::CanUseStructuredIVs"></a>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_c___basea33">CanUseStructuredIVs</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object can use structured IVs, for example a counter (in addition to ones returned by GetNextIV) <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_ca32" doxytag="MARC4_Base::IVSize"></a>virtual unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_ca32">IVSize</a> () const</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns size of IVs used by this object <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_ca33" doxytag="MARC4_Base::Resynchronize"></a>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="class_m_a_r_c4___base.html#_x_m_a_c_ca33">Resynchronize</a> (const byte *IV)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">resynchronize with an IV <br><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_m_a_r_c4___base.html#_x_m_a_c_ca34">GetNextIV</a> (byte *IV)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get a secure IV for the next message </em> <a href="#_x_m_a_c_ca34"></a><em><br><br></td></tr><tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___basee0" doxytag="MARC4_Base::StaticAlgorithmName"></a>const char *&nbsp;</td><td class="memItemRight" valign=bottom><b>StaticAlgorithmName</b> ()</td></tr><tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___baseb0" doxytag="MARC4_Base::GetDefaultDiscardBytes"></a>unsigned int&nbsp;</td><td class="memItemRight" valign=bottom><b>GetDefaultDiscardBytes</b> () const</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_m_a_r_c4___baseb1" doxytag="MARC4_Base::UncheckedSetKey"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><b>UncheckedSetKey</b> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;params, const byte *key, unsigned int length)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___baseb8" doxytag="MARC4_Base::ThrowIfInvalidKeyLength"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><b>ThrowIfInvalidKeyLength</b> (const <a class="el" href="class_algorithm.html">Algorithm</a> &amp;algorithm, unsigned int length)</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_m_a_c_c___baseb9" doxytag="MARC4_Base::AssertValidKeyLength"></a>void&nbsp;</td><td class="memItemRight" valign=bottom><b>AssertValidKeyLength</b> (unsigned int length) const</td></tr>

⌨️ 快捷键说明

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