Security Scol plugin
Public Types | Public Member Functions | List of all members
DL_GroupParameters_ElGamal Class Reference

#include <gfpcrypt.h>

Inheritance diagram for DL_GroupParameters_ElGamal:
DL_GroupParameters_GFP_DefaultSafePrime DL_GroupParameters_GFP DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation > DL_GroupParametersImpl< GROUP_PRECOMP, BASE_PRECOMP, BASE > DL_GroupParameters< T > CryptoParameters GeneratableCryptoMaterial CryptoMaterial NameValuePairs

Public Types

typedef NoCofactorMultiplication DefaultCofactorOption
 
- Public Types inherited from DL_GroupParameters_GFP_DefaultSafePrime
typedef NoCofactorMultiplication DefaultCofactorOption
 
- Public Types inherited from DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation >
typedef GROUP_PRECOMP::Element Element
 
- Public Types inherited from DL_GroupParametersImpl< GROUP_PRECOMP, BASE_PRECOMP, BASE >
typedef GROUP_PRECOMP GroupPrecomputation
 
typedef GROUP_PRECOMP::Element Element
 
typedef BASE_PRECOMP BasePrecomputation
 
- Public Types inherited from DL_GroupParameters< T >
typedef T Element
 

Public Member Functions

Integer GetMaxExponent () const
 Retrieves the maximum exponent for the group.
 
- Public Member Functions inherited from DL_GroupParameters_GFP
bool IsIdentity (const Integer &element) const
 Determines if an element is an identity.
 
void SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const
 Exponentiates a base to multiple exponents.
 
bool GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const
 Get a named value.
 
Element MultiplyElements (const Element &a, const Element &b) const
 
Element CascadeExponentiate (const Element &element1, const Integer &exponent1, const Element &element2, const Integer &exponent2) const
 
- Public Member Functions inherited from DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation >
bool GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const
 Get a named value.
 
void AssignFrom (const NameValuePairs &source)
 Assign values to this object.
 
const DL_FixedBasePrecomputation< Element > & GetBasePrecomputation () const
 Retrieves the group precomputation.
 
DL_FixedBasePrecomputation< Element > & AccessBasePrecomputation ()
 Retrieves the group precomputation.
 
const IntegerGetModulus () const
 Retrieve the modulus for the group.
 
const IntegerGetGenerator () const
 Retrieves a reference to the group generator.
 
void SetModulusAndSubgroupGenerator (const Integer &p, const Integer &g)
 
bool operator== (const DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typename GROUP_PRECOMP::Element > > &rhs) const
 
bool operator!= (const DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typename GROUP_PRECOMP::Element > > &rhs) const
 
- Public Member Functions inherited from DL_GroupParametersImpl< GROUP_PRECOMP, BASE_PRECOMP, BASE >
const DL_GroupPrecomputation< Element > & GetGroupPrecomputation () const
 Retrieves the group precomputation.
 
const DL_FixedBasePrecomputation< Element > & GetBasePrecomputation () const
 Retrieves the group precomputation.
 
DL_FixedBasePrecomputation< Element > & AccessBasePrecomputation ()
 Retrieves the group precomputation.
 
- Public Member Functions inherited from DL_GroupParameters< T >
bool Validate (RandomNumberGenerator &rng, unsigned int level) const
 Check this object for errors.
 
bool SupportsPrecomputation () const
 Determines whether the object supports precomputation.
 
void Precompute (unsigned int precomputationStorage=16)
 Perform precomputation.
 
void LoadPrecomputation (BufferedTransformation &storedPrecomputation)
 Retrieve previously saved precomputation.
 
void SavePrecomputation (BufferedTransformation &storedPrecomputation) const
 Save precomputation for later use.
 
virtual const Element & GetSubgroupGenerator () const
 Retrieves the subgroup generator.
 
virtual void SetSubgroupGenerator (const Element &base)
 Sets the subgroup generator.
 
virtual Element ExponentiateBase (const Integer &exponent) const
 Exponentiates the base.
 
virtual Element ExponentiateElement (const Element &base, const Integer &exponent) const
 Exponentiates an element.
 
virtual const IntegerGetSubgroupOrder () const =0
 Retrieves the subgroup order.
 
virtual Integer GetGroupOrder () const
 Retrieves the order of the group.
 
virtual Integer GetCofactor () const
 Retrieves the cofactor.
 
virtual unsigned int GetEncodedElementSize (bool reversible) const =0
 Retrieves the encoded element's size.
 
virtual void EncodeElement (bool reversible, const Element &element, byte *encoded) const =0
 Encodes the element.
 
virtual Element DecodeElement (const byte *encoded, bool checkForGroupMembership) const =0
 Decodes the element.
 
