Fabcoin Core  0.16.2
P2P Digital Currency
Public Types | Public Member Functions | Static Public Member Functions | List of all members
DL_GroupParameters_DSA Class Reference

DSA group parameters. More...

#include <gfpcrypt.h>

Inheritance diagram for DL_GroupParameters_DSA:
[legend]
Collaboration diagram for DL_GroupParameters_DSA:
[legend]

Public Types

enum  { MIN_PRIME_LENGTH = 1024, MAX_PRIME_LENGTH = 3072, PRIME_LENGTH_MULTIPLE = 1024 }
 
- Public Types inherited from DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation >
typedef ModExpPrecomputation::Element Element
 
- Public Types inherited from DL_GroupParametersImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation::Element >, DL_GroupParameters_IntegerBased >
typedef ModExpPrecomputation GroupPrecomputation
 
typedef ModExpPrecomputation::Element Element
 
typedef DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation::ElementBasePrecomputation
 
- Public Types inherited from DL_GroupParameters< Integer >
typedef Integer Element
 

Public Member Functions

virtual ~DL_GroupParameters_DSA ()
 
bool ValidateGroup (RandomNumberGenerator &rng, unsigned int level) const
 
void GenerateRandom (RandomNumberGenerator &rng, const NameValuePairs &alg)
 
- Public Member Functions inherited from DL_GroupParameters_GFP
virtual ~DL_GroupParameters_GFP ()
 
bool IsIdentity (const Integer &element) const
 Determines if an element is an identity. More...
 
void SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const
 Exponentiates a base to multiple exponents. More...
 
bool GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const
 Get a named value. More...
 
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 >
virtual ~DL_GroupParameters_IntegerBasedImpl ()
 
bool GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const
 Get a named value. More...
 
void AssignFrom (const NameValuePairs &source)
 Assign values to this object. More...
 
const DL_FixedBasePrecomputation< Element > & GetBasePrecomputation () const
 Retrieves the group precomputation. More...
 
DL_FixedBasePrecomputation< Element > & AccessBasePrecomputation ()
 Retrieves the group precomputation. More...
 
const IntegerGetModulus () const
 
const IntegerGetGenerator () const
 
void SetModulusAndSubgroupGenerator (const Integer &p, const Integer &g)
 
bool operator== (const DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation::Element > > &rhs) const
 
bool operator!= (const DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation::Element > > &rhs) const
 
- Public Member Functions inherited from DL_GroupParametersImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation::Element >, DL_GroupParameters_IntegerBased >
virtual ~DL_GroupParametersImpl ()
 
const DL_GroupPrecomputation< Element > & GetGroupPrecomputation () const
 Retrieves the group precomputation. More...
 
const DL_FixedBasePrecomputation< Element > & GetBasePrecomputation () const
 Retrieves the group precomputation. More...
 
DL_FixedBasePrecomputation< Element > & AccessBasePrecomputation ()
 Retrieves the group precomputation. More...
 
- Public Member Functions inherited from DL_GroupParameters_IntegerBased
virtual ~DL_GroupParameters_IntegerBased ()
 
void Initialize (const DL_GroupParameters_IntegerBased &params)
 Initialize a group parameters over integers. More...
 
void Initialize (RandomNumberGenerator &rng, unsigned int pbits)
 Create a group parameters over integers. More...
 
void Initialize (const Integer &p, const Integer &g)
 Initialize a group parameters over integers. More...
 
void Initialize (const Integer &p, const Integer &q, const Integer &g)
 Initialize a group parameters over integers. More...
 
void BERDecode (BufferedTransformation &bt)
 Decode this object from a BufferedTransformation. More...
 
void DEREncode (BufferedTransformation &bt) const
 Encode this object into a BufferedTransformation. More...
 
const IntegerGetSubgroupOrder () const
 Retrieves the subgroup order. More...
 
Integer GetGroupOrder () const
 Retrieves the order of the group. More...
 
bool ValidateElement (unsigned int level, const Integer &element, const DL_FixedBasePrecomputation< Integer > *precomp) const
 Check the element for errors. More...
 
bool FastSubgroupCheckAvailable () const
 
void EncodeElement (bool reversible, const Element &element, byte *encoded) const
 Encodes the element. More...
 
unsigned int GetEncodedElementSize (bool reversible) const
 Retrieves the encoded element's size. More...
 
Integer DecodeElement (const byte *encoded, bool checkForGroupMembership) const
 Decodes the element. More...
 
Integer ConvertElementToInteger (const Element &element) const
 Converts an element to an Integer. More...
 
Integer GetMaxExponent () const
 Retrieves the maximum exponent for the group. More...
 
OID GetAlgorithmID () const
 
void SetSubgroupOrder (const Integer &q)
 
- Public Member Functions inherited from ASN1CryptoMaterial< DL_GroupParameters< Integer > >
void Save (BufferedTransformation &bt) const
 DER encode ASN.1 object. More...
 
void Load (BufferedTransformation &bt)
 BER decode ASN.1 object. More...
 
- Public Member Functions inherited from ASN1Object
virtual ~ASN1Object ()
 
virtual void BEREncode (BufferedTransformation &bt) const
 Encode this object into a BufferedTransformation. More...
 
- Public Member Functions inherited from DL_GroupParameters< Integer >
virtual ~DL_GroupParameters ()
 
 DL_GroupParameters ()
 
bool Validate (RandomNumberGenerator &rng, unsigned int level) const
 Check this object for errors. More...
 
