Crypto++
|
Elliptic Curve Parameters. More...
#include <eccrypto.h>
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 Integer & | GetSubgroupOrder () 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 |
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.
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)