<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Crypto++: TemplateDL_GroupParameters< T > class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.7 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div> <h1>DL_GroupParameters< T > Class Template Reference</h1><code>#include <<a class="el" href="pubkey_8h-source.html">pubkey.h</a>></code> <p> <p>Inheritance diagram for DL_GroupParameters< T >: <p><center><img src="class_d_l___group_parameters.png" usemap="#DL_GroupParameters< T >_map" border="0" alt=""></center> <map name="DL_GroupParameters< T >_map"> <area href="class_crypto_parameters.html" alt="CryptoParameters" shape="rect" coords="0,168,165,192"> <area href="class_generatable_crypto_material.html" alt="GeneratableCryptoMaterial" shape="rect" coords="0,112,165,136"> <area href="class_crypto_material.html" alt="CryptoMaterial" shape="rect" coords="0,56,165,80"> <area href="class_name_value_pairs.html" alt="NameValuePairs" shape="rect" coords="0,0,165,24"> </map> <a href="class_d_l___group_parameters-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2> <h3>template<class T><br> class DL_GroupParameters< T ></h3> interface for DL group parameters <p> <p> Definition at line <a class="el" href="pubkey_8h-source.html#l00541">541</a> of file <a class="el" href="pubkey_8h-source.html">pubkey.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 class="anchor" name="_d_l___group_parametersw0" doxytag="DL_GroupParameters::Element" ></a> typedef T </td><td class="memItemRight" valign=bottom><b>Element</b></td></tr> <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___group_parameters.html#_d_l___group_parametersa1">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="#_d_l___group_parametersa1"></a><br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa2" doxytag="DL_GroupParameters::GetVoidValue" ></a> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___group_parameters.html#_d_l___group_parametersa2">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><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa3" doxytag="DL_GroupParameters::SupportsPrecomputation" ></a> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___group_parameters.html#_d_l___group_parametersa3">SupportsPrecomputation</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">whether this object supports precomputation <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___group_parameters.html#_d_l___group_parametersa4">Precompute</a> (unsigned int precomputationStorage=16)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">do precomputation <a href="#_d_l___group_parametersa4"></a><br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa5" doxytag="DL_GroupParameters::LoadPrecomputation" ></a> void </td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___group_parameters.html#_d_l___group_parametersa5">LoadPrecomputation</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &storedPrecomputation)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">retrieve previously saved precomputation <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa6" doxytag="DL_GroupParameters::SavePrecomputation" ></a> void </td><td class="memItemRight" valign=bottom><a class="el" href="class_d_l___group_parameters.html#_d_l___group_parametersa6">SavePrecomputation</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &storedPrecomputation) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">save precomputation for later use <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa7" doxytag="DL_GroupParameters::GetSubgroupGenerator" ></a> virtual const Element & </td><td class="memItemRight" valign=bottom><b>GetSubgroupGenerator</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa8" doxytag="DL_GroupParameters::SetSubgroupGenerator" ></a> virtual void </td><td class="memItemRight" valign=bottom><b>SetSubgroupGenerator</b> (const Element &base)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa9" doxytag="DL_GroupParameters::ExponentiateBase" ></a> virtual Element </td><td class="memItemRight" valign=bottom><b>ExponentiateBase</b> (const <a class="el" href="class_integer.html">Integer</a> &exponent) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa10" doxytag="DL_GroupParameters::ExponentiateElement" ></a> virtual Element </td><td class="memItemRight" valign=bottom><b>ExponentiateElement</b> (const Element &base, const <a class="el" href="class_integer.html">Integer</a> &exponent) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa11" doxytag="DL_GroupParameters::GetGroupPrecomputation" ></a> virtual const DL_GroupPrecomputation<<br> Element > & </td><td class="memItemRight" valign=bottom><b>GetGroupPrecomputation</b> () const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa12" doxytag="DL_GroupParameters::GetBasePrecomputation" ></a> virtual const DL_FixedBasePrecomputation<<br> Element > & </td><td class="memItemRight" valign=bottom><b>GetBasePrecomputation</b> () const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa13" doxytag="DL_GroupParameters::AccessBasePrecomputation" ></a> virtual DL_FixedBasePrecomputation<<br> Element > & </td><td class="memItemRight" valign=bottom><b>AccessBasePrecomputation</b> ()=0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa14" doxytag="DL_GroupParameters::GetSubgroupOrder" ></a> virtual const <a class="el" href="class_integer.html">Integer</a> & </td><td class="memItemRight" valign=bottom><b>GetSubgroupOrder</b> () const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa15" doxytag="DL_GroupParameters::GetMaxExponent" ></a> virtual <a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>GetMaxExponent</b> () const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa16" doxytag="DL_GroupParameters::GetGroupOrder" ></a> virtual <a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>GetGroupOrder</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa17" doxytag="DL_GroupParameters::GetCofactor" ></a> virtual <a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>GetCofactor</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa18" doxytag="DL_GroupParameters::GetEncodedElementSize" ></a> virtual unsigned int </td><td class="memItemRight" valign=bottom><b>GetEncodedElementSize</b> (bool reversible) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa19" doxytag="DL_GroupParameters::EncodeElement" ></a> virtual void </td><td class="memItemRight" valign=bottom><b>EncodeElement</b> (bool reversible, const Element &element, byte *encoded) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa20" doxytag="DL_GroupParameters::DecodeElement" ></a> virtual Element </td><td class="memItemRight" valign=bottom><b>DecodeElement</b> (const byte *encoded, bool checkForGroupMembership) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa21" doxytag="DL_GroupParameters::ConvertElementToInteger" ></a> virtual <a class="el" href="class_integer.html">Integer</a> </td><td class="memItemRight" valign=bottom><b>ConvertElementToInteger</b> (const Element &element) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa22" doxytag="DL_GroupParameters::ValidateGroup" ></a> virtual bool </td><td class="memItemRight" valign=bottom><b>ValidateGroup</b> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, unsigned int level) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa23" doxytag="DL_GroupParameters::ValidateElement" ></a> virtual bool </td><td class="memItemRight" valign=bottom><b>ValidateElement</b> (unsigned int level, const Element &element, const DL_FixedBasePrecomputation< Element > *precomp) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa24" doxytag="DL_GroupParameters::FastSubgroupCheckAvailable" ></a> virtual bool </td><td class="memItemRight" valign=bottom><b>FastSubgroupCheckAvailable</b> () const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa25" doxytag="DL_GroupParameters::IsIdentity" ></a> virtual bool </td><td class="memItemRight" valign=bottom><b>IsIdentity</b> (const Element &element) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersa26" doxytag="DL_GroupParameters::SimultaneousExponentiate" ></a> virtual void </td><td class="memItemRight" valign=bottom><b>SimultaneousExponentiate</b> (Element *results, const Element &base, const <a class="el" href="class_integer.html">Integer</a> *exponents, unsigned int exponentsCount) const =0</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_generatable_crypto_material.html#_x_t_r___d_ha27">GenerateRandom</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &params=<a class="el" href="cryptlib_8h.html#a3">g_nullNameValuePairs</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">generate a random key or crypto parameters <a href="#_x_t_r___d_ha27"></a><br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha28" doxytag="DL_GroupParameters::GenerateRandomWithKeySize" ></a> void </td><td class="memItemRight" valign=bottom><a class="el" href="class_generatable_crypto_material.html#_x_t_r___d_ha28">GenerateRandomWithKeySize</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, unsigned int keySize)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">calls the above function with a <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> object that just specifies "KeySize" <br><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#_x509_public_keya11">AssignFrom</a> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &source)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">assign values from source to this object <a href="#_x509_public_keya11"></a><br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha29" doxytag="DL_GroupParameters::ThrowIfInvalid" ></a> virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_crypto_material.html#_x_t_r___d_ha29">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">InvalidMaterial</a> if this object fails Validate() test <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha30" doxytag="DL_GroupParameters::Save" ></a> virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_crypto_material.html#_x_t_r___d_ha30">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">BufferedTransformation</a> <br><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#_x_t_r___d_ha31">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">BufferedTransformation</a> <a href="#_x_t_r___d_ha31"></a><br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha36" doxytag="DL_GroupParameters::DoQuickSanityCheck" ></a> void </td><td class="memItemRight" valign=bottom><b>DoQuickSanityCheck</b> () const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha37" doxytag="DL_GroupParameters::GetThisObject" ></a> template<class T> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_ha37">GetThisObject</a> (T &object) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get a copy of this object or a subobject of it <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha38" doxytag="DL_GroupParameters::GetThisPointer" ></a> template<class T> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_ha38">GetThisPointer</a> (T *&p) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get a pointer to this object, as a pointer to T <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha39" doxytag="DL_GroupParameters::GetValue" ></a> template<class T> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_ha39">GetValue</a> (const char *name, T &value) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get a named value, returns true if the name exists <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha40" doxytag="DL_GroupParameters::GetValueWithDefault" ></a> template<class T> T </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_ha40">GetValueWithDefault</a> (const char *name, T defaultValue) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get a named value, returns the default if the name doesn't exist <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha41" doxytag="DL_GroupParameters::GetValueNames" ></a> std::string </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_ha41">GetValueNames</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get a list of value names that can be retrieved <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_ha42">GetIntValue</a> (const char *name, int &value) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get a named value with type int <a href="#_x_t_r___d_ha42"></a><br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha43" doxytag="DL_GroupParameters::GetIntValueWithDefault" ></a> int </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_ha43">GetIntValueWithDefault</a> (const char *name, int defaultValue) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get a named value with type int, with default <br><br></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha44" doxytag="DL_GroupParameters::GetRequiredParameter" ></a> template<class T> void </td><td class="memItemRight" valign=bottom><b>GetRequiredParameter</b> (const char *className, const char *name, T &value) const</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_x_t_r___d_ha45" doxytag="DL_GroupParameters::GetRequiredIntParameter" ></a> void </td><td class="memItemRight" valign=bottom><b>GetRequiredIntParameter</b> (const char *className, const char *name, int &value) const</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 class="anchor" name="_x_t_r___d_he0" doxytag="DL_GroupParameters::ThrowIfTypeMismatch" ></a> void </td><td class="memItemRight" valign=bottom><a class="el" href="class_name_value_pairs.html#_x_t_r___d_he0">ThrowIfTypeMismatch</a> (const char *name, const std::type_info &stored, const std::type_info &retrieving)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">used by derived classes to check for type mismatch <br><br></td></tr> <tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="_d_l___group_parametersb0" doxytag="DL_GroupParameters::ParametersChanged" ></a> void </td><td class="memItemRight" valign=bottom><b>ParametersChanged</b> ()</td></tr> </table> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="_d_l___group_parametersa1" doxytag="DL_GroupParameters::Validate" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top"> bool <a class="el" href="class_d_l___group_parameters.html">DL_GroupParameters</a>< T >::Validate </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> & </td> <td class="mdname" nowrap> <em>rng</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td></td> <td class="md" nowrap>unsigned int </td> <td class="mdname" nowrap> <em>level</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"> const<code> [inline, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> check this object for errors <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign=top><em>level</em> </td><td>denotes the level of thoroughness: 0 - using this object won't cause a crash or exception (rng is ignored) 1 - this object will probably function (encrypt, sign, etc.) correctly (but may not check for weak keys and such) 2 - make sure this object will function correctly, and do reasonable security checks 3 - do checks that may take a long time </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>true if the tests pass </dd></dl> <p> Implements <a class="el" href="class_crypto_material.html#_x509_public_keya12">CryptoMaterial</a>. <p> Definition at line <a class="el" href="pubkey_8h-source.html#l00551">551</a> of file <a class="el" href="pubkey_8h-source.html">pubkey.h</a>. </td> </tr> </table> <a class="anchor" name="_d_l___group_parametersa4" doxytag="DL_GroupParameters::Precompute" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" colspan="4"> template<class T> </td> </tr> <tr> <td class="md" nowrap valign="top"> void <a class="el" href="class_d_l___group_parameters.html">DL_GroupParameters</a>< T >::Precompute </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned int </td> <td class="mdname1" valign="top" nowrap> <em>precomputationStorage</em> = <code>16</code> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> do precomputation <p> The exact semantics of Precompute() is varies, but typically it means calculate a table of n objects that can be used later to speed up computation. <p> Reimplemented from <a class="el" href="class_crypto_material.html#_x_t_r___d_ha33">CryptoMaterial</a>. <p> Definition at line <a class="el" href="pubkey_8h-source.html#l00577">577</a> of file <a class="el" href="pubkey_8h-source.html">pubkey.h</a>. </td> </tr> </table> <a class="anchor" name="_x_t_r___d_ha27" doxytag="DL_GroupParameters::GenerateRandom" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void GeneratableCryptoMaterial::GenerateRandom </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> & </td> <td class="mdname" nowrap> <em>rng</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td></td> <td class="md" nowrap>const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> & </td> <td class="mdname" nowrap> <em>params</em> = <code><a class="el" href="cryptlib_8h.html#a3">g_nullNameValuePairs</a></code></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> generate a random key or crypto parameters <p> <dl compact><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign=top><em>KeyingErr</em> </td><td>if algorithm parameters are invalid, or if a key can't be generated (e.g., if this is a public key object) </td></tr> </table> </dl> <p> Reimplemented in <a class="el" href="class_d_l___group_parameters___e_c.html#_d_l___group_parameters___e_ca8">DL_GroupParameters_EC< EC ></a>, <a class="el" href="class_invertible_e_s_i_g_n_function.html#_invertible_e_s_i_g_n_functiona8">InvertibleESIGNFunction</a>, <a class="el" href="class_d_l___group_parameters___integer_based.html#_d_l___group_parameters_impl_3_01_mod_exp_precomputation_00_01_d_l___fixed_base_precomputation_impl_3_01typename_mod_exp_precomputation_1_1_element_01_4_00_01_d_l___group_parameters___integer_based_01_4a9">DL_GroupParameters_IntegerBased</a>, <a class="el" href="class_d_l___group_parameters___d_s_a.html#_d_l___group_parameters___d_s_aa1">DL_GroupParameters_DSA</a>, <a class="el" href="class_invertible_l_u_c_function.html#_invertible_l_u_c_functiona8">InvertibleLUCFunction</a>, <a class="el" href="class_d_l___private_key_impl.html#_d_l___private_key_impla3">DL_PrivateKeyImpl< GP ></a>, <a class="el" href="class_invertible_rabin_function.html#_invertible_rabin_functiona8">InvertibleRabinFunction</a>, <a class="el" href="class_invertible_r_s_a_function.html#_invertible_r_s_a_functiona9">InvertibleRSAFunction</a>, <a class="el" href="class_invertible_r_w_function.html#_invertible_r_w_functiona8">InvertibleRWFunction</a>, and <a class="el" href="class_d_l___private_key_impl.html#_d_l___private_key_impla3">DL_PrivateKeyImpl< DL_GroupParameters_EC< EC > ></a>. <p> Definition at line <a class="el" href="cryptlib_8h-source.html#l01024">1024</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>. <p> Referenced by <a class="el" href="cryptlib_8cpp-source.html#l00521">GeneratableCryptoMaterial::GenerateRandomWithKeySize()</a>. </td> </tr> </table> <a class="anchor" name="_x509_public_keya11" doxytag="DL_GroupParameters::AssignFrom" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void CryptoMaterial::AssignFrom </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> & </td> <td class="mdname1" valign="top" nowrap> <em>source</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [pure virtual, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> assign values from source to this object <p> <dl compact><dt><b>Note:</b></dt><dd>This function can be used to create a public key from a private key. </dd></dl> <p> Implemented in <a class="el" href="class_d_l___group_parameters___e_c.html#_d_l___group_parameters___e_ca7">DL_GroupParameters_EC< EC ></a>, <a class="el" href="class_e_s_i_g_n_function.html#_e_s_i_g_n_functiona5">ESIGNFunction</a>, <a class="el" href="class_invertible_e_s_i_g_n_function.html#_invertible_e_s_i_g_n_functiona7">InvertibleESIGNFunction</a>, <a class="el" href="class_d_l___group_parameters___integer_based.html#_d_l___group_parameters_impl_3_01_mod_exp_precomputation_00_01_d_l___fixed_base_precomputation_impl_3_01typename_mod_exp_precomputation_1_1_element_01_4_00_01_d_l___group_parameters___integer_based_01_4a11">DL_GroupParameters_IntegerBased</a>, <a class="el" href="class_d_l___group_parameters___integer_based_impl.html#_d_l___group_parameters___integer_based_impla1">DL_GroupParameters_IntegerBasedImpl< GROUP_PRECOMP, BASE_PRECOMP ></a>, <a class="el" href="class_l_u_c_function.html#_l_u_c_functiona8">LUCFunction</a>, <a class="el" href="class_invertible_l_u_c_function.html#_invertible_l_u_c_functiona7">InvertibleLUCFunction</a>, <a class="el" href="class_rabin_function.html#_rabin_functiona8">RabinFunction</a>, <a class="el" href="class_invertible_rabin_function.html#_invertible_rabin_functiona7">InvertibleRabinFunction</a>, <a class="el" href="class_r_s_a_function.html#_r_s_a_functiona6">RSAFunction</a>, <a class="el" href="class_invertible_r_s_a_function.html#_invertible_r_s_a_functiona11">InvertibleRSAFunction</a>, <a class="el" href="class_r_w_function.html#_r_w_functiona8">RWFunction</a>, <a class="el" href="class_invertible_r_w_function.html#_invertible_r_w_functiona7">InvertibleRWFunction</a>, <a class="el" href="class_x_t_r___d_h.html#_x_t_r___d_ha6">XTR_DH</a>, <a class="el" href="class_d_l___group_parameters___integer_based_impl.html#_d_l___group_parameters___integer_based_impla1">DL_GroupParameters_IntegerBasedImpl< DL_GroupPrecomputation_LUC, DL_BasePrecomputation_LUC ></a>, and <a class="el" href="class_d_l___group_parameters___integer_based_impl.html#_d_l___group_parameters___integer_based_impla1">DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation ></a>. </td> </tr> </table> <a class="anchor" name="_x_t_r___d_ha31" doxytag="DL_GroupParameters::Load" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> virtual void CryptoMaterial::Load </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> & </td> <td class="mdname1" valign="top" nowrap> <em>bt</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> load key from a <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> <p> <dl compact><dt><b>Exceptions:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign=top><em>KeyingErr</em> </td><td>if decode fails </td></tr> </table> </dl> <dl compact><dt><b>Note:</b></dt><dd>Generally does not check that the key is valid. Call ValidateKey() or ThrowIfInvalidKey() to check that. </dd></dl> <p> Reimplemented in <a class="el" href="class_a_s_n1_crypto_material.html#_x509_public_keya9">ASN1CryptoMaterial</a>. <p> Definition at line <a class="el" href="cryptlib_8h-source.html#l00994">994</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>. <p> Referenced by <a class="el" href="cryptlib_8h-source.html#l01060">AsymmetricAlgorithm::BERDecode()</a>. </td> </tr> </table> <a class="anchor" name="_x_t_r___d_ha42" doxytag="DL_GroupParameters::GetIntValue" ></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> bool NameValuePairs::GetIntValue </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const char * </td> <td class="mdname" nowrap> <em>name</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td></td> <td class="md" nowrap>int & </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"> const<code> [inline, inherited]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get a named value with type int <p> used to ensure we don't accidentally try to get an unsigned int or some other type when we mean int (which is the most common case) <p> Definition at line <a class="el" href="cryptlib_8h-source.html#l00278">278</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>. <p> Referenced by <a class="el" href="rw_8cpp-source.html#l00111">InvertibleRWFunction::GenerateRandom()</a>, <a class="el" href="rsa_8cpp-source.html#l00104">InvertibleRSAFunction::GenerateRandom()</a>, <a class="el" href="rabin_8cpp-source.html#l00075">InvertibleRabinFunction::GenerateRandom()</a>, <a class="el" href="luc_8cpp-source.html#l00107">InvertibleLUCFunction::GenerateRandom()</a>, <a class="el" href="gfpcrypt_8cpp-source.html#l00160">DL_GroupParameters_IntegerBased::GenerateRandom()</a>, <a class="el" href="gfpcrypt_8cpp-source.html#l00026">DL_GroupParameters_DSA::GenerateRandom()</a>, and <a class="el" href="esign_8cpp-source.html#l00075">InvertibleESIGNFunction::GenerateRandom()</a>. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="pubkey_8h-source.html">pubkey.h</a></ul> <hr size="1"><address style="align: right;"><small>Generated on Sun Nov 7 08:24:02 2004 for Crypto++ by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.7 </small></address> </body> </html>