ElGamalBase Class Referenceabstract

ElGamal key agreement and encryption schemes base class. More...

`#include <elgamal.h>`

Inheritance diagram for ElGamalBase:

## Public Member Functions

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
virtual const DL_GroupParameters_GFP & | GetGroupParameters () const =0
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_KeyAgreementAlgorithm_DH< Integer, NoCofactorMultiplication >
typedef Integer | Element
Public Types inherited from DL_KeyAgreementAlgorithm< T >
typedef T | Element
Static Public Member Functions inherited from DL_KeyAgreementAlgorithm_DH< Integer, NoCofactorMultiplication >
static const char * | StaticAlgorithmName ()

## Detailed Description

ElGamal key agreement and encryption schemes base class.

Since
  Crypto++ 1.0

Definition at line 23 of file elgamal.h.

## Constructor & Destructor Documentation

## ~ElGamalBase()

virtual ElGamalBase::~ElGamalBase | ( |  | ) |

inline virtual

Definition at line 29 of file elgamal.h.

## Member Function Documentation

## Derive()

void ElGamalBase::Derive | ( | const DL_GroupParameters< Integer > & | groupParams,
|  | byte * | derivedKey,
|  | size_t | derivedLength,
|  | const Integer & | agreedElement,
|  | const Integer & | ephemeralPublicKey,
|  | const NameValuePairs & | derivationParams
| ) |  | const

inline virtual

Implements DL_KeyDerivationAlgorithm< Integer >.

Definition at line 31 of file elgamal.h.

## GetSymmetricKeyLength()

size_t ElGamalBase::GetSymmetricKeyLength | ( | size_t | plainTextLength | ) | const

inline virtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 38 of file elgamal.h.

## GetSymmetricCiphertextLength()

size_t ElGamalBase::GetSymmetricCiphertextLength | ( | size_t | plainTextLength | ) | const

inline virtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 44 of file elgamal.h.

## GetMaxSymmetricPlaintextLength()

size_t ElGamalBase::GetMaxSymmetricPlaintextLength | ( | size_t | cipherTextLength | ) | const

inline virtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 53 of file elgamal.h.

## SymmetricEncrypt()

void ElGamalBase::SymmetricEncrypt | ( | RandomNumberGenerator & | rng,
|  | const byte * | key,
|  | const byte * | plainText,
|  | size_t | plainTextLength,
|  | byte * | cipherText,
|  | const NameValuePairs & | parameters
| ) |  | const

inline virtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 64 of file elgamal.h.

## SymmetricDecrypt()

DecodingResult ElGamalBase::SymmetricDecrypt | ( | const byte * | key,
|  | const byte * | cipherText,
|  | size_t | cipherTextLength,
|  | byte * | plainText,
|  | const NameValuePairs & | parameters
| ) |  | const

inline virtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 78 of file elgamal.h.

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

- elgamal.h