virtual Integer ConvertElementToInteger (const Element &element) const =0
 Converts an element to an Integer.
 
virtual bool ValidateGroup (RandomNumberGenerator &rng, unsigned int level) const =0
 Check the group for errors.
 
virtual bool ValidateElement (unsigned int level, const Element &element, const DL_FixedBasePrecomputation< Element > *precomp) const =0
 Check the element for errors.
 
virtual bool FastSubgroupCheckAvailable () const =0
 
virtual bool IsIdentity (const Element &element) const =0
 Determines if an element is an identity.
 
virtual void SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const =0
 Exponentiates a base to multiple exponents.
 
- Public Member Functions inherited from GeneratableCryptoMaterial
virtual void GenerateRandom (RandomNumberGenerator &rng, const NameValuePairs &params=g_nullNameValuePairs)
 Generate a random key or crypto parameters.
 
void GenerateRandomWithKeySize (RandomNumberGenerator &rng, unsigned int keySize)
 Generate a random key or crypto parameters.
 
- Public Member Functions inherited from CryptoMaterial
virtual void ThrowIfInvalid (RandomNumberGenerator &rng, unsigned int level) const
 Check this object for errors.
 
virtual void Save (BufferedTransformation &bt) const
 Saves a key to a BufferedTransformation.
 
virtual void Load (BufferedTransformation &bt)
 Loads a key from a BufferedTransformation.
 
void DoQuickSanityCheck () const
 Perform a quick sanity check.
 
- Public Member Functions inherited from NameValuePairs
template<class T >
bool GetThisObject (T &object) const
 Get a copy of this object or subobject.
 
template<class T >
bool GetThisPointer (T *&ptr) const
 Get a pointer to this object.
 
template<class T >
bool GetValue (const char *name, T &value) const
 Get a named value.
 
template<class T >
GetValueWithDefault (const char *name, T defaultValue) const
 Get a named value.
 
CRYPTOPP_DLL std::string GetValueNames () const
 Get a list of value names that can be retrieved.
 
CRYPTOPP_DLL bool GetIntValue (const char *name, int &value) const
 Get a named value with type int.
 
CRYPTOPP_DLL int GetIntValueWithDefault (const char *name, int defaultValue) const
 Get a named value with type int, with default.
 
CRYPTOPP_DLL bool GetWord64Value (const char *name, word64 &value) const
 Get a named value with type word64.
 
CRYPTOPP_DLL word64 GetWord64ValueWithDefault (const char *name, word64 defaultValue) const
 Get a named value with type word64, with default.
 
template<class T >
void GetRequiredParameter (const char *className, const char *name, T &value) const
 Retrieves a required name/value pair.
 
CRYPTOPP_DLL void GetRequiredIntParameter (const char *className, const char *name, int &value) const
 Retrieves a required name/value pair.
 

Additional Inherited Members

- Static Public Member Functions inherited from NameValuePairs
static CRYPTOPP_DLL void CRYPTOPP_API ThrowIfTypeMismatch (const char *name, const std::type_info &stored, const std::type_info &retrieving)
 Ensures an expected name and type is present.
 
- Protected Member Functions inherited from DL_GroupParameters_GFP_DefaultSafePrime
unsigned int GetDefaultSubgroupOrderSize (unsigned int modulusSize) const
 
- Protected Member Functions inherited from DL_GroupParameters_GFP
int GetFieldType () const
 
- Protected Member Functions inherited from DL_GroupParameters< T >
void ParametersChanged ()
 
- Protected Attributes inherited from DL_GroupParametersImpl< GROUP_PRECOMP, BASE_PRECOMP, BASE >
GROUP_PRECOMP m_groupPrecomputation
 
BASE_PRECOMP m_gpc
 

Detailed Description

ElGamal encryption for safe interop

See also
On the (in)security of ElGamal in OpenPGP, Issue 1059, CVE-2021-40530
Since
Crypto++ 8.6

Definition at line 291 of file gfpcrypt.h.

Member Typedef Documentation

◆ DefaultCofactorOption

Definition at line 294 of file gfpcrypt.h.

Constructor & Destructor Documentation

◆ ~DL_GroupParameters_ElGamal()

virtual DL_GroupParameters_ElGamal::~DL_GroupParameters_ElGamal ( )
inlinevirtual

Definition at line 296 of file gfpcrypt.h.

Member Function Documentation

◆ GetMaxExponent()

Integer DL_GroupParameters_ElGamal::GetMaxExponent ( ) const
inlinevirtual

Retrieves the maximum exponent for the group.

Returns
the maximum exponent for the group

Implements DL_GroupParameters< T >.

Definition at line 298 of file gfpcrypt.h.


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