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

Public Types | Public Member Functions | List of all members
DL_PublicKey_ECGDSA< EC > Class Template Reference

Elliptic Curve German DSA key for ISO/IEC 15946. More...

Inheritance diagram for DL_PublicKey_ECGDSA< EC >:

## Public Types
typedef EC::Point | Element
Public Types inherited from DL_PublicKeyImpl< DL_GroupParameters_EC< EC > >
typedef DL_GroupParameters_EC< EC > ::Element | Element
Public Types inherited from DL_PublicKey< DL_GroupParameters_EC< EC > ::Element >
typedef DL_GroupParameters_EC< EC > ::Element | Element
Public Types inherited from DL_KeyImpl< X509PublicKey, DL_GroupParameters_EC< EC > >
typedef DL_GroupParameters_EC< EC > | GroupParameters

## Public Member Functions
void | Initialize (const DL_GroupParameters_EC< EC > &params, const Element &Q)
| Initialize an EC Public Key using {GP,Q}. More...
void | Initialize (const EC &ec, const Element &G, const Integer &n, const Element &Q)
| Initialize an EC Public Key using {EC,G,n,Q}. More...
virtual void | AssignFrom (const NameValuePairs &source)
| Assign values to this object. More...
virtual void | SetPublicElement (const Element &y)
void | BERDecodePublicKey (BufferedTransformation &bt, bool parametersPresent, size_t size)
| Decode subjectPublicKey part of subjectPublicKeyInfo. More...
void | DEREncodePublicKey (BufferedTransformation &bt) const
| Encode subjectPublicKey part of subjectPublicKeyInfo. More...
Public Member Functions inherited from DL_PublicKeyImpl< DL_GroupParameters_EC< EC > >
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
| Retrieves abstract group parameters. More...
DL_GroupParameters< Element > & | AccessAbstractGroupParameters ()
| Retrieves abstract group parameters. More...
const DL_FixedBasePrecomputation< Element > & | GetPublicPrecomputation () const
| Accesses the public precomputation. More...
DL_FixedBasePrecomputation< Element > & | AccessPublicPrecomputation ()
| Accesses the public precomputation. More...
bool | operator== (const DL_PublicKeyImpl< DL_GroupParameters_EC< EC > > &rhs) const
Public Member Functions inherited from DL_PublicKey< DL_GroupParameters_EC< EC > ::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...
Public Member Functions inherited from DL_KeyImpl< X509PublicKey, DL_GroupParameters_EC< EC > >
OID | GetAlgorithmID () const
bool | BERDecodeAlgorithmParameters (BufferedTransformation &bt)
bool | DEREncodeAlgorithmParameters (BufferedTransformation &bt) const
const DL_GroupParameters_EC< EC > & | GetGroupParameters () const
DL_GroupParameters_EC< EC > & | 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...
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
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...

## Detailed Description

### template<class EC>
class DL_PublicKey_ECGDSA< EC >

Elliptic Curve German DSA key for ISO/IEC 15946.

Template Parameters

  EC | elliptic curve field

See also
  ECGDSA

Since
  Crypto++ 6.0

Definition at line 409 of file eccrypto.h.

## Member Function Documentation

## ◆ Initialize() [1/2]

template<class EC>

void DL_PublicKey_ECGDSA< EC >::Initialize | ( | const DL_GroupParameters_EC< EC > & | params,
|  | const Element & | Q
| ) |  |
| inline

Initialize an EC Public Key using {GP,Q}.

Parameters

  params | group parameters
  Q | the public point

This Initialize() function overload initializes a public key from existing parameters.

Definition at line 513 of file eccrypto.h.

## ◆ Initialize() [2/2]

template<class EC>

void DL_PublicKey_ECGDSA< EC >::Initialize | ( | const EC & | ec,
|  | const Element & | G,
|  | const Integer & | n,
|  | const Element & | Q
| ) |  |
| inline

Initialize an EC Public Key using {EC,G,n,Q}.

Parameters

  ec | the elliptic curve
  G | the base point
  n | the order of the base point
  Q | the public point

This Initialize() function overload initializes a public key from existing parameters.

Definition at line 522 of file eccrypto.h.

## ◆ AssignFrom()

template<class EC>

virtual void DL_PublicKey_ECGDSA< EC >::AssignFrom | ( | const NameValuePairs & | source | ) |
| inline virtual

Assign values to this object.

This function can be used to create a public key from a private key.

Implements CryptoMaterial.

Definition at line 525 of file eccrypto.h.

## ◆ BERDecodePublicKey()

template<class EC >

void DL_PublicKey_ECGDSA< EC >::BERDecodePublicKey | ( | BufferedTransformation & | bt,
|  | bool | parametersPresent,
|  | size_t | size
| ) |  |
| 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 770 of file eccrypto.cpp.

## ◆ DEREncodePublicKey()

template<class EC >

void DL_PublicKey_ECGDSA< EC >::DEREncodePublicKey | ( | BufferedTransformation & | bt | ) | const
| 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 781 of file eccrypto.cpp.

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

- eccrypto.h
- eccrypto.cpp