Crypto++
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
DL_GroupParameters_EC Class Reference

Elliptic Curve Parameters. More...

#include <eccrypto.h>

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

List of all members.

Public Types

typedef EC EllipticCurve
typedef EllipticCurve::Point Point
typedef Point Element
typedef
IncompatibleCofactorMultiplication 
DefaultCofactorOption
typedef GROUP_PRECOMP 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
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
GROUP_PRECOMP m_groupPrecomputation
BASE_PRECOMP m_gpc

Detailed Description

Elliptic Curve Parameters.

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


Member Function Documentation

void DL_GroupParameters_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)

Definition at line 485 of file eccrypto.cpp.


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