📄 class_public_key.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Crypto++: PublicKey class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.2 --><div class="qindex"><a class="qindex" href="index.html">Main 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">Compound 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">Compound Members</a> | <a class="qindex" href="globals.html">File Members</a></div><h1>PublicKey Class Reference</h1><code>#include <<a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>></code><p><p>Inheritance diagram for PublicKey:<p><center><img src="class_public_key.png" usemap="#PublicKey_map" border="0" alt=""></center><map name="PublicKey_map"><area href="class_crypto_material.html" alt="CryptoMaterial" shape="rect" coords="792,56,1178,80"><area href="class_name_value_pairs.html" alt="NameValuePairs" shape="rect" coords="792,0,1178,24"><area href="class_e_s_i_g_n_function.html" alt="ESIGNFunction" shape="rect" coords="0,168,386,192"><area href="class_l_u_c_function.html" alt="LUCFunction" shape="rect" coords="396,168,782,192"><area href="class_rabin_function.html" alt="RabinFunction" shape="rect" coords="792,168,1178,192"><area href="class_r_w_function.html" alt="RWFunction< r >" shape="rect" coords="1188,168,1574,192"><area href="class_x509_public_key.html" alt="X509PublicKey" shape="rect" coords="1980,168,2366,192"><area href="class_invertible_e_s_i_g_n_function.html" alt="InvertibleESIGNFunction" shape="rect" coords="0,224,386,248"><area href="class_invertible_l_u_c_function.html" alt="InvertibleLUCFunction" shape="rect" coords="396,224,782,248"><area href="class_invertible_rabin_function.html" alt="InvertibleRabinFunction" shape="rect" coords="792,224,1178,248"><area href="class_invertible_r_w_function.html" alt="InvertibleRWFunction< r >" shape="rect" coords="1188,224,1574,248"><area href="class_d_l___key_impl.html" alt="DL_KeyImpl< X509PublicKey, DL_GroupParameters_EC< EC > >" shape="rect" coords="1584,224,1970,248"><area href="class_d_l___key_impl.html" alt="DL_KeyImpl< X509PublicKey, GP >" shape="rect" coords="1980,224,2366,248"><area href="class_r_s_a_function.html" alt="RSAFunction" shape="rect" coords="2376,224,2762,248"><area href="class_d_l___public_key_impl.html" alt="DL_PublicKeyImpl< DL_GroupParameters_EC< EC > >" shape="rect" coords="1584,280,1970,304"><area href="class_d_l___public_key_impl.html" alt="DL_PublicKeyImpl< GP >" shape="rect" coords="1980,280,2366,304"><area href="class_invertible_r_s_a_function.html" alt="InvertibleRSAFunction" shape="rect" coords="2376,280,2762,304"><area href="class_d_l___public_key___e_c.html" alt="DL_PublicKey_EC< EC >" shape="rect" coords="1584,336,1970,360"><area href="class_d_l___public_key___g_f_p.html" alt="DL_PublicKey_GFP< GP >" shape="rect" coords="1980,336,2366,360"></map><a href="class_public_key-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>interface for public keys <p><p>Definition at line <a class="el" href="cryptlib_8h-source.html#l01025">1025</a> of file <a class="el" href="cryptlib_8h-source.html">cryptlib.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>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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 </em> <a href="#_x509_public_keya11"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.html#_x509_public_keya12">Validate</a> (<a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a> &rng, unsigned int level) const=0</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">check this object for errors </em> <a href="#_x509_public_keya12"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha29" doxytag="PublicKey::ThrowIfInvalid"></a>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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 <a class="el" href="class_crypto_material.html#_x509_public_keya12">Validate()</a> test <br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha30" doxytag="PublicKey::Save"></a>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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_public_key.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> </em> <a href="#_x_t_r___d_ha31"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha32" doxytag="PublicKey::SupportsPrecomputation"></a>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.html#_x_t_r___d_ha32">SupportsPrecomputation</a> () const</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight"><dl compact><dt><b>Returns:</b></dt><dd>whether this object supports precomputation </dd></dl><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_public_key.html#_x_t_r___d_ha33">Precompute</a> (unsigned int n)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">do precomputation </em> <a href="#_x_t_r___d_ha33"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha34" doxytag="PublicKey::LoadPrecomputation"></a>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.html#_x_t_r___d_ha34">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 name="_x_t_r___d_ha35" doxytag="PublicKey::SavePrecomputation"></a>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.html#_x_t_r___d_ha35">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 name="_x_t_r___d_ha36" doxytag="PublicKey::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 name="_x_t_r___d_ha37" doxytag="PublicKey::GetThisObject"></a>template<class T> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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 name="_x_t_r___d_ha38" doxytag="PublicKey::GetThisPointer"></a>template<class T> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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 name="_x_t_r___d_ha39" doxytag="PublicKey::GetValue"></a>template<class T> bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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 name="_x_t_r___d_ha40" doxytag="PublicKey::GetValueWithDefault"></a>template<class T> T </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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 name="_x_t_r___d_ha41" doxytag="PublicKey::GetValueNames"></a>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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_public_key.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 </em> <a href="#_x_t_r___d_ha42"></a><em><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_ha43" doxytag="PublicKey::GetIntValueWithDefault"></a>int </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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 name="_x_t_r___d_ha44" doxytag="PublicKey::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 name="_x_t_r___d_ha45" doxytag="PublicKey::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 class="memItemLeft" nowrap align=right valign=top><a name="_x509_public_keya28" doxytag="PublicKey::GetVoidValue"></a>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.html#_x509_public_keya28">GetVoidValue</a> (const char *name, const std::type_info &valueType, void *pValue) const=0</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 colspan=2><br><h2>Static Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a name="_x_t_r___d_he0" doxytag="PublicKey::ThrowIfTypeMismatch"></a>void </td><td class="memItemRight" valign=bottom><a class="el" href="class_public_key.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></table><hr><h2>Member Function Documentation</h2><a name="_x509_public_keya11" doxytag="PublicKey::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_4a12">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_functiona10">InvertibleRSAFunction</a>, <a class="el" href="class_r_w_function.html#_r_w_functiona8">RWFunction< r ></a>, <a class="el" href="class_invertible_r_w_function.html#_invertible_r_w_functiona7">InvertibleRWFunction< r ></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 name="_x509_public_keya12" doxytag="PublicKey::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" nowrap valign="top"> virtual bool CryptoMaterial::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></td> <td></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -