<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.14"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Crypto++: BlumBlumShub 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.14 --> <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_blum_blum_shub-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">BlumBlumShub Class Reference</div> </div> </div><!--header--> <div class="contents"> <p><a class="el" href="class_blum_blum_shub.html" title="BlumBlumShub with factorization of the modulus. ">BlumBlumShub</a> with factorization of the modulus. <a href="class_blum_blum_shub.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 BlumBlumShub:</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_blum_blum_shub.png" usemap="#BlumBlumShub_map" alt=""/> <map id="BlumBlumShub_map" name="BlumBlumShub_map"> <area href="class_public_blum_blum_shub.html" title="BlumBlumShub without factorization of the modulus. " alt="PublicBlumBlumShub" shape="rect" coords="84,168,242,192"/> <area href="class_random_number_generator.html" title="Interface for random number generators. " alt="RandomNumberGenerator" shape="rect" coords="0,112,158,136"/> <area href="class_stream_transformation.html" title="Interface for the data processing portion of stream ciphers. " alt="StreamTransformation" shape="rect" coords="168,112,326,136"/> <area href="class_algorithm.html" title="Interface for all crypto algorithms. " alt="Algorithm" shape="rect" coords="0,56,158,80"/> <area href="class_algorithm.html" title="Interface for all crypto algorithms. " alt="Algorithm" shape="rect" coords="168,56,326,80"/> <area href="class_clonable.html" title="Interface for cloning objects. " alt="Clonable" shape="rect" coords="0,0,158,24"/> <area href="class_clonable.html" title="Interface for cloning objects. " alt="Clonable" shape="rect" coords="168,0,326,24"/> </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:ab53b99f246235429694719d41e00b658"><td class="memItemLeft" align="right" valign="top"><a id="ab53b99f246235429694719d41e00b658"></a>  </td><td class="memItemRight" valign="bottom"><b>BlumBlumShub</b> (const <a class="el" href="class_integer.html">Integer</a> &p, const <a class="el" href="class_integer.html">Integer</a> &q, const <a class="el" href="class_integer.html">Integer</a> &seed)</td></tr> <tr class="separator:ab53b99f246235429694719d41e00b658"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adca1fd77ec8f237fa8eeaf6fb22a6412"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_blum_blum_shub.html#adca1fd77ec8f237fa8eeaf6fb22a6412">IsRandomAccess</a> () const</td></tr> <tr class="memdesc:adca1fd77ec8f237fa8eeaf6fb22a6412"><td class="mdescLeft"> </td><td class="mdescRight">Determines whether the cipher supports random access. <a href="#adca1fd77ec8f237fa8eeaf6fb22a6412">More...</a><br /></td></tr> <tr class="separator:adca1fd77ec8f237fa8eeaf6fb22a6412"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae29af38d625e72bc5e503db157a84c5f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_blum_blum_shub.html#ae29af38d625e72bc5e503db157a84c5f">Seek</a> (lword index)</td></tr> <tr class="memdesc:ae29af38d625e72bc5e503db157a84c5f"><td class="mdescLeft"> </td><td class="mdescRight">Seek to an absolute position. <a href="#ae29af38d625e72bc5e503db157a84c5f">More...</a><br /></td></tr> <tr class="separator:ae29af38d625e72bc5e503db157a84c5f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_public_blum_blum_shub"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_public_blum_blum_shub')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_public_blum_blum_shub.html">PublicBlumBlumShub</a></td></tr> <tr class="memitem:a24c3820f9c8b8c041dd2cac44bbefae5 inherit pub_methods_class_public_blum_blum_shub"><td class="memItemLeft" align="right" valign="top"><a id="a24c3820f9c8b8c041dd2cac44bbefae5"></a>  </td><td class="memItemRight" valign="bottom"><b>PublicBlumBlumShub</b> (const <a class="el" href="class_integer.html">Integer</a> &n, const <a class="el" href="class_integer.html">Integer</a> &seed)</td></tr> <tr class="separator:a24c3820f9c8b8c041dd2cac44bbefae5 inherit pub_methods_class_public_blum_blum_shub"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6871d5e2ba162f32574d6b43e2473286 inherit pub_methods_class_public_blum_blum_shub"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_public_blum_blum_shub.html#a6871d5e2ba162f32574d6b43e2473286">GenerateBit</a> ()</td></tr> <tr class="memdesc:a6871d5e2ba162f32574d6b43e2473286 inherit pub_methods_class_public_blum_blum_shub"><td class="mdescLeft"> </td><td class="mdescRight">Generate new random bit and return it. <a href="class_public_blum_blum_shub.html#a6871d5e2ba162f32574d6b43e2473286">More...</a><br /></td></tr> <tr class="separator:a6871d5e2ba162f32574d6b43e2473286 inherit pub_methods_class_public_blum_blum_shub"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaeb3ba6a07fe0a67d35c4fb84bfc71cf inherit pub_methods_class_public_blum_blum_shub"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="class_public_blum_blum_shub.html#aaeb3ba6a07fe0a67d35c4fb84bfc71cf">GenerateByte</a> ()</td></tr> <tr class="memdesc:aaeb3ba6a07fe0a67d35c4fb84bfc71cf inherit pub_methods_class_public_blum_blum_shub"><td class="mdescLeft"> </td><td class="mdescRight">Generate new random byte and return it. <a href="class_public_blum_blum_shub.html#aaeb3ba6a07fe0a67d35c4fb84bfc71cf">More...</a><br /></td></tr> <tr class="separator:aaeb3ba6a07fe0a67d35c4fb84bfc71cf inherit pub_methods_class_public_blum_blum_shub"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8301fb046b5954854ec9635ae16f615b inherit pub_methods_class_public_blum_blum_shub"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_public_blum_blum_shub.html#a8301fb046b5954854ec9635ae16f615b">GenerateBlock</a> (byte *output, size_t size)</td></tr> <tr class="memdesc:a8301fb046b5954854ec9635ae16f615b inherit pub_methods_class_public_blum_blum_shub"><td class="mdescLeft"> </td><td class="mdescRight">Generate random array of bytes. <a href="class_public_blum_blum_shub.html#a8301fb046b5954854ec9635ae16f615b">More...</a><br /></td></tr> <tr class="separator:a8301fb046b5954854ec9635ae16f615b inherit pub_methods_class_public_blum_blum_shub"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afb03a58653cb83c9a9013f3a57105bfc inherit pub_methods_class_public_blum_blum_shub"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_public_blum_blum_shub.html#afb03a58653cb83c9a9013f3a57105bfc">ProcessData</a> (byte *outString, const byte *inString, size_t length)</td></tr> <tr class="memdesc:afb03a58653cb83c9a9013f3a57105bfc inherit pub_methods_class_public_blum_blum_shub"><td class="mdescLeft"> </td><td class="mdescRight">Encrypt or decrypt an array of bytes. <a href="class_public_blum_blum_shub.html#afb03a58653cb83c9a9013f3a57105bfc">More...</a><br /></td></tr> <tr class="separator:afb03a58653cb83c9a9013f3a57105bfc inherit pub_methods_class_public_blum_blum_shub"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac322c5980509bc4e8075f28c4425ac3f inherit pub_methods_class_public_blum_blum_shub"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_public_blum_blum_shub.html#ac322c5980509bc4e8075f28c4425ac3f">IsSelfInverting</a> () const</td></tr> <tr class="memdesc:ac322c5980509bc4e8075f28c4425ac3f inherit pub_methods_class_public_blum_blum_shub"><td class="mdescLeft"> </td><td class="mdescRight">Determines whether the cipher is self-inverting. <a href="class_public_blum_blum_shub.html#ac322c5980509bc4e8075f28c4425ac3f">More...</a><br /></td></tr> <tr class="separator:ac322c5980509bc4e8075f28c4425ac3f inherit pub_methods_class_public_blum_blum_shub"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0ad21fce7f3113ab25ea05e47773a786 inherit pub_methods_class_public_blum_blum_shub"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_public_blum_blum_shub.html#a0ad21fce7f3113ab25ea05e47773a786">IsForwardTransformation</a> () const</td></tr> <tr class="memdesc:a0ad21fce7f3113ab25ea05e47773a786 inherit pub_methods_class_public_blum_blum_shub"><td class="mdescLeft"> </td><td class="mdescRight">Determines if the cipher is being operated in its forward direction. <a href="class_public_blum_blum_shub.html#a0ad21fce7f3113ab25ea05e47773a786">More...</a><br /></td></tr> <tr class="separator:a0ad21fce7f3113ab25ea05e47773a786 inherit pub_methods_class_public_blum_blum_shub"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_random_number_generator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_random_number_generator')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a></td></tr> <tr class="memitem:a6feb4f0afedb62a495b7a9ae311fa1cb inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#a6feb4f0afedb62a495b7a9ae311fa1cb">IncorporateEntropy</a> (const byte *input, size_t length)</td></tr> <tr class="memdesc:a6feb4f0afedb62a495b7a9ae311fa1cb inherit pub_methods_class_random_number_generator"><td class="mdescLeft"> </td><td class="mdescRight">Update RNG state with additional unpredictable values. <a href="class_random_number_generator.html#a6feb4f0afedb62a495b7a9ae311fa1cb">More...</a><br /></td></tr> <tr class="separator:a6feb4f0afedb62a495b7a9ae311fa1cb inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a859bf69f7fae074201745eadf765ae44 inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#a859bf69f7fae074201745eadf765ae44">CanIncorporateEntropy</a> () const</td></tr> <tr class="memdesc:a859bf69f7fae074201745eadf765ae44 inherit pub_methods_class_random_number_generator"><td class="mdescLeft"> </td><td class="mdescRight">Determines if a generator can accept additional entropy. <a href="class_random_number_generator.html#a859bf69f7fae074201745eadf765ae44">More...</a><br /></td></tr> <tr class="separator:a859bf69f7fae074201745eadf765ae44 inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a96a3eec202b6251f5c94136ab7edbde1 inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual word32 </td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#a96a3eec202b6251f5c94136ab7edbde1">GenerateWord32</a> (word32 min=0, word32 max=0xffffffffUL)</td></tr> <tr class="memdesc:a96a3eec202b6251f5c94136ab7edbde1 inherit pub_methods_class_random_number_generator"><td class="mdescLeft"> </td><td class="mdescRight">Generate a random 32 bit word in the range min to max, inclusive. <a href="class_random_number_generator.html#a96a3eec202b6251f5c94136ab7edbde1">More...</a><br /></td></tr> <tr class="separator:a96a3eec202b6251f5c94136ab7edbde1 inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5cc474006e2c7383ec20cc4d0c2abbaf inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#a5cc474006e2c7383ec20cc4d0c2abbaf">GenerateIntoBufferedTransformation</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &target, const std::string &channel, lword length)</td></tr> <tr class="memdesc:a5cc474006e2c7383ec20cc4d0c2abbaf inherit pub_methods_class_random_number_generator"><td class="mdescLeft"> </td><td class="mdescRight">Generate random bytes into a <a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations. ">BufferedTransformation</a>. <a href="class_random_number_generator.html#a5cc474006e2c7383ec20cc4d0c2abbaf">More...</a><br /></td></tr> <tr class="separator:a5cc474006e2c7383ec20cc4d0c2abbaf inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a44f70ad8fed869a4ee55f50ef8e6e699 inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#a44f70ad8fed869a4ee55f50ef8e6e699">DiscardBytes</a> (size_t n)</td></tr> <tr class="memdesc:a44f70ad8fed869a4ee55f50ef8e6e699 inherit pub_methods_class_random_number_generator"><td class="mdescLeft"> </td><td class="mdescRight">Generate and discard n bytes. <a href="class_random_number_generator.html#a44f70ad8fed869a4ee55f50ef8e6e699">More...</a><br /></td></tr> <tr class="separator:a44f70ad8fed869a4ee55f50ef8e6e699 inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="memTemplParams" colspan="2">template<class IT > </td></tr> <tr class="memitem:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#aff937f93b0b1e17e7905494ef060fce2">Shuffle</a> (IT begin, IT end)</td></tr> <tr class="memdesc:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="mdescLeft"> </td><td class="mdescRight">Randomly shuffle the specified array. <a href="class_random_number_generator.html#aff937f93b0b1e17e7905494ef060fce2">More...</a><br /></td></tr> <tr class="separator:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_algorithm')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_algorithm.html">Algorithm</a></td></tr> <tr class="memitem:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#a1c77f5117ca2cd881baf26a364cfc606">Algorithm</a> (bool checkSelfTestStatus=true)</td></tr> <tr class="memdesc:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Interface for all crypto algorithms. <a href="class_algorithm.html#a1c77f5117ca2cd881baf26a364cfc606">More...</a><br /></td></tr> <tr class="separator:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="memItemLeft" align="right" valign="top">virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#a4f31510a192d1121856efe8ad0a9b844">AlgorithmName</a> () const</td></tr> <tr class="memdesc:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="mdescLeft"> </td><td class="mdescRight">Provides the name of this algorithm. <a href="class_algorithm.html#a4f31510a192d1121856efe8ad0a9b844">More...</a><br /></td></tr> <tr class="separator:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_clonable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_clonable')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_clonable.html">Clonable</a></td></tr> <tr class="memitem:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><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 inherit pub_methods_class_clonable"><td class="mdescLeft"> </td><td class="mdescRight">Copies this object. <a href="class_clonable.html#ad0016ba2d505c23aa85aad49e6c19bb7">More...</a><br /></td></tr> <tr class="separator:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_stream_transformation"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_stream_transformation')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_stream_transformation.html">StreamTransformation</a></td></tr> <tr class="memitem:a8c9304fff5af593ee68d3cf0d33c06e9 inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_stream_transformation.html">StreamTransformation</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#a8c9304fff5af593ee68d3cf0d33c06e9">Ref</a> ()</td></tr> <tr class="memdesc:a8c9304fff5af593ee68d3cf0d33c06e9 inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Provides a reference to this object. <a href="class_stream_transformation.html#a8c9304fff5af593ee68d3cf0d33c06e9">More...</a><br /></td></tr> <tr class="separator:a8c9304fff5af593ee68d3cf0d33c06e9 inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae224d250f716e82c54bc4e4c8930d188 inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#ae224d250f716e82c54bc4e4c8930d188">MandatoryBlockSize</a> () const</td></tr> <tr class="memdesc:ae224d250f716e82c54bc4e4c8930d188 inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Provides the mandatory block size of the cipher. <a href="class_stream_transformation.html#ae224d250f716e82c54bc4e4c8930d188">More...</a><br /></td></tr> <tr class="separator:ae224d250f716e82c54bc4e4c8930d188 inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af66ef64545279c01310718af3d627534 inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#af66ef64545279c01310718af3d627534">OptimalBlockSize</a> () const</td></tr> <tr class="memdesc:af66ef64545279c01310718af3d627534 inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Provides the input block size most efficient for this cipher. <a href="class_stream_transformation.html#af66ef64545279c01310718af3d627534">More...</a><br /></td></tr> <tr class="separator:af66ef64545279c01310718af3d627534 inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab8422f6eee08fbc70069e222186e90de inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#ab8422f6eee08fbc70069e222186e90de">GetOptimalBlockSizeUsed</a> () const</td></tr> <tr class="memdesc:ab8422f6eee08fbc70069e222186e90de inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Provides the number of bytes used in the current block when processing at optimal block size. <a href="class_stream_transformation.html#ab8422f6eee08fbc70069e222186e90de">More...</a><br /></td></tr> <tr class="separator:ab8422f6eee08fbc70069e222186e90de inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a447cfac11f97012dff9662fb5e5d208b inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#a447cfac11f97012dff9662fb5e5d208b">OptimalDataAlignment</a> () const</td></tr> <tr class="memdesc:a447cfac11f97012dff9662fb5e5d208b inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Provides input and output data alignment for optimal performance. <a href="class_stream_transformation.html#a447cfac11f97012dff9662fb5e5d208b">More...</a><br /></td></tr> <tr class="separator:a447cfac11f97012dff9662fb5e5d208b inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af48589443f77f4ed9ff185f9c1a26cbf inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">virtual size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#af48589443f77f4ed9ff185f9c1a26cbf">ProcessLastBlock</a> (byte *outString, size_t outLength, const byte *inString, size_t inLength)</td></tr> <tr class="memdesc:af48589443f77f4ed9ff185f9c1a26cbf inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Encrypt or decrypt the last block of data. <a href="class_stream_transformation.html#af48589443f77f4ed9ff185f9c1a26cbf">More...</a><br /></td></tr> <tr class="separator:af48589443f77f4ed9ff185f9c1a26cbf inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0b7c5bc41b9b5f6443ee32d65ebc044c inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#a0b7c5bc41b9b5f6443ee32d65ebc044c">MinLastBlockSize</a> () const</td></tr> <tr class="memdesc:a0b7c5bc41b9b5f6443ee32d65ebc044c inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Provides the size of the last block. <a href="class_stream_transformation.html#a0b7c5bc41b9b5f6443ee32d65ebc044c">More...</a><br /></td></tr> <tr class="separator:a0b7c5bc41b9b5f6443ee32d65ebc044c inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a62db1393d64069b282e3d455b38cd0e5 inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#a62db1393d64069b282e3d455b38cd0e5">IsLastBlockSpecial</a> () const</td></tr> <tr class="memdesc:a62db1393d64069b282e3d455b38cd0e5 inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Determines if the last block receives special processing. <a href="class_stream_transformation.html#a62db1393d64069b282e3d455b38cd0e5">More...</a><br /></td></tr> <tr class="separator:a62db1393d64069b282e3d455b38cd0e5 inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac00f3fcc21f33f11c8efa4de67ff7774 inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#ac00f3fcc21f33f11c8efa4de67ff7774">ProcessString</a> (byte *inoutString, size_t length)</td></tr> <tr class="memdesc:ac00f3fcc21f33f11c8efa4de67ff7774 inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Encrypt or decrypt a string of bytes. <a href="class_stream_transformation.html#ac00f3fcc21f33f11c8efa4de67ff7774">More...</a><br /></td></tr> <tr class="separator:ac00f3fcc21f33f11c8efa4de67ff7774 inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a17951cb36412763e0d6bd9696177175d inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#a17951cb36412763e0d6bd9696177175d">ProcessString</a> (byte *outString, const byte *inString, size_t length)</td></tr> <tr class="memdesc:a17951cb36412763e0d6bd9696177175d inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Encrypt or decrypt a string of bytes. <a href="class_stream_transformation.html#a17951cb36412763e0d6bd9696177175d">More...</a><br /></td></tr> <tr class="separator:a17951cb36412763e0d6bd9696177175d inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a71a9bd33526fc7f227050075e7a78106 inherit pub_methods_class_stream_transformation"><td class="memItemLeft" align="right" valign="top">byte </td><td class="memItemRight" valign="bottom"><a class="el" href="class_stream_transformation.html#a71a9bd33526fc7f227050075e7a78106">ProcessByte</a> (byte input)</td></tr> <tr class="memdesc:a71a9bd33526fc7f227050075e7a78106 inherit pub_methods_class_stream_transformation"><td class="mdescLeft"> </td><td class="mdescRight">Encrypt or decrypt a byte. <a href="class_stream_transformation.html#a71a9bd33526fc7f227050075e7a78106">More...</a><br /></td></tr> <tr class="separator:a71a9bd33526fc7f227050075e7a78106 inherit pub_methods_class_stream_transformation"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p><a class="el" href="class_blum_blum_shub.html" title="BlumBlumShub with factorization of the modulus. ">BlumBlumShub</a> with factorization of the modulus. </p> <p class="definition">Definition at line <a class="el" href="blumshub_8h_source.html#l00039">39</a> of file <a class="el" href="blumshub_8h_source.html">blumshub.h</a>.</p> </div><h2 class="groupheader">Member Function Documentation</h2> <a id="adca1fd77ec8f237fa8eeaf6fb22a6412"></a> <h2 class="memtitle"><span class="permalink"><a href="#adca1fd77ec8f237fa8eeaf6fb22a6412">◆ </a></span>IsRandomAccess()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool BlumBlumShub::IsRandomAccess </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>Determines whether the cipher supports random access. </p> <dl class="section return"><dt>Returns</dt><dd>true if the cipher supports random access, false otherwise </dd></dl> <p>Implements <a class="el" href="class_stream_transformation.html#ad7286fd9a993de0a147b0c20f660bfa5">StreamTransformation</a>.</p> <p class="definition">Definition at line <a class="el" href="blumshub_8h_source.html#l00048">48</a> of file <a class="el" href="blumshub_8h_source.html">blumshub.h</a>.</p> </div> </div> <a id="ae29af38d625e72bc5e503db157a84c5f"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae29af38d625e72bc5e503db157a84c5f">◆ </a></span>Seek()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void BlumBlumShub::Seek </td> <td>(</td> <td class="paramtype">lword </td> <td class="paramname"><em>pos</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Seek to an absolute position. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pos</td><td>position to seek </td></tr> </table> </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> <p>The base class implementation throws <a class="el" href="class_not_implemented.html" title="A method was called which was not implemented. ">NotImplemented</a>. The function <a class="el" href="trap_8h.html#adf3b392588bc94cbeae9f415a78c7b95">asserts</a> <a class="el" href="class_blum_blum_shub.html#adca1fd77ec8f237fa8eeaf6fb22a6412" title="Determines whether the cipher supports random access. ">IsRandomAccess()</a> in debug builds. </p> <p>Reimplemented from <a class="el" href="class_stream_transformation.html#aa60971c40c6cbcfb703ebe3d6495b6fc">StreamTransformation</a>.</p> <p class="definition">Definition at line <a class="el" href="blumshub_8cpp_source.html#l00055">55</a> of file <a class="el" href="blumshub_8cpp_source.html">blumshub.cpp</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="blumshub_8h_source.html">blumshub.h</a></li> <li><a class="el" href="blumshub_8cpp_source.html">blumshub.cpp</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sun Sep 16 2018 07:58:18 for Crypto++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.14 </small></address> </body> </html>