Crypto++ 8.4 Free C++ class library of cryptographic schemes

Public Member Functions | List of all members
DL_PublicKey_GFP< GP > Class Template Reference

Discrete Log (DL) public key in GF(p) groups. More...

Inheritance diagram for DL_PublicKey_GFP< GP >:

## Public Member Functions
void | Initialize (const DL_GroupParameters_IntegerBased &params, const Integer &y)
| Initialize a public key over GF(p) More...
void | Initialize (const Integer &p, const Integer &g, const Integer &y)
| Initialize a public key over GF(p) More...
void | Initialize (const Integer &p, const Integer &q, const Integer &g, const Integer &y)
| Initialize a public key over GF(p) More...
void | BERDecodePublicKey (BufferedTransformation &bt, bool, size_t)
| Decode subjectPublicKey part of subjectPublicKeyInfo. More...
void | DEREncodePublicKey (BufferedTransformation &bt) const
| Encode subjectPublicKey part of subjectPublicKeyInfo. More...
Public Member Functions inherited from DL_PublicKeyImpl< GP >
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...
void | AssignFrom (const NameValuePairs &source)
| Assign values to this object. 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...
const DL_GroupParameters< Element > & | GetAbstractGroupParameters () const
DL_GroupParameters< Element > & | AccessAbstractGroupParameters ()
| Retrieves abstract group parameters. More...
const DL_FixedBasePrecomputation< Element > & | GetPublicPrecomputation () const
DL_FixedBasePrecomputation< Element > & | AccessPublicPrecomputation ()
| Accesses the public precomputation. More...
bool | operator== (const DL_PublicKeyImpl< GP > &rhs) const
Public Member Functions inherited from DL_PublicKey< GP::Element >
bool | GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const
| Get a named value. More...
void | AssignFrom (const NameValuePairs &source)
| Initialize or reinitialize this key. More...
virtual const Element & | GetPublicElement () const
| Retrieves the public element. More...
virtual void | SetPublicElement (const Element &y)
| Sets the public element. More...
virtual Element | ExponentiatePublicElement (const Integer &exponent) const
| Exponentiates this element. More...
virtual Element | CascadeExponentiateBaseAndPublicElement (const Integer &baseExp, const Integer &publicExp) const
| Exponentiates an element. More...
virtual const DL_FixedBasePrecomputation< GP::Element > & | GetPublicPrecomputation () const=0
| Accesses the public precomputation. More...
Public Member Functions inherited from DL_Key< GP::Element >
virtual const DL_GroupParameters< GP::Element > & | GetAbstractGroupParameters () const=0
| Retrieves abstract group parameters. More...
Public Member Functions inherited from DL_KeyImpl< X509PublicKey, GP >
OID | GetAlgorithmID () const
bool | BERDecodeAlgorithmParameters (BufferedTransformation &bt)
bool | DEREncodeAlgorithmParameters (BufferedTransformation &bt) const
const GP & | GetGroupParameters () const
GP & | AccessGroupParameters ()
Public Member Functions inherited from X509PublicKey
void | BERDecode (BufferedTransformation &bt)
| Decode this object from a BufferedTransformation. More...
void | DEREncode (BufferedTransformation &bt) const
| Encode this object into a BufferedTransformation. More...
virtual OID | GetAlgorithmID () const =0
| Retrieves the OID of the algorithm. More...
Public Member Functions inherited from ASN1CryptoMaterial< PublicKey >
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 void | BEREncode (BufferedTransformation &bt) const
| Encode this object into a BufferedTransformation. More...
Public Member Functions inherited from 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
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...
CRYPTOPP_DLL bool | GetWord64Value (const char *name, word64 &value) const
| Get a named value with type word64. More...
CRYPTOPP_DLL word64 | GetWord64ValueWithDefault (const char *name, word64 defaultValue) const
| Get a named value with type word64, 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...

## Additional Inherited Members
Public Types inherited from DL_PublicKeyImpl< GP >
typedef GP::Element | Element
Public Types inherited from DL_PublicKey< GP::Element >
typedef GP::Element | Element
Public Types inherited from DL_KeyImpl< X509PublicKey, GP >
typedef GP | GroupParameters
Static Public Member Functions inherited from NameValuePairs
static CRYPTOPP_DLL void | ThrowIfTypeMismatch (const char *name, const std::type_info &stored, const std::type_info &retrieving)
| Ensures an expected name and type is present. More...

## Detailed Description

### template<class GP>
class DL_PublicKey_GFP< GP >

Discrete Log (DL) public key in GF(p) groups.

Template Parameters

  GP | GroupParameters derived class

DSA public key format is defined in 7.3.3 of RFC 2459. The private key format is defined in 12.9 of PKCS #11 v2.10.

Definition at line 554 of file gfpcrypt.h.

## Member Function Documentation

## ◆ Initialize() [1/3]

template<class GP >

void DL_PublicKey_GFP< GP >::Initialize | ( | const DL_GroupParameters_IntegerBased & | params,
|  | const Integer & | y
| ) |  |
| inline

Initialize a public key over GF(p)

Parameters

  params | the group parameters
  y | the public element

Definition at line 562 of file gfpcrypt.h.

## ◆ Initialize() [2/3]

template<class GP >

void DL_PublicKey_GFP< GP >::Initialize | ( | const Integer & | p,
|  | const Integer & | g,
|  | const Integer & | y
| ) |  |
| inline

Initialize a public key over GF(p)

Parameters

  p | the modulus
  g | the generator
  y | the public element

Definition at line 569 of file gfpcrypt.h.

## ◆ Initialize() [3/3]

template<class GP >

void DL_PublicKey_GFP< GP >::Initialize | ( | const Integer & | p,
|  | const Integer & | q,
|  | const Integer & | g,
|  | const Integer & | y
| ) |  |
| inline

Initialize a public key over GF(p)

Parameters

  p | the modulus
  q | the subgroup order
  g | the generator
  y | the public element

Definition at line 577 of file gfpcrypt.h.

## ◆ BERDecodePublicKey()

template<class GP >

void DL_PublicKey_GFP< GP >::BERDecodePublicKey | ( | BufferedTransformation & | bt,
|  | bool | parametersPresent,
|  | size_t | size
| ) |  |
| inline virtual

Decode subjectPublicKey part of subjectPublicKeyInfo.

Parameters

  bt | BufferedTransformation object
  parametersPresent | flag indicating if algorithm parameters are present
  size | number of octets to read for the parameters, in bytes

BERDecodePublicKey() the decodes subjectPublicKey part of subjectPublicKeyInfo, without the BIT STRING header.

When `parametersPresent = true` then BERDecodePublicKey() calls BERDecodeAlgorithmParameters() to parse algorithm parameters.

See also
  BERDecodeAlgorithmParameters

Implements X509PublicKey.

Definition at line 581 of file gfpcrypt.h.

## ◆ DEREncodePublicKey()

template<class GP >

void DL_PublicKey_GFP< GP >::DEREncodePublicKey | ( | BufferedTransformation & | bt | ) | const
| inline virtual

Encode subjectPublicKey part of subjectPublicKeyInfo.

Parameters

  bt | BufferedTransformation object

DEREncodePublicKey() encodes the subjectPublicKey part of subjectPublicKeyInfo, without the BIT STRING header.

See also
  DEREncodeAlgorithmParameters

Implements X509PublicKey.

Definition at line 583 of file gfpcrypt.h.

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

- gfpcrypt.h