📄 class_l_u_c_function.html
字号:
<!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++: LUCFunction 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 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 List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div><h1>LUCFunction Class Reference</h1><!-- doxytag: class="LUCFunction" --><!-- doxytag: inherits="TrapdoorFunction,PublicKey" --><code>#include <<a class="el" href="luc_8h-source.html">luc.h</a>></code><p><p>Inheritance diagram for LUCFunction:<p><center><img src="class_l_u_c_function.png" usemap="#LUCFunction_map" border="0" alt=""></center><map name="LUCFunction_map"><area href="class_trapdoor_function.html" alt="TrapdoorFunction" shape="rect" coords="0,112,181,136"><area href="class_public_key.html" alt="PublicKey" shape="rect" coords="191,112,372,136"><area href="class_randomized_trapdoor_function.html" alt="RandomizedTrapdoorFunction" shape="rect" coords="0,56,181,80"><area href="class_crypto_material.html" alt="CryptoMaterial" shape="rect" coords="191,56,372,80"><area href="class_trapdoor_function_bounds.html" alt="TrapdoorFunctionBounds" shape="rect" coords="0,0,181,24"><area href="class_name_value_pairs.html" alt="NameValuePairs" shape="rect" coords="191,0,372,24"><area href="class_invertible_l_u_c_function.html" alt="InvertibleLUCFunction" shape="rect" coords="95,224,276,248"></map><a href="class_l_u_c_function-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>The <a class="el" href="struct_l_u_c.html">LUC</a> function. <p>This class is here for historical and pedagogical interest. It has no practical advantages over other trapdoor functions and probably shouldn't be used in production software. The discrete log based <a class="el" href="struct_l_u_c.html">LUC</a> schemes defined later in this .h file may be of more practical interest. <p><p>Definition at line <a class="el" href="luc_8h-source.html#l00022">22</a> of file <a class="el" href="luc_8h-source.html">luc.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="anchor" name="5d8eb9d2acd130a768326200e3c6ac40"></a><!-- doxytag: member="LUCFunction::Initialize" ref="5d8eb9d2acd130a768326200e3c6ac40" args="(const Integer &n, const Integer &e)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#5d8eb9d2acd130a768326200e3c6ac40">Initialize</a> (const <a class="el" href="class_integer.html">Integer</a> &n, const <a class="el" href="class_integer.html">Integer</a> &e)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4250f047087d8c74ac2a2faf887b6155"></a><!-- doxytag: member="LUCFunction::BERDecode" ref="4250f047087d8c74ac2a2faf887b6155" args="(BufferedTransformation &bt)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#4250f047087d8c74ac2a2faf887b6155">BERDecode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fa7df489909cf058186606b2ac515e31"></a><!-- doxytag: member="LUCFunction::DEREncode" ref="fa7df489909cf058186606b2ac515e31" args="(BufferedTransformation &bt) const " -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#fa7df489909cf058186606b2ac515e31">DEREncode</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt) const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="375548f2d3cadcc98bc09559feb0c637"></a><!-- doxytag: member="LUCFunction::ApplyFunction" ref="375548f2d3cadcc98bc09559feb0c637" args="(const Integer &x) const " --><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#375548f2d3cadcc98bc09559feb0c637">ApplyFunction</a> (const <a class="el" href="class_integer.html">Integer</a> &x) const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1497f939adba34c6370c8a17f9389f68"></a><!-- doxytag: member="LUCFunction::PreimageBound" ref="1497f939adba34c6370c8a17f9389f68" args="() const" --><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#1497f939adba34c6370c8a17f9389f68">PreimageBound</a> () const</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e80bec9ec3f76dbdb248aeef19777ef9"></a><!-- doxytag: member="LUCFunction::ImageBound" ref="e80bec9ec3f76dbdb248aeef19777ef9" args="() const" --><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#e80bec9ec3f76dbdb248aeef19777ef9">ImageBound</a> () const</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#ba4694feec6ef453e2ef0f6fb586ca0c">Validate</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, unsigned int level) const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">check this object for errors <a href="#ba4694feec6ef453e2ef0f6fb586ca0c"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="be3726e7baf96b7cc5ba488a06f29316"></a><!-- doxytag: member="LUCFunction::GetVoidValue" ref="be3726e7baf96b7cc5ba488a06f29316" args="(const char *name, const std::type_info &valueType, void *pValue) const " -->bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#be3726e7baf96b7cc5ba488a06f29316">GetVoidValue</a> (const char *name, const std::type_info &valueType, void *pValue) const </td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">to be implemented by derived classes, users should use one of the above functions instead <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#f6a95ed660e53a5fa07841f139d43ccf">AssignFrom</a> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &source)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">assign values from source to this object <a href="#f6a95ed660e53a5fa07841f139d43ccf"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="efaa2b4edac9236ef2f2fecb0d7801f0"></a><!-- doxytag: member="LUCFunction::GetModulus" ref="efaa2b4edac9236ef2f2fecb0d7801f0" args="() const" -->const <a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#efaa2b4edac9236ef2f2fecb0d7801f0">GetModulus</a> () const</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="db5485e2919c45e0e69f1a20066d156f"></a><!-- doxytag: member="LUCFunction::GetPublicExponent" ref="db5485e2919c45e0e69f1a20066d156f" args="() const" -->const <a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#db5485e2919c45e0e69f1a20066d156f">GetPublicExponent</a> () const</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="835af704304ce8f7fca4c522a5493dfd"></a><!-- doxytag: member="LUCFunction::SetModulus" ref="835af704304ce8f7fca4c522a5493dfd" args="(const Integer &n)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#835af704304ce8f7fca4c522a5493dfd">SetModulus</a> (const <a class="el" href="class_integer.html">Integer</a> &n)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ede72346e848ed00fd5f772e849b1655"></a><!-- doxytag: member="LUCFunction::SetPublicExponent" ref="ede72346e848ed00fd5f772e849b1655" args="(const Integer &e)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_u_c_function.html#ede72346e848ed00fd5f772e849b1655">SetPublicExponent</a> (const <a class="el" href="class_integer.html">Integer</a> &e)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="132d71605a286f12b5167a0c3f18ffdf"></a><!-- doxytag: member="LUCFunction::ApplyRandomizedFunction" ref="132d71605a286f12b5167a0c3f18ffdf" args="(RandomNumberGenerator &rng, const Integer &x) const " --><a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trapdoor_function.html#132d71605a286f12b5167a0c3f18ffdf">ApplyRandomizedFunction</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, const <a class="el" href="class_integer.html">Integer</a> &x) const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="253eb5db8020326f869a4580e21bf5d8"></a><!-- doxytag: member="LUCFunction::IsRandomized" ref="253eb5db8020326f869a4580e21bf5d8" args="() const" -->bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trapdoor_function.html#253eb5db8020326f869a4580e21bf5d8">IsRandomized</a> () const</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b85b47c9c3df4cf1030eff786ab11d5b"></a><!-- doxytag: member="LUCFunction::MaxPreimage" ref="b85b47c9c3df4cf1030eff786ab11d5b" args="() const" -->virtual <a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trapdoor_function_bounds.html#b85b47c9c3df4cf1030eff786ab11d5b">MaxPreimage</a> () const</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9b505cf1a3494645998e7e0872b76a72"></a><!-- doxytag: member="LUCFunction::MaxImage" ref="9b505cf1a3494645998e7e0872b76a72" args="() const" -->virtual <a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trapdoor_function_bounds.html#9b505cf1a3494645998e7e0872b76a72">MaxImage</a> () const</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="edb65ba5323f7bb41fc57973566d20cd"></a><!-- doxytag: member="LUCFunction::ThrowIfInvalid" ref="edb65ba5323f7bb41fc57973566d20cd" args="(RandomNumberGenerator &rng, unsigned int level) const" -->virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#edb65ba5323f7bb41fc57973566d20cd">ThrowIfInvalid</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, unsigned int level) const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">throws <a class="el" href="class_crypto_material_1_1_invalid_material.html" title="exception thrown when invalid crypto material is detected">InvalidMaterial</a> if this object fails <a class="el" href="class_crypto_material.html#439743c6b4e89ca8228a12fa1ea43ab1" title="check this object for errors">Validate()</a> test <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="690c7ce3e765a502b29b47a08c1a4e7b"></a><!-- doxytag: member="LUCFunction::Save" ref="690c7ce3e765a502b29b47a08c1a4e7b" args="(BufferedTransformation &bt) const " -->virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#690c7ce3e765a502b29b47a08c1a4e7b">Save</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt) const </td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">save key into a <a class="el" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#e7a94de4c3d3822070db5babbdf8b113">Load</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &bt)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">load key from a <a class="el" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> <a href="#e7a94de4c3d3822070db5babbdf8b113"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="35720c07870fcda4ae39148f8524274e"></a><!-- doxytag: member="LUCFunction::SupportsPrecomputation" ref="35720c07870fcda4ae39148f8524274e" args="() const" -->virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#35720c07870fcda4ae39148f8524274e">SupportsPrecomputation</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight"><dl class="return" compact><dt><b>Returns:</b></dt><dd>whether this object supports precomputation </dd></dl><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#39e512d2ea70d0e967db98c19994a7fd">Precompute</a> (unsigned int n)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">do precomputation <a href="#39e512d2ea70d0e967db98c19994a7fd"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2911ebd9a28efa43dab71e5c12e2c90d"></a><!-- doxytag: member="LUCFunction::LoadPrecomputation" ref="2911ebd9a28efa43dab71e5c12e2c90d" args="(BufferedTransformation &storedPrecomputation)" -->virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#2911ebd9a28efa43dab71e5c12e2c90d">LoadPrecomputation</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &storedPrecomputation)</td></tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -