Fabcoin Core  0.16.2
P2P Digital Currency
Public Member Functions | Protected Member Functions | List of all members
ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY > Class Template Reference

ElGamal key agreement and encryption schemes default implementation. More...

#include <elgamal.h>

Inheritance diagram for ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >:
[legend]
Collaboration diagram for ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >:
[legend]

Public Member Functions

virtual ~ElGamalObjectImpl ()
 
size_t FixedMaxPlaintextLength () const
 
size_t FixedCiphertextLength () const
 
const DL_GroupParameters_GFPGetGroupParameters () const
 
DecodingResult FixedLengthDecrypt (RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const
 
- Public Member Functions inherited from DL_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY >
virtual ~DL_ObjectImplBase ()
 
PrivateKeyAccessPrivateKey ()
 
PublicKeyAccessPublicKey ()
 
const KEY & GetKey () const
 
KEY & AccessKey ()
 
- Public Member Functions inherited from AlgorithmImpl< BASE, SCHEME_OPTIONS::AlgorithmInfo >
std::string AlgorithmName () const
 
- Public Member Functions inherited from ElGamalBase
virtual ~ElGamalBase ()
 
void Derive (const DL_GroupParameters< Integer > &groupParams, byte *derivedKey, size_t derivedLength, const Integer &agreedElement, const Integer &ephemeralPublicKey, const NameValuePairs &derivationParams) const
 
size_t GetSymmetricKeyLength (size_t plainTextLength) const
 
size_t GetSymmetricCiphertextLength (size_t plainTextLength) const
 
size_t GetMaxSymmetricPlaintextLength (size_t cipherTextLength) const
 
void SymmetricEncrypt (RandomNumberGenerator &rng, const byte *key, const byte *plainText, size_t plainTextLength, byte *cipherText, const NameValuePairs &parameters) const
 
DecodingResult SymmetricDecrypt (const byte *key, const byte *cipherText, size_t cipherTextLength, byte *plainText, const NameValuePairs &parameters) const
 
- Public Member Functions inherited from DL_KeyAgreementAlgorithm_DH< Integer, NoCofactorMultiplication >
CRYPTOPP_STATIC_CONSTEXPR const char *CRYPTOPP_API StaticAlgorithmName ()
 
virtual ~DL_KeyAgreementAlgorithm_DH ()
 
Element AgreeWithEphemeralPrivateKey (const DL_GroupParameters< Element > &params, const DL_FixedBasePrecomputation< Element > &publicPrecomputation, const Integer &privateExponent) const
 
Element AgreeWithStaticPrivateKey (const DL_GroupParameters< Element > &params, const Element &publicElement, bool validateOtherPublicKey, const Integer &privateExponent) const
 
- Public Member Functions inherited from DL_KeyAgreementAlgorithm< Integer >
virtual ~DL_KeyAgreementAlgorithm ()
 
- Public Member Functions inherited from DL_KeyDerivationAlgorithm< Integer >
virtual ~DL_KeyDerivationAlgorithm ()
 
virtual bool ParameterSupported (const char *name) const
 
- Public Member Functions inherited from DL_SymmetricEncryptionAlgorithm
virtual ~DL_SymmetricEncryptionAlgorithm ()
 
virtual bool ParameterSupported (const char *name) const
 

Protected Member Functions

const DL_KeyAgreementAlgorithm< Integer > & GetKeyAgreementAlgorithm () const
 
const DL_KeyDerivationAlgorithm< Integer > & GetKeyDerivationAlgorithm () const
 
const DL_SymmetricEncryptionAlgorithmGetSymmetricEncryptionAlgorithm () const
 
- Protected Member Functions inherited from DL_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY >
BASE::KeyInterface & AccessKeyInterface ()
 
const BASE::KeyInterface & GetKeyInterface () const
 
HashIdentifier GetHashIdentifier () const
 
size_t GetDigestSize () const
 

Additional Inherited Members

- Public Types inherited from DL_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY >
typedef SCHEME_OPTIONS SchemeOptions
 
typedef KEY::Element Element
 
- Public Types inherited from DL_KeyAgreementAlgorithm_DH< Integer, NoCofactorMultiplication >
typedef Integer Element
 
- Public Types inherited from DL_KeyAgreementAlgorithm< Integer >
typedef Integer Element
 
- Static Public Member Functions inherited from AlgorithmImpl< BASE, SCHEME_OPTIONS::AlgorithmInfo >
static std::string CRYPTOPP_API StaticAlgorithmName ()
 

Detailed Description

template<class BASE, class SCHEME_OPTIONS, class KEY>
class ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >

ElGamal key agreement and encryption schemes default implementation.

Since
Crypto++ 1.0

Definition at line 100 of file elgamal.h.

Constructor & Destructor Documentation

template<class BASE , class SCHEME_OPTIONS , class KEY >
virtual ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::~ElGamalObjectImpl ( )
inlinevirtual

Definition at line 103 of file elgamal.h.

Member Function Documentation

template<class BASE , class SCHEME_OPTIONS , class KEY >
size_t ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::FixedCiphertextLength ( ) const
inline

Definition at line 106 of file elgamal.h.

Here is the caller graph for this function:

template<class BASE , class SCHEME_OPTIONS , class KEY >
DecodingResult ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::FixedLengthDecrypt ( RandomNumberGenerator rng,
const byte cipherText,
byte plainText 
) const
inline

Definition at line 110 of file elgamal.h.

Here is the call graph for this function:

template<class BASE , class SCHEME_OPTIONS , class KEY >
size_t ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::FixedMaxPlaintextLength ( ) const
inline

Definition at line 105 of file elgamal.h.

Here is the call graph for this function:

template<class BASE , class SCHEME_OPTIONS , class KEY >
const DL_GroupParameters_GFP& ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::GetGroupParameters ( ) const
inlinevirtual

Implements ElGamalBase.

Definition at line 108 of file elgamal.h.

Here is the call graph for this function:

template<class BASE , class SCHEME_OPTIONS , class KEY >
const DL_KeyAgreementAlgorithm<Integer>& ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::GetKeyAgreementAlgorithm ( ) const
inlineprotected

Definition at line 114 of file elgamal.h.

template<class BASE , class SCHEME_OPTIONS , class KEY >
const DL_KeyDerivationAlgorithm<Integer>& ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::GetKeyDerivationAlgorithm ( ) const
inlineprotected

Definition at line 115 of file elgamal.h.

template<class BASE , class SCHEME_OPTIONS , class KEY >
const DL_SymmetricEncryptionAlgorithm& ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::GetSymmetricEncryptionAlgorithm ( ) const
inlineprotected

Definition at line 116 of file elgamal.h.


The documentation for this class was generated from the following file: