#include <gfpcrypt.h>
Inheritance diagram for DL_GroupParameters_GFP_DefaultSafePrime:
Definition at line 141 of file gfpcrypt.h.
Public Types | |
typedef NoCofactorMultiplication | DefaultCofactorOption |
typedef ModExpPrecomputation::Element | Element |
typedef ModExpPrecomputation | GroupPrecomputation |
typedef DL_FixedBasePrecomputationImpl< typenameModExpPrecomputation::Element > | BasePrecomputation |
Public Member Functions | |
bool | IsIdentity (const Integer &element) const |
void | SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const |
virtual void | SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const =0 |
bool | GetVoidValue (const char *name, const std::type_info &valueType, void *pValue) const |
to be implemented by derived classes, users should use one of the above functions instead | |
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 | AssignFrom (const NameValuePairs &source) |
assign values from source to this object | |
const DL_FixedBasePrecomputation< Element > & | GetBasePrecomputation () const |
DL_FixedBasePrecomputation< Element > & | AccessBasePrecomputation () |
const Integer & | GetModulus () const |
const Integer & | GetGenerator () const |
void | SetModulusAndSubgroupGenerator (const Integer &p, const Integer &g) |
bool | operator== (const DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typenameModExpPrecomputation::Element > > &rhs) const |
bool | operator!= (const DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation, DL_FixedBasePrecomputationImpl< typenameModExpPrecomputation::Element > > &rhs) const |
const DL_GroupPrecomputation< Element > & | GetGroupPrecomputation () const |
void | Initialize (const DL_GroupParameters_IntegerBased ¶ms) |
void | Initialize (RandomNumberGenerator &rng, unsigned int pbits) |
void | Initialize (const Integer &p, const Integer &g) |
void | Initialize (const Integer &p, const Integer &q, const Integer &g) |
void | BERDecode (BufferedTransformation &bt) |
decode this object from a BufferedTransformation, using BER (Basic Encoding Rules) | |
void | DEREncode (BufferedTransformation &bt) const |
encode this object into a BufferedTransformation, using DER (Distinguished Encoding Rules) | |
void | GenerateRandom (RandomNumberGenerator &rng, const NameValuePairs &alg) |
const Integer & | GetSubgroupOrder () const |
Integer | GetGroupOrder () const |
bool | ValidateGroup (RandomNumberGenerator &rng, unsigned int level) const |
bool | ValidateElement (unsigned int level, const Integer &element, const DL_FixedBasePrecomputation< Integer > *precomp) const |
bool | FastSubgroupCheckAvailable () const |
void | EncodeElement (bool reversible, const Element &element, byte *encoded) const |
unsigned int | GetEncodedElementSize (bool reversible) const |
Integer | DecodeElement (const byte *encoded, bool checkForGroupMembership) const |
Integer | ConvertElementToInteger (const Element &element) const |
Integer | GetMaxExponent () const |
OID | GetAlgorithmID () const |
void | SetSubgroupOrder (const Integer &q) |
void | Save (BufferedTransformation &bt) const |
save key into a BufferedTransformation | |
void | Load (BufferedTransformation &bt) |
load key from a BufferedTransformation | |
virtual void | BEREncode (BufferedTransformation &bt) const |
encode this object into a BufferedTransformation, using BER | |
bool | Validate (RandomNumberGenerator &rng, unsigned int level) const |
check this object for errors | |
bool | SupportsPrecomputation () const |
| |
void | Precompute (unsigned int precomputationStorage=16) |
do precomputation | |
void | LoadPrecomputation (BufferedTransformation &storedPrecomputation) |
retrieve previously saved precomputation | |
void | SavePrecomputation (BufferedTransformation &storedPrecomputation) const |
save precomputation for later use | |
virtual const Element & | GetSubgroupGenerator () const |
virtual void | SetSubgroupGenerator (const Element &base) |
virtual Element | ExponentiateBase (const Integer &exponent) const |
virtual Element | ExponentiateElement (const Element &base, const Integer &exponent) const |
virtual Integer | GetCofactor () const |
Static Public Member Functions | |
static std::string __cdecl | StaticAlgorithmNamePrefix () |
Protected Member Functions | |
unsigned int | GetDefaultSubgroupOrderSize (unsigned int modulusSize) const |
int | GetFieldType () const |
Integer | ComputeGroupOrder (const Integer &modulus) const |
void | ParametersChanged () |
Protected Attributes | |
ModExpPrecomputation | m_groupPrecomputation |
DL_FixedBasePrecomputationImpl< typenameModExpPrecomputation::Element > | m_gpc |
void DL_GroupParameters_IntegerBasedImpl< ModExpPrecomputation , DL_FixedBasePrecomputationImpl< typename ModExpPrecomputation ::Element> >::AssignFrom | ( | const NameValuePairs & | source | ) | [inline, virtual, inherited] |
assign values from source to this object
Reimplemented from DL_GroupParameters_IntegerBased.
Definition at line 95 of file gfpcrypt.h.
void DL_GroupParameters_IntegerBased::GenerateRandom | ( | RandomNumberGenerator & | rng, | |
const NameValuePairs & | alg | |||
) | [virtual, inherited] |
parameters: (ModulusSize, SubgroupOrderSize (optional))
Reimplemented from GeneratableCryptoMaterial.
Reimplemented in DL_GroupParameters_DSA.
Definition at line 163 of file gfpcrypt.cpp.
References DL_GroupParameters_IntegerBased::ComputeGroupOrder(), PrimeAndGenerator::Generate(), PrimeAndGenerator::Generator(), DL_GroupParameters_IntegerBased::GetDefaultSubgroupOrderSize(), NameValuePairs::GetIntValue(), NameValuePairs::GetIntValueWithDefault(), NameValuePairs::GetValue(), NameValuePairs::GetValueWithDefault(), DL_GroupParameters_IntegerBased::Initialize(), PrimeAndGenerator::Prime(), and PrimeAndGenerator::SubPrime().
void ASN1CryptoMaterial< DL_GroupParameters< Integer > >::Load | ( | BufferedTransformation & | bt | ) | [inline, virtual, inherited] |
virtual void ASN1Object::BEREncode | ( | BufferedTransformation & | bt | ) | const [inline, virtual, inherited] |
encode this object into a BufferedTransformation, using BER
this may be useful if DEREncode() would be too inefficient
Definition at line 1579 of file cryptlib.h.
Referenced by ASN1CryptoMaterial< PublicKey >::Save().
bool DL_GroupParameters< Integer >::Validate | ( | RandomNumberGenerator & | rng, | |
unsigned int | level | |||
) | const [inline, virtual, inherited] |
check this object for errors
level | denotes the level of thoroughness: 0 - using this object won't cause a crash or exception (rng is ignored) 1 - this object will probably function (encrypt, sign, etc.) correctly (but may not check for weak keys and such) 2 - make sure this object will function correctly, and do reasonable security checks 3 - do checks that may take a long time |
Implements CryptoMaterial.
void DL_GroupParameters< Integer >::Precompute | ( | unsigned int | precomputationStorage = 16 |
) | [inline, virtual, inherited] |
do precomputation
The exact semantics of Precompute() is varies, but typically it means calculate a table of n objects that can be used later to speed up computation.
Reimplemented from CryptoMaterial.