Crypto++ 8.7
Free C++ class library of cryptographic schemes
Public Member Functions | List of all members
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_GFPGetGroupParameters () 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
 
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
 
virtual void Derive (const DL_GroupParameters< Integer > &groupParams, byte *derivedKey, size_t derivedLength, const Integer &agreedElement, const Integer &ephemeralPublicKey, const NameValuePairs &derivationParams) const=0
 
- Public Member Functions inherited from DL_SymmetricEncryptionAlgorithm
virtual bool ParameterSupported (const char *name) const
 
virtual size_t GetSymmetricKeyLength (size_t plaintextLength) const =0
 
virtual size_t GetSymmetricCiphertextLength (size_t plaintextLength) const =0
 
virtual size_t GetMaxSymmetricPlaintextLength (size_t ciphertextLength) const =0
 
virtual void SymmetricEncrypt (RandomNumberGenerator &rng, const byte *key, const byte *plaintext, size_t plaintextLength, byte *ciphertext, const NameValuePairs &parameters) const =0
 
virtual DecodingResult SymmetricDecrypt (const byte *key, const byte *ciphertext, size_t ciphertextLength, byte *plaintext, const NameValuePairs &parameters) const =0
 

Additional Inherited Members

- 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 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 ( )
inlinevirtual

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
inlinevirtual

Implements DL_KeyDerivationAlgorithm< Integer >.

Definition at line 31 of file elgamal.h.

◆ GetSymmetricKeyLength()

size_t ElGamalBase::GetSymmetricKeyLength ( size_t  plainTextLength) const
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 38 of file elgamal.h.

◆ GetSymmetricCiphertextLength()

size_t ElGamalBase::GetSymmetricCiphertextLength ( size_t  plainTextLength) const
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 44 of file elgamal.h.

◆ GetMaxSymmetricPlaintextLength()

size_t ElGamalBase::GetMaxSymmetricPlaintextLength ( size_t  cipherTextLength) const
inlinevirtual

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
inlinevirtual

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
inlinevirtual

Implements DL_SymmetricEncryptionAlgorithm.

Definition at line 78 of file elgamal.h.


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