<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Crypto++: Clonable Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Crypto++  <span id="projectnumber">7.0</span> </div> <div id="projectbrief">Free C++ class library of cryptographic schemes</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="class_clonable-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">Clonable Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>Interface for cloning objects. <a href="class_clonable.html#details">More...</a></p> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"> <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Clonable:</div> <div id="dynsection-0-summary" class="dynsummary" style="display:block;"> </div> <div id="dynsection-0-content" class="dyncontent" style="display:none;"> <div class="center"> <img src="class_clonable.png" usemap="#Clonable_map" alt=""/> <map id="Clonable_map" name="Clonable_map"> <area href="class_algorithm.html" title="Interface for all crypto algorithms." alt="Algorithm" shape="rect" coords="2985,56,3572,80"/> <area href="class_asymmetric_algorithm.html" title="Interface for asymmetric algorithms." alt="AsymmetricAlgorithm" shape="rect" coords="0,112,587,136"/> <area href="class_block_transformation.html" title="Interface for the data processing part of block ciphers." alt="BlockTransformation" shape="rect" coords="1194,112,1781,136"/> <area href="class_buffered_transformation.html" title="Interface for buffered transformations." alt="BufferedTransformation" shape="rect" coords="1791,112,2378,136"/> <area href="class_hash_transformation.html" title="Interface for hash functions and data processing part of MACs." alt="HashTransformation" shape="rect" coords="2985,112,3572,136"/> <area href="class_key_derivation_function.html" title="Interface for key derivation functions." alt="KeyDerivationFunction" shape="rect" coords="4179,112,4766,136"/> <area href="class_random_number_generator.html" title="Interface for random number generators." alt="RandomNumberGenerator" shape="rect" coords="5373,112,5960,136"/> <area href="class_stream_transformation.html" title="Interface for the data processing portion of stream ciphers." alt="StreamTransformation" shape="rect" coords="6567,112,7154,136"/> <area href="class_key_agreement_algorithm.html" title="Interface for key agreement algorithms." alt="KeyAgreementAlgorithm" shape="rect" coords="597,168,1184,192"/> <area href="class_private_key_algorithm.html" title="Interface for asymmetric algorithms using private keys." alt="PrivateKeyAlgorithm" shape="rect" coords="597,224,1184,248"/> <area href="class_public_key_algorithm.html" title="Interface for asymmetric algorithms using public keys." alt="PublicKeyAlgorithm" shape="rect" coords="597,280,1184,304"/> <area href="class_block_cipher.html" title="Interface for one direction (encryption or decryption) of a block cipher." alt="BlockCipher" shape="rect" coords="1194,168,1781,192"/> <area href="class_auto_signaling.html" alt="AutoSignaling< BufferedTransformation >" shape="rect" coords="2388,168,2975,192"/> <area href="class_bufferless.html" alt="Bufferless< BufferedTransformation >" shape="rect" coords="2388,224,2975,248"/> <area href="class_filter.html" title="Implementation of BufferedTransformation's attachment interface." alt="Filter" shape="rect" coords="2388,280,2975,304"/> <area href="class_input_rejecting.html" alt="InputRejecting< BufferedTransformation >" shape="rect" coords="2388,336,2975,360"/> <area href="class_sink.html" title="Implementation of BufferedTransformation's attachment interface." alt="Sink" shape="rect" coords="2388,392,2975,416"/> <area href="class_adler32.html" title="ADLER-32 checksum calculations." alt="Adler32" shape="rect" coords="3582,168,4169,192"/> <area href="class_c_r_c32.html" title="CRC-32 Checksum Calculation." alt="CRC32" shape="rect" coords="3582,224,4169,248"/> <area href="class_c_r_c32_c.html" title="CRC-32C Checksum Calculation." alt="CRC32C" shape="rect" coords="3582,280,4169,304"/> <area href="class_iterated_hash_base.html" alt="IteratedHashBase< T_HashWordType, HashTransformation >" shape="rect" coords="3582,336,4169,360"/> <area href="class_iterated_hash_base.html" alt="IteratedHashBase< word32, HashTransformation >" shape="rect" coords="3582,392,4169,416"/> <area href="class_iterated_hash_base.html" alt="IteratedHashBase< word64, HashTransformation >" shape="rect" coords="3582,448,4169,472"/> <area href="class_keccak.html" title="Keccak message digest base class." alt="Keccak" shape="rect" coords="3582,504,4169,528"/> <area href="class_message_authentication_code.html" title="Interface for message authentication codes." alt="MessageAuthenticationCode" shape="rect" coords="3582,560,4169,584"/> <area href="class_null_hash.html" alt="NullHash" shape="rect" coords="3582,616,4169,640"/> <area href="class_p_k___message_accumulator.html" title="Interface for accumulating messages to be signed or verified." alt="PK_MessageAccumulator" shape="rect" coords="3582,672,4169,696"/> <area href="class_s_h_a3.html" title="SHA3 message digest base class." alt="SHA3" shape="rect" coords="3582,728,4169,752"/> <area href="class_truncated_hash_template.html" title="construct new HashModule with smaller DigestSize() from existing one" alt="TruncatedHashTemplate< T >" shape="rect" coords="3582,784,4169,808"/> <area href="class_weak_1_1_m_d2.html" title="MD2 message digest." alt="Weak::MD2" shape="rect" coords="3582,840,4169,864"/> <area href="class_h_k_d_f.html" title="Extract-and-Expand Key Derivation Function (HKDF)" alt="HKDF< T >" shape="rect" coords="4776,168,5363,192"/> <area href="struct_password_based_key_derivation_function.html" title="Interface for password based key derivation functions." alt="PasswordBasedKeyDerivationFunction" shape="rect" coords="4776,224,5363,248"/> <area href="class_scrypt.html" title="Scrypt key derivation function." alt="Scrypt" shape="rect" coords="4776,280,5363,304"/> <area href="class_additive_cipher_template.html" title="Base class for additive stream ciphers with SymmetricCipher interface." alt="AdditiveCipherTemplate< BASE >" shape="rect" coords="5970,168,6557,192"/> <area href="class_additive_cipher_template.html" alt="AdditiveCipherTemplate< AbstractPolicyHolder< AdditiveCipherAbstractPolicy, CTR_ModePolicy > >" shape="rect" coords="5970,224,6557,248"/> <area href="class_auto_seeded_x917_r_n_g.html" title="Automatically Seeded X9.17 RNG." alt="AutoSeededX917RNG< BLOCK_CIPHER >" shape="rect" coords="5970,280,6557,304"/> <area href="class_blocking_rng.html" title="Wrapper class for /dev/random and /dev/srandom." alt="BlockingRng" shape="rect" coords="5970,336,6557,360"/> <area href="class_class_null_r_n_g.html" title="Random Number Generator that does not produce random numbers." alt="ClassNullRNG" shape="rect" coords="5970,392,6557,416"/> <area href="class_k_d_f2___r_n_g.html" alt="KDF2_RNG" shape="rect" coords="5970,448,6557,472"/> <area href="class_l_c___r_n_g.html" title="Linear Congruential Generator (LCG)" alt="LC_RNG" shape="rect" coords="5970,504,6557,528"/> <area href="class_mersenne_twister.html" title="Mersenne Twister class for Monte-Carlo simulations." alt="MersenneTwister< K, M, N, F, S >" shape="rect" coords="5970,560,6557,584"/> <area href="class_mersenne_twister.html" alt="MersenneTwister< 0x9908B0DF, 397, 624, 0x10DCD, 4537 >" shape="rect" coords="5970,616,6557,640"/> <area href="class_mersenne_twister.html" alt="MersenneTwister< 0x9908B0DF, 397, 624, 0x6C078965, 5489 >" shape="rect" coords="5970,672,6557,696"/> <area href="class_n_i_s_t___d_r_b_g.html" title="Interface for NIST DRBGs from SP 800-90A." alt="NIST_DRBG" shape="rect" coords="5970,728,6557,752"/> <area href="class_nonblocking_rng.html" title="Wrapper class for /dev/random and /dev/srandom." alt="NonblockingRng" shape="rect" coords="5970,784,6557,808"/> <area href="class_old_random_pool.html" title="Randomness Pool based on PGP 2.6.x with MDC." alt="OldRandomPool" shape="rect" coords="5970,840,6557,864"/> <area href="class_padlock_r_n_g.html" title="Hardware generated random numbers using VIA XSTORE." alt="PadlockRNG" shape="rect" coords="5970,896,6557,920"/> <area href="class_public_blum_blum_shub.html" title="BlumBlumShub without factorization of the modulus." alt="PublicBlumBlumShub" shape="rect" coords="5970,952,6557,976"/> <area href="class_random_pool.html" title="Randomness Pool based on AES-256." alt="RandomPool" shape="rect" coords="5970,1008,6557,1032"/> <area href="class_r_d_r_a_n_d.html" title="Hardware generated random numbers using RDRAND instruction." alt="RDRAND" shape="rect" coords="5970,1064,6557,1088"/> <area href="class_r_d_s_e_e_d.html" title="Hardware generated random numbers using RDSEED instruction." alt="RDSEED" shape="rect" coords="5970,1120,6557,1144"/> <area href="class_weak_1_1_a_r_c4___base.html" title="ARC4 base class." alt="Weak::ARC4_Base" shape="rect" coords="5970,1176,6557,1200"/> <area href="class_x917_r_n_g.html" title="ANSI X9.17 RNG." alt="X917RNG" shape="rect" coords="5970,1232,6557,1256"/> <area href="class_authenticated_symmetric_cipher.html" title="Interface for authenticated encryption modes of operation." alt="AuthenticatedSymmetricCipher" shape="rect" coords="7164,168,7751,192"/> <area href="class_public_blum_blum_shub.html" title="BlumBlumShub without factorization of the modulus." alt="PublicBlumBlumShub" shape="rect" coords="7164,224,7751,248"/> <area href="class_symmetric_cipher.html" title="Interface for one direction (encryption or decryption) of a stream cipher or cipher mode." alt="SymmetricCipher" shape="rect" coords="7164,280,7751,304"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:ad0016ba2d505c23aa85aad49e6c19bb7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_clonable.html">Clonable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_clonable.html#ad0016ba2d505c23aa85aad49e6c19bb7">Clone</a> () const</td></tr> <tr class="memdesc:ad0016ba2d505c23aa85aad49e6c19bb7"><td class="mdescLeft"> </td><td class="mdescRight">Copies this object. <a href="#ad0016ba2d505c23aa85aad49e6c19bb7">More...</a><br /></td></tr> <tr class="separator:ad0016ba2d505c23aa85aad49e6c19bb7"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Interface for cloning objects. </p> <dl class="section note"><dt>Note</dt><dd>this is <em>not</em> implemented by most classes </dd></dl> <dl class="section see"><dt>See also</dt><dd><a class="el" href="class_clonable_impl.html" title="Base class for identifying alogorithm.">ClonableImpl</a>, <a class="el" href="class_not_copyable.html" title="Ensures an object is not copyable.">NotCopyable</a> </dd></dl> <p class="definition">Definition at line <a class="el" href="cryptlib_8h_source.html#l00559">559</a> of file <a class="el" href="cryptlib_8h_source.html">cryptlib.h</a>.</p> </div><h2 class="groupheader">Member Function Documentation</h2> <a id="ad0016ba2d505c23aa85aad49e6c19bb7"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad0016ba2d505c23aa85aad49e6c19bb7">◆ </a></span>Clone()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="class_clonable.html">Clonable</a>* Clonable::Clone </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Copies this object. </p> <dl class="section return"><dt>Returns</dt><dd>a copy of this object </dd></dl> <dl class="exception"><dt>Exceptions</dt><dd> <table class="exception"> <tr><td class="paramname"><a class="el" href="class_not_implemented.html" title="A method was called which was not implemented.">NotImplemented</a></td><td></td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this is <em>not</em> implemented by most classes </dd></dl> <dl class="section see"><dt>See also</dt><dd><a class="el" href="class_not_copyable.html" title="Ensures an object is not copyable.">NotCopyable</a> </dd></dl> <p class="definition">Definition at line <a class="el" href="cryptlib_8h_source.html#l00569">569</a> of file <a class="el" href="cryptlib_8h_source.html">cryptlib.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="cryptlib_8h_source.html">cryptlib.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Wed Nov 27 2019 15:04:02 for Crypto++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.15 </small></address> </body> </html>