Crypto++
8.0
Free C++ class library of cryptographic schemes
|
Fully Hashed Menezes-Qu-Vanstone in GF(p) More...
Public Types | |
typedef GROUP_PARAMETERS | GroupParameters |
typedef GroupParameters::Element | Element |
typedef FHMQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION, HASH > | Domain |
Public Member Functions | |
FHMQV_Domain (bool clientRole=true) | |
FHMQV_Domain (const GroupParameters ¶ms, bool clientRole=true) | |
FHMQV_Domain (BufferedTransformation &bt, bool clientRole=true) | |
template<class T1 > | |
FHMQV_Domain (T1 v1, bool clientRole=true) | |
template<class T1 , class T2 > | |
FHMQV_Domain (T1 v1, T2 v2, bool clientRole=true) | |
template<class T1 , class T2 , class T3 > | |
FHMQV_Domain (T1 v1, T2 v2, T3 v3, bool clientRole=true) | |
template<class T1 , class T2 , class T3 , class T4 > | |
FHMQV_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. More... | |
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 More... | |
void | GenerateStaticPublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
generate static public key More... | |
unsigned int | EphemeralPrivateKeyLength () const |
Provides the size of ephemeral private key. More... | |
unsigned int | EphemeralPublicKeyLength () const |
Provides the size of ephemeral public key. More... | |
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 More... | |
![]() | |
virtual void | GenerateStaticKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
Generate a static private/public key pair. More... | |
virtual void | GenerateEphemeralKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
Generate private/public key pair. More... | |
![]() | |
CryptoMaterial & | AccessMaterial () |
Retrieves a reference to Crypto Parameters. More... | |
const CryptoMaterial & | GetMaterial () const |
Retrieves a reference to Crypto Parameters. More... | |
virtual const CryptoParameters & | GetCryptoParameters () const |
Retrieves a reference to Crypto Parameters. More... | |
![]() | |
Algorithm (bool checkSelfTestStatus=true) | |
Interface for all crypto algorithms. More... | |
virtual std::string | AlgorithmName () const |
Provides the name of this algorithm. More... | |
virtual std::string | AlgorithmProvider () const |
Retrieve the provider of this algorithm. More... | |
![]() | |
virtual Clonable * | Clone () const |
Copies this object. More... | |
Fully Hashed Menezes-Qu-Vanstone in GF(p)
This implementation follows Augustin P. Sarr and Philippe Elbaz–Vincent, and Jean–Claude Bajard's A Secure and Efficient Authenticated Diffie-Hellman Protocol. Note: this is FHMQV, Protocol 5, from page 11; and not FHMQV-C.
|
inlinevirtual |
Retrieves a reference to Crypto Parameters.
Implements KeyAgreementAlgorithm.
|
inlinevirtual |
generate static private key
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
generate static public key
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
Provides the size of ephemeral private key.
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
Provides the size of ephemeral public key.
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
derive agreed value from your private keys and couterparty's public keys, return false in case of failure
Implements AuthenticatedKeyAgreementDomain.