<!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++: pubkey.h File 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="#nested-classes">Classes</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">pubkey.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>This file contains helper classes/functions for implementing public key algorithms. <a href="#details">More...</a></p> <p><a href="pubkey_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trapdoor_function_bounds.html">TrapdoorFunctionBounds</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Provides range for plaintext and ciphertext lengths. <a href="class_trapdoor_function_bounds.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_randomized_trapdoor_function.html">RandomizedTrapdoorFunction</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Applies the trapdoor function, using random data if required. <a href="class_randomized_trapdoor_function.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trapdoor_function.html">TrapdoorFunction</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Applies the trapdoor function. <a href="class_trapdoor_function.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_randomized_trapdoor_function_inverse.html">RandomizedTrapdoorFunctionInverse</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Applies the inverse of the trapdoor function, using random data if required. <a href="class_randomized_trapdoor_function_inverse.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_trapdoor_function_inverse.html">TrapdoorFunctionInverse</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Applies the inverse of the trapdoor function. <a href="class_trapdoor_function_inverse.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___encryption_message_encoding_method.html">PK_EncryptionMessageEncodingMethod</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Message encoding method for public key encryption. <a href="class_p_k___encryption_message_encoding_method.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___base.html">TF_Base< TFI, MEI ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base for trapdoor based cryptosystems. <a href="class_t_f___base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___fixed_length_crypto_system_impl.html">PK_FixedLengthCryptoSystemImpl< BASE ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Public key trapdoor function default implementation. <a href="class_p_k___fixed_length_crypto_system_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___crypto_system_base.html">TF_CryptoSystemBase< INTFACE, BASE ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor function cryptosystem base class. <a href="class_t_f___crypto_system_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___decryptor_base.html">TF_DecryptorBase</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor function cryptosystems decryption base class. <a href="class_t_f___decryptor_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___encryptor_base.html">TF_EncryptorBase</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor function cryptosystems encryption base class. <a href="class_t_f___encryptor_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___signature_message_encoding_method.html">PK_SignatureMessageEncodingMethod</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for message encoding method for public key signature schemes. <a href="class_p_k___signature_message_encoding_method.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_k___signature_message_encoding_method_1_1_hash_identifier_lookup.html">PK_SignatureMessageEncodingMethod::HashIdentifierLookup</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_p_k___signature_message_encoding_method_1_1_hash_identifier_lookup_1_1_hash_identifier_lookup2.html">PK_SignatureMessageEncodingMethod::HashIdentifierLookup::HashIdentifierLookup2< H ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___deterministic_signature_message_encoding_method.html">PK_DeterministicSignatureMessageEncodingMethod</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for message encoding method for public key signature schemes. <a href="class_p_k___deterministic_signature_message_encoding_method.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___recoverable_signature_message_encoding_method.html">PK_RecoverableSignatureMessageEncodingMethod</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for message encoding method for public key signature schemes. <a href="class_p_k___recoverable_signature_message_encoding_method.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_message_encoding_method___d_s_a.html">DL_SignatureMessageEncodingMethod_DSA</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for message encoding method for public key signature schemes. <a href="class_d_l___signature_message_encoding_method___d_s_a.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_message_encoding_method___n_r.html">DL_SignatureMessageEncodingMethod_NR</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for message encoding method for public key signature schemes. <a href="class_d_l___signature_message_encoding_method___n_r.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___message_accumulator_base.html">PK_MessageAccumulatorBase</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for message encoding method for public key signature schemes. <a href="class_p_k___message_accumulator_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___message_accumulator_impl.html">PK_MessageAccumulatorImpl< HASH_ALGORITHM ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for message encoding method for public key signature schemes. <a href="class_p_k___message_accumulator_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___signature_scheme_base.html">TF_SignatureSchemeBase< INTFACE, BASE ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) Signature Scheme base class. <a href="class_t_f___signature_scheme_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___signer_base.html">TF_SignerBase</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) Signer base class. <a href="class_t_f___signer_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___verifier_base.html">TF_VerifierBase</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) Verifier base class. <a href="class_t_f___verifier_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_t_f___crypto_scheme_options.html">TF_CryptoSchemeOptions< T1, T2, T3 ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) scheme options. <a href="struct_t_f___crypto_scheme_options.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_t_f___signature_scheme_options.html">TF_SignatureSchemeOptions< T1, T2, T3, T4 ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) signature scheme options. <a href="struct_t_f___signature_scheme_options.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___object_impl_base.html">TF_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY_CLASS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) base implementation. <a href="class_t_f___object_impl_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___object_impl_ext_ref.html">TF_ObjectImplExtRef< BASE, SCHEME_OPTIONS, KEY ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) signature with external reference. <a href="class_t_f___object_impl_ext_ref.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___object_impl.html">TF_ObjectImpl< BASE, SCHEME_OPTIONS, KEY_CLASS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) signature scheme options. <a href="class_t_f___object_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___decryptor_impl.html">TF_DecryptorImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) decryptor options. <a href="class_t_f___decryptor_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___encryptor_impl.html">TF_EncryptorImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) encryptor options. <a href="class_t_f___encryptor_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___signer_impl.html">TF_SignerImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) encryptor options. <a href="class_t_f___signer_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___verifier_impl.html">TF_VerifierImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) encryptor options. <a href="class_t_f___verifier_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_mask_generating_function.html">MaskGeneratingFunction</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Mask generation function interface. <a href="class_mask_generating_function.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p1363___m_g_f1.html">P1363_MGF1</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">P1363 mask generation function. <a href="class_p1363___m_g_f1.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p1363___k_d_f2.html">P1363_KDF2< H ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">P1363 key derivation function. <a href="class_p1363___k_d_f2.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___bad_element.html">DL_BadElement</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="class_exception.html" title="Base class for all exceptions thrown by the library. ">Exception</a> thrown when an invalid group element is encountered. <a href="class_d_l___bad_element.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___group_parameters.html">DL_GroupParameters< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for Discrete Log (DL) group parameters. <a href="class_d_l___group_parameters.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___group_parameters_impl.html">DL_GroupParametersImpl< GROUP_PRECOMP, BASE_PRECOMP, BASE ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base implementation of Discrete Log (DL) group parameters. <a href="class_d_l___group_parameters_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___key.html">DL_Key< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for a Discrete Log (DL) key. <a href="class_d_l___key.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___public_key.html">DL_PublicKey< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for Discrete Log (DL) public keys. <a href="class_d_l___public_key.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___private_key.html">DL_PrivateKey< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for Discrete Log (DL) private keys. <a href="class_d_l___private_key.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___key_impl.html">DL_KeyImpl< PK, GP, O ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) key base implementation. <a href="class_d_l___key_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___private_key_impl.html">DL_PrivateKeyImpl< GP ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) private key base implementation. <a href="class_d_l___private_key_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___private_key___with_signature_pairwise_consistency_test.html">DL_PrivateKey_WithSignaturePairwiseConsistencyTest< BASE, SIGNATURE_SCHEME ></a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___public_key_impl.html">DL_PublicKeyImpl< GP ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) public key base implementation. <a href="class_d_l___public_key_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___elgamal_like_signature_algorithm.html">DL_ElgamalLikeSignatureAlgorithm< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for Elgamal-like signature algorithms. <a href="class_d_l___elgamal_like_signature_algorithm.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_deterministic_signature_algorithm.html">DeterministicSignatureAlgorithm</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for deterministic signers. <a href="class_deterministic_signature_algorithm.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___key_agreement_algorithm.html">DL_KeyAgreementAlgorithm< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for DL key agreement algorithms. <a href="class_d_l___key_agreement_algorithm.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___key_derivation_algorithm.html">DL_KeyDerivationAlgorithm< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for key derivation algorithms used in DL cryptosystems. <a href="class_d_l___key_derivation_algorithm.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___symmetric_encryption_algorithm.html">DL_SymmetricEncryptionAlgorithm</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for symmetric encryption algorithms used in DL cryptosystems. <a href="class_d_l___symmetric_encryption_algorithm.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___base.html">DL_Base< KI ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) base interface. <a href="class_d_l___base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signature_scheme_base.html">DL_SignatureSchemeBase< INTFACE, KEY_INTFACE ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) signature scheme base implementation. <a href="class_d_l___signature_scheme_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signer_base.html">DL_SignerBase< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) signature scheme signer base implementation. <a href="class_d_l___signer_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___verifier_base.html">DL_VerifierBase< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discret Log (DL) Verifier base class. <a href="class_d_l___verifier_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___crypto_system_base.html">DL_CryptoSystemBase< PK, KI ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) cryptosystem base implementation. <a href="class_d_l___crypto_system_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___decryptor_base.html">DL_DecryptorBase< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) decryptor base implementation. <a href="class_d_l___decryptor_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___encryptor_base.html">DL_EncryptorBase< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) encryptor base implementation. <a href="class_d_l___encryptor_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_l___scheme_options_base.html">DL_SchemeOptionsBase< T1, T2 ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) scheme options. <a href="struct_d_l___scheme_options_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_l___keyed_scheme_options.html">DL_KeyedSchemeOptions< T1, T2 ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) key options. <a href="struct_d_l___keyed_scheme_options.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_l___signature_scheme_options.html">DL_SignatureSchemeOptions< T1, T2, T3, T4, T5 ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) signature scheme options. <a href="struct_d_l___signature_scheme_options.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_d_l___crypto_scheme_options.html">DL_CryptoSchemeOptions< T1, T2, T3, T4, T5 ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) crypto scheme options. <a href="struct_d_l___crypto_scheme_options.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___object_impl_base.html">DL_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) base object implementation. <a href="class_d_l___object_impl_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___object_impl.html">DL_ObjectImpl< BASE, SCHEME_OPTIONS, KEY ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) object implementation. <a href="class_d_l___object_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___signer_impl.html">DL_SignerImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) signer implementation. <a href="class_d_l___signer_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___verifier_impl.html">DL_VerifierImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) verifier implementation. <a href="class_d_l___verifier_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___encryptor_impl.html">DL_EncryptorImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) encryptor implementation. <a href="class_d_l___encryptor_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___decryptor_impl.html">DL_DecryptorImpl< SCHEME_OPTIONS ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) decryptor implementation. <a href="class_d_l___decryptor_impl.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___simple_key_agreement_domain_base.html">DL_SimpleKeyAgreementDomainBase< T ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) simple key agreement base implementation. <a href="class_d_l___simple_key_agreement_domain_base.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___key_agreement_algorithm___d_h.html">DL_KeyAgreementAlgorithm_DH< ELEMENT, COFACTOR_OPTION ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Diffie-Hellman key agreement algorithm. <a href="class_d_l___key_agreement_algorithm___d_h.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_p_k___final_template.html">PK_FinalTemplate< BASE ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Template implementing constructors for public key algorithm classes. <a href="class_p_k___final_template.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_encryption_standard.html">EncryptionStandard</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for public key encryption standard classes. <a href="struct_encryption_standard.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_signature_standard.html">SignatureStandard</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for public key signature standard classes. <a href="struct_signature_standard.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___e_s.html">TF_ES< KEYS, STANDARD, ALG_INFO ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) encryption scheme. <a href="class_t_f___e_s.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___e_s.html">TF_ES< KEYS, STANDARD, ALG_INFO ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) encryption scheme. <a href="class_t_f___e_s.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___s_s.html">TF_SS< KEYS, STANDARD, H, ALG_INFO ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) Signature Scheme. <a href="class_t_f___s_s.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_f___s_s.html">TF_SS< KEYS, STANDARD, H, ALG_INFO ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Trapdoor Function (TF) Signature Scheme. <a href="class_t_f___s_s.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___s_s.html">DL_SS< KEYS, SA, MEM, H, ALG_INFO ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) signature scheme. <a href="class_d_l___s_s.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___s_s.html">DL_SS< KEYS, SA, MEM, H, ALG_INFO ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) signature scheme. <a href="class_d_l___s_s.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_l___e_s.html">DL_ES< KEYS, AA, DA, EA, ALG_INFO ></a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Discrete Log (DL) encryption scheme. <a href="class_d_l___e_s.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a6d1db66cf5a24de93d11f8df16f12f8b"><td class="memItemLeft" align="right" valign="top"><a id="a6d1db66cf5a24de93d11f8df16f12f8b"></a> #define </td><td class="memItemRight" valign="bottom"><b>MAYBE_RETURN</b>(x)   CRYPTOPP_UNUSED(x)</td></tr> <tr class="separator:a6d1db66cf5a24de93d11f8df16f12f8b"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a21baf0a8ac011fcaf9d9d9ce9e89a4cc"><td class="memItemLeft" align="right" valign="top"><a id="a21baf0a8ac011fcaf9d9d9ce9e89a4cc"></a> typedef std::pair< const byte *, unsigned int > </td><td class="memItemRight" valign="bottom"><b>HashIdentifier</b></td></tr> <tr class="separator:a21baf0a8ac011fcaf9d9d9ce9e89a4cc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a69cc5e4d394475c502bf76daee3ee2be"><td class="memItemLeft" align="right" valign="top"><a id="a69cc5e4d394475c502bf76daee3ee2be"></a> typedef <a class="el" href="struct_enum_to_type.html">EnumToType</a>< <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1">CofactorMultiplicationOption</a>, <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1a69418ae10529f1fab66df8063ea9d286">NO_COFACTOR_MULTIPLICTION</a> > </td><td class="memItemRight" valign="bottom"><b>NoCofactorMultiplication</b></td></tr> <tr class="separator:a69cc5e4d394475c502bf76daee3ee2be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a762cc7fc032dea36d6c45e101cfb580a"><td class="memItemLeft" align="right" valign="top"><a id="a762cc7fc032dea36d6c45e101cfb580a"></a> typedef <a class="el" href="struct_enum_to_type.html">EnumToType</a>< <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1">CofactorMultiplicationOption</a>, <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1af008f1e77658d1f047d77a9524f68276">COMPATIBLE_COFACTOR_MULTIPLICTION</a> > </td><td class="memItemRight" valign="bottom"><b>CompatibleCofactorMultiplication</b></td></tr> <tr class="separator:a762cc7fc032dea36d6c45e101cfb580a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aad4281288ded47691c195822e3e08ec9"><td class="memItemLeft" align="right" valign="top"><a id="aad4281288ded47691c195822e3e08ec9"></a> typedef <a class="el" href="struct_enum_to_type.html">EnumToType</a>< <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1">CofactorMultiplicationOption</a>, <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1a50b557cd9b91bd00d059703cb4806f94">INCOMPATIBLE_COFACTOR_MULTIPLICTION</a> > </td><td class="memItemRight" valign="bottom"><b>IncompatibleCofactorMultiplication</b></td></tr> <tr class="separator:aad4281288ded47691c195822e3e08ec9"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> Enumerations</h2></td></tr> <tr class="memitem:ae4b59f7b9d3c7e03bb739f0584905ff1"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1">CofactorMultiplicationOption</a> { <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1a69418ae10529f1fab66df8063ea9d286">NO_COFACTOR_MULTIPLICTION</a>, <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1af008f1e77658d1f047d77a9524f68276">COMPATIBLE_COFACTOR_MULTIPLICTION</a>, <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1a50b557cd9b91bd00d059703cb4806f94">INCOMPATIBLE_COFACTOR_MULTIPLICTION</a> }</td></tr> <tr class="memdesc:ae4b59f7b9d3c7e03bb739f0584905ff1"><td class="mdescLeft"> </td><td class="mdescRight">Methods for avoiding "Small-Subgroup" attacks on Diffie-Hellman Key Agreement. <a href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1">More...</a><br /></td></tr> <tr class="separator:ae4b59f7b9d3c7e03bb739f0584905ff1"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:a21504e2d12d7a615772129ef96a6f848"><td class="memItemLeft" align="right" valign="top"><a id="a21504e2d12d7a615772129ef96a6f848"></a> void </td><td class="memItemRight" valign="bottom"><b>P1363_MGF1KDF2_Common</b> (<a class="el" href="class_hash_transformation.html">HashTransformation</a> &hash, byte *output, size_t outputLength, const byte *input, size_t inputLength, const byte *derivationParams, size_t derivationParamsLength, bool mask, unsigned int counterStart)</td></tr> <tr class="separator:a21504e2d12d7a615772129ef96a6f848"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>This file contains helper classes/functions for implementing public key algorithms. </p> <p>The class hierachies in this header file tend to look like this:</p> <pre> x1 +--+ | | y1 z1 | | x2<y1> x2<z1> | | y2 z2 | | x3<y2> x3<z2> | | y3 z3 </pre><ul> <li> x1, y1, z1 are abstract interface classes defined in <a class="el" href="cryptlib_8h.html" title="Abstract base classes that provide a uniform interface to this library. ">cryptlib.h</a> </li> <li> x2, y2, z2 are implementations of the interfaces using "abstract policies", which are pure virtual functions that should return interfaces to interchangeable algorithms. These classes have Base suffixes. </li> <li> x3, y3, z3 hold actual algorithms and implement those virtual functions. These classes have Impl suffixes. </li> </ul> <p>The TF_ prefix means an implementation using trapdoor functions on integers.</p> <p>The DL_ prefix means an implementation using group operations in groups where discrete log is hard. </p> <p class="definition">Definition in file <a class="el" href="pubkey_8h_source.html">pubkey.h</a>.</p> </div><h2 class="groupheader">Enumeration Type Documentation</h2> <a id="ae4b59f7b9d3c7e03bb739f0584905ff1"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae4b59f7b9d3c7e03bb739f0584905ff1">◆ </a></span>CofactorMultiplicationOption</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="pubkey_8h.html#ae4b59f7b9d3c7e03bb739f0584905ff1">CofactorMultiplicationOption</a></td> </tr> </table> </div><div class="memdoc"> <p>Methods for avoiding "Small-Subgroup" attacks on Diffie-Hellman Key Agreement. </p> <p>Additional methods exist and include public key validation and choice of prime p. </p><dl class="section see"><dt>See also</dt><dd><a href="http://tools.ietf.org/html/rfc2785">Methods for Avoiding the "Small-Subgroup" Attacks on the Diffie-Hellman Key Agreement Method for S/MIME</a> </dd></dl> <table class="fieldtable"> <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae4b59f7b9d3c7e03bb739f0584905ff1a69418ae10529f1fab66df8063ea9d286"></a>NO_COFACTOR_MULTIPLICTION </td><td class="fielddoc"><p>No cofactor multiplication applied. </p> </td></tr> <tr><td class="fieldname"><a id="ae4b59f7b9d3c7e03bb739f0584905ff1af008f1e77658d1f047d77a9524f68276"></a>COMPATIBLE_COFACTOR_MULTIPLICTION </td><td class="fielddoc"><p>Cofactor multiplication compatible with ordinary Diffie-Hellman. </p> <p>Modifies the computation of ZZ by including j (the cofactor) in the computations and is compatible with ordinary Diffie-Hellman. </p> </td></tr> <tr><td class="fieldname"><a id="ae4b59f7b9d3c7e03bb739f0584905ff1a50b557cd9b91bd00d059703cb4806f94"></a>INCOMPATIBLE_COFACTOR_MULTIPLICTION </td><td class="fielddoc"><p>Cofactor multiplication incompatible with ordinary Diffie-Hellman. </p> <p>Modifies the computation of ZZ by including j (the cofactor) in the computations but is not compatible with ordinary Diffie-Hellman. </p> </td></tr> </table> <p class="definition">Definition at line <a class="el" href="pubkey_8h_source.html#l02060">2060</a> of file <a class="el" href="pubkey_8h_source.html">pubkey.h</a>.</p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sun Sep 16 2018 07:58:11 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>