|
| HMQV_Domain (bool clientRole=true) |
|
| HMQV_Domain (const GroupParameters ¶ms, bool clientRole=true) |
|
| HMQV_Domain (BufferedTransformation &bt, bool clientRole=true) |
|
template<class T1 > |
| HMQV_Domain (T1 v1, bool clientRole=true) |
|
template<class T1 , class T2 > |
| HMQV_Domain (T1 v1, T2 v2, bool clientRole=true) |
|
template<class T1 , class T2 , class T3 > |
| HMQV_Domain (T1 v1, T2 v2, T3 v3, bool clientRole=true) |
|
template<class T1 , class T2 , class T3 , class T4 > |
| HMQV_Domain (T1 v1, T2 v2, T3 v3, T4 v4, bool clientRole=true) |
|
const GroupParameters & | GetGroupParameters () const |
|
GroupParameters & | AccessGroupParameters () |
|
CryptoParameters & | AccessCryptoParameters () |
| Retrieves a reference to Crypto Parameters.
|
|
unsigned int | AgreedValueLength () const |
| return length of agreed value produced
|
|
unsigned int | StaticPrivateKeyLength () const |
| return length of static private keys in this domain
|
|
unsigned int | StaticPublicKeyLength () const |
| return length of static public keys in this domain
|
|
void | GenerateStaticPrivateKey (RandomNumberGenerator &rng, byte *privateKey) const |
| generate static private key
|
|
void | GenerateStaticPublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
| generate static public key
|
|
unsigned int | EphemeralPrivateKeyLength () const |
| Provides the size of ephemeral private key.
|
|
unsigned int | EphemeralPublicKeyLength () const |
| Provides the size of ephemeral public key.
|
|
void | GenerateEphemeralPrivateKey (RandomNumberGenerator &rng, byte *privateKey) const |
| return length of ephemeral private keys in this domain
|
|
void | GenerateEphemeralPublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
| return length of ephemeral public keys in this domain
|
|
bool | Agree (byte *agreedValue, const byte *staticPrivateKey, const byte *ephemeralPrivateKey, const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey=true) const |
| derive agreed value from your private keys and couterparty's public keys, return false in case of failure
|
|
Public Member Functions inherited from AuthenticatedKeyAgreementDomain |
virtual unsigned int | AgreedValueLength () const =0 |
| Provides the size of the agreed value.
|
|
virtual unsigned int | StaticPrivateKeyLength () const =0 |
| Provides the size of the static private key.
|
|
virtual unsigned int | StaticPublicKeyLength () const =0 |
| Provides the size of the static public key.
|
|
virtual void | GenerateStaticPrivateKey (RandomNumberGenerator &rng, byte *privateKey) const =0 |
| Generate static private key in this domain.
|
|
virtual void | GenerateStaticPublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const =0 |
| Generate a static public key from a private key in this domain.
|
|
virtual void | GenerateStaticKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
| Generate a static private/public key pair.
|
|
virtual unsigned int | EphemeralPrivateKeyLength () const =0 |
| Provides the size of ephemeral private key.
|
|
virtual unsigned int | EphemeralPublicKeyLength () const =0 |
| Provides the size of ephemeral public key.
|
|
virtual void | GenerateEphemeralPrivateKey (RandomNumberGenerator &rng, byte *privateKey) const =0 |
| Generate ephemeral private key.
|
|
virtual void | GenerateEphemeralPublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const =0 |
| Generate ephemeral public key.
|
|
virtual void | GenerateEphemeralKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
| Generate private/public key pair.
|
|
virtual bool | Agree (byte *agreedValue, const byte *staticPrivateKey, const byte *ephemeralPrivateKey, const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey=true) const =0 |
| Derive agreed value.
|
|
CryptoMaterial & | AccessMaterial () |
| Retrieves a reference to Crypto Parameters.
|
|
const CryptoMaterial & | GetMaterial () const |
| Retrieves a reference to Crypto Parameters.
|
|
virtual CryptoParameters & | AccessCryptoParameters ()=0 |
| Retrieves a reference to Crypto Parameters.
|
|
virtual const CryptoParameters & | GetCryptoParameters () const |
| Retrieves a reference to Crypto Parameters.
|
|
virtual CryptoMaterial & | AccessMaterial ()=0 |
| Retrieves a reference to CryptoMaterial.
|
|
virtual const CryptoMaterial & | GetMaterial () const =0 |
| Retrieves a reference to CryptoMaterial.
|
|
| Algorithm (bool checkSelfTestStatus=true) |
| Interface for all crypto algorithms.
|
|
virtual std::string | AlgorithmName () const |
| Provides the name of this algorithm.
|
|
virtual std::string | AlgorithmProvider () const |
| Retrieve the provider of this algorithm.
|
|
virtual Clonable * | Clone () const |
| Copies this object.
|
|
template<class GROUP_PARAMETERS, class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption, class HASH = SHA512>
class HMQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION, HASH >
Hashed Menezes-Qu-Vanstone in GF(p)
This implementation follows Hugo Krawczyk's HMQV: A High-Performance Secure Diffie-Hellman Protocol. Note: this implements HMQV only. HMQV-C with Key Confirmation is not provided.
- See also
- MQV, HMQV, FHMQV, and AuthenticatedKeyAgreementDomain
- Since
- Crypto++ 5.6.4
Definition at line 23 of file hmqv.h.