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 >:

## Public Member Functions

size_t | FixedMaxPlaintextLength () const
size_t | FixedCiphertextLength () const
const DL_GroupParameters_GFP & | GetGroupParameters () const
DecodingResult | FixedLengthDecrypt (RandomNumberGenerator &rng, const byte *cipherText, byte *plainText) const
Public Member Functions inherited from DL_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY >
PrivateKey & | AccessPrivateKey ()
PublicKey & | AccessPublicKey ()
const KEY & | GetKey () const
KEY & | AccessKey ()
Public Member Functions inherited from AlgorithmImpl< BASE, SCHEME_OPTIONS::AlgorithmInfo >
std::string | AlgorithmName () const
| The algorithm name.
Public Member Functions inherited from 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 >
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< T >
virtual Element | AgreeWithEphemeralPrivateKey (const DL_GroupParameters< Element > &params, const DL_FixedBasePrecomputation< Element > &publicPrecomputation, const Integer &privateExponent) const =0
virtual Element | AgreeWithStaticPrivateKey (const DL_GroupParameters< Element > &params, const Element &publicElement, bool validateOtherPublicKey, const Integer &privateExponent) const =0
Public Member Functions inherited from DL_KeyDerivationAlgorithm< Integer >
virtual bool | ParameterSupported (const char *name) const
Public Member Functions inherited from DL_SymmetricEncryptionAlgorithm
virtual bool | ParameterSupported (const char *name) 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< T >
typedef T | Element
Static Public Member Functions inherited from AlgorithmImpl< BASE, SCHEME_OPTIONS::AlgorithmInfo >
static std::string | StaticAlgorithmName ()
| The algorithm name.
Static Public Member Functions inherited from DL_KeyAgreementAlgorithm_DH< Integer, NoCofactorMultiplication >
static const char * | 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.

Template Parameters

  BASE | Base class implementation
  SCHEME_OPTIONS | Scheme options
  KEY | ElGamal key classes

Since
  Crypto++ 1.0

Definition at line 107 of file elgamal.h.

## Constructor & Destructor Documentation

## ~ElGamalObjectImpl()

template<class BASE , class SCHEME_OPTIONS , class KEY >

virtual ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::~ElGamalObjectImpl | ( |  | ) |

inline virtual

Definition at line 112 of file elgamal.h.

## Member Function Documentation

## FixedMaxPlaintextLength()

template<class BASE , class SCHEME_OPTIONS , class KEY >

size_t ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::FixedMaxPlaintextLength | ( |  | ) | const

inline

Definition at line 114 of file elgamal.h.

## FixedCiphertextLength()

template<class BASE , class SCHEME_OPTIONS , class KEY >

size_t ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::FixedCiphertextLength | ( |  | ) | const

inline

Definition at line 115 of file elgamal.h.

## GetGroupParameters()

template<class BASE , class SCHEME_OPTIONS , class KEY >

const DL_GroupParameters_GFP & ElGamalObjectImpl< BASE, SCHEME_OPTIONS, KEY >::GetGroupParameters | ( |  | ) | const

inline virtual

Implements ElGamalBase.

Definition at line 117 of file elgamal.h.

## FixedLengthDecrypt()

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 119 of file elgamal.h.

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

- elgamal.h