bool GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const
 Get a named value. More...
 
bool SupportsPrecomputation () const
 Determines whether the object supports precomputation. More...
 
void Precompute (unsigned int precomputationStorage=16)
 Perform precomputation. More...
 
void LoadPrecomputation (BufferedTransformation &storedPrecomputation)
 Retrieve previously saved precomputation. More...
 
void SavePrecomputation (BufferedTransformation &storedPrecomputation) const
 Save precomputation for later use. More...
 
virtual const ElementGetSubgroupGenerator () const
 Retrieves the subgroup generator. More...
 
virtual void SetSubgroupGenerator (const Element &base)
 Set the subgroup generator. More...
 
virtual Element ExponentiateBase (const Integer &exponent) const
 Retrieves the subgroup generator. More...
 
virtual Element ExponentiateElement (const Element &base, const Integer &exponent) const
 Exponentiates an element. More...
 
virtual Integer GetCofactor () const
 Retrieves the cofactor. More...
 
- Public Member Functions inherited from GeneratableCryptoMaterial
virtual ~GeneratableCryptoMaterial ()
 
void GenerateRandomWithKeySize (RandomNumberGenerator &rng, unsigned int keySize)
 Generate a random key or crypto parameters. More...
 
- Public Member Functions inherited from CryptoMaterial
virtual ~CryptoMaterial ()
 
virtual void ThrowIfInvalid (RandomNumberGenerator &rng, unsigned int level) const
 Check this object for errors. More...
 
void DoQuickSanityCheck () const
 Perform a quick sanity check. More...
 
- Public Member Functions inherited from NameValuePairs
virtual ~NameValuePairs ()
 
template<class T >
bool GetThisObject (T &object) const
 Get a copy of this object or subobject. More...
 
template<class T >
bool GetThisPointer (T *&ptr) const
 Get a pointer to this object. More...
 
template<class T >
bool GetValue (const char *name, T &value) const
 Get a named value. More...
 
template<class T >
T GetValueWithDefault (const char *name, T defaultValue) const
 Get a named value. More...
 
CRYPTOPP_DLL std::string GetValueNames () const
 Get a list of value names that can be retrieved. More...
 
CRYPTOPP_DLL bool GetIntValue (const char *name, int &value) const
 Get a named value with type int. More...
 
CRYPTOPP_DLL int GetIntValueWithDefault (const char *name, int defaultValue) const
 Get a named value with type int, with default. More...
 
template<class T >
void GetRequiredParameter (const char *className, const char *name, T &value) const
 Retrieves a required name/value pair. More...
 
CRYPTOPP_DLL void GetRequiredIntParameter (const char *className, const char *name, int &value) const
 Retrieves a required name/value pair. More...
 

Static Public Member Functions

static bool CRYPTOPP_API IsValidPrimeLength (unsigned int pbits)
 
- Static Public Member Functions inherited from DL_GroupParameters_IntegerBased
static std::string CRYPTOPP_API StaticAlgorithmNamePrefix ()
 
- 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. More...
 

Additional Inherited Members

- Protected Member Functions inherited from DL_GroupParameters_GFP
int GetFieldType () const
 
- Protected Member Functions inherited from DL_GroupParameters_IntegerBased
Integer ComputeGroupOrder (const Integer &modulus) const
 
virtual unsigned int GetDefaultSubgroupOrderSize (unsigned int modulusSize) const
 
- Protected Member Functions inherited from DL_GroupParameters< Integer >
void ParametersChanged ()
 
- Protected Attributes inherited from DL_GroupParametersImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation::Element >, DL_GroupParameters_IntegerBased >
ModExpPrecomputation m_groupPrecomputation
 
DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation::Elementm_gpc
 

Detailed Description

DSA group parameters.

These are GF(p) group parameters that are allowed by the DSA standard

See also
DL_Keys_DSA

Definition at line 710 of file gfpcrypt.h.

Member Enumeration Documentation

anonymous enum
Enumerator
MIN_PRIME_LENGTH 
MAX_PRIME_LENGTH 
PRIME_LENGTH_MULTIPLE 

Definition at line 724 of file gfpcrypt.h.

Constructor & Destructor Documentation

virtual DL_GroupParameters_DSA::~DL_GroupParameters_DSA ( )
inlinevirtual

Definition at line 713 of file gfpcrypt.h.

Member Function Documentation

void DL_GroupParameters_DSA::GenerateRandom ( RandomNumberGenerator rng,
const NameValuePairs alg 
)
virtual

parameters: (ModulusSize), or (Modulus, SubgroupOrder, SubgroupGenerator)

ModulusSize must be between DSA::MIN_PRIME_LENGTH and DSA::MAX_PRIME_LENGTH, and divisible by DSA::PRIME_LENGTH_MULTIPLE

Reimplemented from DL_GroupParameters_IntegerBased.

Definition at line 37 of file gfpcrypt.cpp.

Here is the call graph for this function:

static bool CRYPTOPP_API DL_GroupParameters_DSA::IsValidPrimeLength ( unsigned int  pbits)
inlinestatic

Definition at line 721 of file gfpcrypt.h.

bool DL_GroupParameters_DSA::ValidateGroup ( RandomNumberGenerator rng,
unsigned int  level 
) const
virtual

also checks that the lengths of p and q are allowed by the DSA standard

Reimplemented from DL_GroupParameters_IntegerBased.

Definition at line 70 of file gfpcrypt.cpp.

Here is the call graph for this function:


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