Crypto++
5.6.3
Free C++ class library of cryptographic schemes
|
, More...
Public Types | |
typedef GROUP_PARAMETERS | GroupParameters |
typedef GroupParameters::Element | Element |
typedef DL_KeyAgreementAlgorithm_DH< Element, COFACTOR_OPTION > | DH_Algorithm |
typedef DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION > | Domain |
Public Member Functions | |
DH_Domain (const GroupParameters ¶ms) | |
DH_Domain (BufferedTransformation &bt) | |
template<class T2 > | |
DH_Domain (RandomNumberGenerator &v1, const T2 &v2) | |
template<class T2 , class T3 > | |
DH_Domain (RandomNumberGenerator &v1, const T2 &v2, const T3 &v3) | |
template<class T2 , class T3 , class T4 > | |
DH_Domain (RandomNumberGenerator &v1, const T2 &v2, const T3 &v3, const T4 &v4) | |
template<class T1 , class T2 > | |
DH_Domain (const T1 &v1, const T2 &v2) | |
template<class T1 , class T2 , class T3 > | |
DH_Domain (const T1 &v1, const T2 &v2, const T3 &v3) | |
template<class T1 , class T2 , class T3 , class T4 > | |
DH_Domain (const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4) | |
const GroupParameters & | GetGroupParameters () const |
GroupParameters & | AccessGroupParameters () |
void | GeneratePublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
generate public key More... | |
std::string | AlgorithmName () const |
Provides the name of this algorithm. More... | |
CryptoParameters & | AccessCryptoParameters () |
unsigned int | AgreedValueLength () const |
return length of agreed value produced | |
unsigned int | PrivateKeyLength () const |
return length of private keys in this domain | |
unsigned int | PublicKeyLength () const |
return length of public keys in this domain | |
void | GeneratePrivateKey (RandomNumberGenerator &rng, byte *privateKey) const |
generate private key More... | |
bool | Agree (byte *agreedValue, const byte *privateKey, const byte *otherPublicKey, bool validateOtherPublicKey=true) const |
derive agreed value from your private key and couterparty's public key, return false in case of failure More... | |
const Element & | GetGenerator () const |
virtual void | GenerateKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
generate private/public key pair More... | |
CryptoMaterial & | AccessMaterial () |
returns a reference to the crypto material used by this object | |
const CryptoMaterial & | GetMaterial () const |
returns a const reference to the crypto material used by this object | |
virtual const CryptoParameters & | GetCryptoParameters () const |
void | BERDecode (BufferedTransformation &bt) |
for backwards compatibility, calls AccessMaterial().Load(bt) | |
void | DEREncode (BufferedTransformation &bt) const |
for backwards compatibility, calls GetMaterial().Save(bt) | |
virtual Clonable * | Clone () const |
Copies this object. More... | |
Static Public Member Functions | |
static std::string | StaticAlgorithmName () |
,
|
inlinevirtual |
generate public key
re size of publicKey == PublicKeyLength()
Implements SimpleKeyAgreementDomain.
Definition at line 62 of file dh.h.
References DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >::Agree(), DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >::AgreedValueLength(), DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >::AlgorithmName(), FIPS_140_2_ComplianceEnabled(), DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >::GeneratePrivateKey(), DL_SimpleKeyAgreementDomainBase< T >::GeneratePublicKey(), DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >::PrivateKeyLength(), and DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >::PublicKeyLength().
|
inlinevirtual |
Provides the name of this algorithm.
The standard algorithm name can be a name like AES or AES/GCM. Some algorithms do not have standard names yet. For example, there is no standard algorithm name for Shoup's ECIES.
Reimplemented from Algorithm.
Definition at line 85 of file dh.h.
Referenced by DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >::GeneratePublicKey().
|
inlinevirtualinherited |
generate private key
Implements SimpleKeyAgreementDomain.
Definition at line 1659 of file pubkey.h.
References Integer::Encode(), and Integer::One().
Referenced by DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >::GeneratePublicKey().
|
inlinevirtualinherited |
derive agreed value from your private key and couterparty's public key, return false in case of failure
Implements SimpleKeyAgreementDomain.
Definition at line 1674 of file pubkey.h.
Referenced by DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >::GeneratePublicKey().
|
virtualinherited |
generate private/public key pair
Definition at line 921 of file cryptlib.cpp.
Referenced by FixedRNG::GenerateBlock().
|
inlinevirtualinherited |
Copies this object.
NotImplemented |
Definition at line 464 of file cryptlib.h.