#include <pubkey.h>
Inheritance diagram for DL_GroupParameters< T >:
Definition at line 521 of file pubkey.h.
Public Types | |
typedef T | Element |
Public Member Functions | |
DL_GroupParameters () | |
bool | Validate (RandomNumberGenerator &rng, unsigned int level) const |
check this object for errors | |
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 | |
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 const DL_GroupPrecomputation< Element > & | GetGroupPrecomputation () const=0 |
virtual const DL_FixedBasePrecomputation< Element > & | GetBasePrecomputation () const=0 |
virtual DL_FixedBasePrecomputation< Element > & | AccessBasePrecomputation ()=0 |
virtual const Integer & | GetSubgroupOrder () const=0 |
virtual Integer | GetMaxExponent () const=0 |
virtual Integer | GetGroupOrder () const |
virtual Integer | GetCofactor () const |
virtual unsigned int | GetEncodedElementSize (bool reversible) const =0 |
virtual void | EncodeElement (bool reversible, const Element &element, byte *encoded) const =0 |
virtual Element | DecodeElement (const byte *encoded, bool checkForGroupMembership) const =0 |
virtual Integer | ConvertElementToInteger (const Element &element) const =0 |
virtual bool | ValidateGroup (RandomNumberGenerator &rng, unsigned int level) const=0 |
virtual bool | ValidateElement (unsigned int level, const Element &element, const DL_FixedBasePrecomputation< Element > *precomp) const =0 |
virtual bool | FastSubgroupCheckAvailable () const=0 |
virtual bool | IsIdentity (const Element &element) const =0 |
virtual void | SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const =0 |
Protected Member Functions | |
void | ParametersChanged () |
bool DL_GroupParameters< T >::Validate | ( | RandomNumberGenerator & | rng, | |
unsigned int | level | |||
) | const [inline, virtual] |
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< T >::Precompute | ( | unsigned int | precomputationStorage = 16 |
) | [inline, virtual] |
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.