Crypto++
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
DL_GroupParameters_EC< EC > Class Template Reference

Elliptic Curve Parameters. More...

#include <eccrypto.h>

Inheritance diagram for DL_GroupParameters_EC< EC >:
DL_GroupParametersImpl< EcPrecomputation< EC > >

Public Types

typedef EC EllipticCurve
 
typedef EllipticCurve::Point Point
 
typedef Point Element
 
typedef
IncompatibleCofactorMultiplication 
DefaultCofactorOption
 
typedef EcPrecomputation< EC > GroupPrecomputation
 
typedef BASE_PRECOMP BasePrecomputation
 

Public Member Functions

 DL_GroupParameters_EC (const OID &oid)
 
 DL_GroupParameters_EC (const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k=Integer::Zero())
 
 DL_GroupParameters_EC (BufferedTransformation &bt)
 
void Initialize (const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k=Integer::Zero())
 
void Initialize (const OID &oid)
 
bool GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const
 
void AssignFrom (const NameValuePairs &source)
 
void GenerateRandom (RandomNumberGenerator &rng, const NameValuePairs &alg)
 this implementation doesn't actually generate a curve, it just initializes the parameters with existing values More...
 
const
DL_FixedBasePrecomputation
< Element > & 
GetBasePrecomputation () const
 
DL_FixedBasePrecomputation
< Element > & 
AccessBasePrecomputation ()
 
const IntegerGetSubgroupOrder () const
 
Integer GetCofactor () const
 
bool ValidateGroup (RandomNumberGenerator &rng, unsigned int level) const
 
bool ValidateElement (unsigned int level, const Element &element, const DL_FixedBasePrecomputation< Element > *precomp) const
 
bool FastSubgroupCheckAvailable () const
 
void EncodeElement (bool reversible, const Element &element, byte *encoded) const
 
unsigned int GetEncodedElementSize (bool reversible) const
 
Element DecodeElement (const byte *encoded, bool checkForGroupMembership) const
 
Integer ConvertElementToInteger (const Element &element) const
 
Integer GetMaxExponent () const
 
bool IsIdentity (const Element &element) const
 
void SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const
 
OID GetAlgorithmID () const
 
Element MultiplyElements (const Element &a, const Element &b) const
 
Element CascadeExponentiate (const Element &element1, const Integer &exponent1, const Element &element2, const Integer &exponent2) const
 
void BERDecode (BufferedTransformation &bt)
 
void DEREncode (BufferedTransformation &bt) const
 
void SetPointCompression (bool compress)
 
bool GetPointCompression () const
 
void SetEncodeAsOID (bool encodeAsOID)
 
bool GetEncodeAsOID () const
 
const EllipticCurve & GetCurve () const
 
bool operator== (const ThisClass &rhs) const
 
const DL_GroupPrecomputation
< Element > & 
GetGroupPrecomputation () const
 

Static Public Member Functions

static std::string StaticAlgorithmNamePrefix ()
 
static OID GetNextRecommendedParametersOID (const OID &oid)
 

Protected Member Functions

unsigned int FieldElementLength () const
 
unsigned int ExponentLength () const
 

Protected Attributes

OID m_oid
 
Integer m_n
 
bool m_compress
 
bool m_encodeAsOID
 
Integer m_k
 
EcPrecomputation< EC > m_groupPrecomputation
 
BASE_PRECOMP m_gpc
 

Detailed Description

template<class EC>
class DL_GroupParameters_EC< EC >

Elliptic Curve Parameters.

This class corresponds to the ASN.1 sequence of the same name in ANSI X9.62 (also SEC 1).

Definition at line 25 of file eccrypto.h.

Member Function Documentation

template<class EC>
void DL_GroupParameters_EC< EC >::GenerateRandom ( RandomNumberGenerator rng,
const NameValuePairs alg 
)

this implementation doesn't actually generate a curve, it just initializes the parameters with existing values

parameters: (Curve, SubgroupGenerator, SubgroupOrder, Cofactor (optional)), or (GroupOID)


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