📄 class_private_key.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++: PrivateKey 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>PrivateKey Class Reference</h1><!-- doxytag: class="PrivateKey" --><!-- doxytag: inherits="GeneratableCryptoMaterial" --><code>#include <<a class="el" href="cryptlib_8h-source.html">cryptlib.h</a>></code><p><p>Inheritance diagram for PrivateKey:<p><center><img src="class_private_key.png" usemap="#PrivateKey_map" border="0" alt=""></center><map name="PrivateKey_map"><area href="class_generatable_crypto_material.html" alt="GeneratableCryptoMaterial" shape="rect" coords="1233,112,1634,136"><area href="class_crypto_material.html" alt="CryptoMaterial" shape="rect" coords="1233,56,1634,80"><area href="class_name_value_pairs.html" alt="NameValuePairs" shape="rect" coords="1233,0,1634,24"><area href="class_a_s_n1_crypto_material.html" alt="ASN1CryptoMaterial< PrivateKey >" shape="rect" coords="411,224,812,248"><area href="class_invertible_e_s_i_g_n_function.html" alt="InvertibleESIGNFunction" shape="rect" coords="822,224,1223,248"><area href="class_invertible_l_u_c_function.html" alt="InvertibleLUCFunction" shape="rect" coords="1233,224,1634,248"><area href="class_invertible_rabin_function.html" alt="InvertibleRabinFunction" shape="rect" coords="1644,224,2045,248"><area href="class_invertible_r_w_function.html" alt="InvertibleRWFunction" shape="rect" coords="2055,224,2456,248"><area href="class_p_k_c_s8_private_key.html" alt="PKCS8PrivateKey" shape="rect" coords="411,280,812,304"><area href="class_d_l___key_impl.html" alt="DL_KeyImpl< PKCS8PrivateKey, DL_GroupParameters_EC< EC > >" shape="rect" coords="0,336,401,360"><area href="class_d_l___key_impl.html" alt="DL_KeyImpl< PKCS8PrivateKey, GP >" shape="rect" coords="411,336,812,360"><area href="class_invertible_r_s_a_function.html" alt="InvertibleRSAFunction" shape="rect" coords="822,336,1223,360"><area href="class_d_l___private_key_impl.html" alt="DL_PrivateKeyImpl< DL_GroupParameters_EC< EC > >" shape="rect" coords="0,392,401,416"><area href="class_d_l___private_key_impl.html" alt="DL_PrivateKeyImpl< GP >" shape="rect" coords="411,392,812,416"><area href="class_invertible_r_s_a_function___i_s_o.html" alt="InvertibleRSAFunction_ISO" shape="rect" coords="822,392,1223,416"><area href="class_d_l___private_key___e_c.html" alt="DL_PrivateKey_EC< EC >" shape="rect" coords="0,448,401,472"><area href="class_d_l___private_key___g_f_p.html" alt="DL_PrivateKey_GFP< GP >" shape="rect" coords="411,448,812,472"></map><a href="class_private_key-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>interface for private keys <p><p>Definition at line <a class="el" href="cryptlib_8h-source.html#l01075">1075</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_generatable_crypto_material.html#be368b52db1ca7079b690f2d6e605f7a">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#d3205973dd1afa14090a683154c1109c">g_nullNameValuePairs</a>)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">generate a random key or crypto parameters <a href="#be368b52db1ca7079b690f2d6e605f7a"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="38d492343c32e530a5c2781b5797f755"></a><!-- doxytag: member="PrivateKey::GenerateRandomWithKeySize" ref="38d492343c32e530a5c2781b5797f755" args="(RandomNumberGenerator &rng, unsigned int keySize)" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_generatable_crypto_material.html#38d492343c32e530a5c2781b5797f755">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" title="interface for retrieving values given their names">NameValuePairs</a> object that just specifies "KeySize" <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#20181c1b39a74a9fe91385b025b773c6">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="#20181c1b39a74a9fe91385b025b773c6"></a><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_crypto_material.html#439743c6b4e89ca8228a12fa1ea43ab1">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 <a href="#439743c6b4e89ca8228a12fa1ea43ab1"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="edb65ba5323f7bb41fc57973566d20cd"></a><!-- doxytag: member="PrivateKey::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="PrivateKey::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="PrivateKey::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="PrivateKey::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><tr><td class="mdescLeft"> </td><td class="mdescRight">retrieve previously saved precomputation <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="839d0f7f3e256b625caf6fd792925ad4"></a><!-- doxytag: member="PrivateKey::SavePrecomputation" ref="839d0f7f3e256b625caf6fd792925ad4" args="(BufferedTransformation &storedPrecomputation) const " -->virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#839d0f7f3e256b625caf6fd792925ad4">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></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1da44802c5cf00946043922cb9e7e6e"></a><!-- doxytag: member="PrivateKey::DoQuickSanityCheck" ref="a1da44802c5cf00946043922cb9e7e6e" args="() const" -->void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_crypto_material.html#a1da44802c5cf00946043922cb9e7e6e">DoQuickSanityCheck</a> () const</td></tr><tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="16d9f1685fbb1be3f29a22dbba911142"></a><!-- doxytag: member="PrivateKey::GetThisObject" ref="16d9f1685fbb1be3f29a22dbba911142" args="(T &object) const" -->template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_name_value_pairs.html#16d9f1685fbb1be3f29a22dbba911142">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></td></tr><tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="01c64a1e0a5f667898b4c1968a853c0f"></a><!-- doxytag: member="PrivateKey::GetThisPointer" ref="01c64a1e0a5f667898b4c1968a853c0f" args="(T *&p) const " -->template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_name_value_pairs.html#01c64a1e0a5f667898b4c1968a853c0f">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></td></tr><tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="96686e9f8d6ce3ab870e516fb72b608e"></a><!-- doxytag: member="PrivateKey::GetValue" ref="96686e9f8d6ce3ab870e516fb72b608e" args="(const char *name, T &value) const " -->template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_name_value_pairs.html#96686e9f8d6ce3ab870e516fb72b608e">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></td></tr><tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="943b2009297783f1c35bae46efc3b5f7"></a><!-- doxytag: member="PrivateKey::GetValueWithDefault" ref="943b2009297783f1c35bae46efc3b5f7" args="(const char *name, T defaultValue) const " -->template<class T> </td></tr><tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_name_value_pairs.html#943b2009297783f1c35bae46efc3b5f7">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></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="13faea827ee047cd58557282806ed2e1"></a><!-- doxytag: member="PrivateKey::GetValueNames" ref="13faea827ee047cd58557282806ed2e1" args="() const" -->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -