|
virtual | ~FHMQV_Domain () |
|
| 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 More...
|
|
unsigned int | StaticPrivateKeyLength () const |
| return length of static private keys in this domain More...
|
|
unsigned int | StaticPublicKeyLength () const |
| return length of static public keys in this domain More...
|
|
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 More...
|
|
void | GenerateEphemeralPublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
| return length of ephemeral public keys in this domain More...
|
|
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...
|
|
Public Member Functions inherited from AuthenticatedKeyAgreementDomain |
virtual | ~AuthenticatedKeyAgreementDomain () |
|
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...
|
|
virtual | ~KeyAgreementAlgorithm () |
|
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...
|
|
virtual | ~AsymmetricAlgorithm () |
|
void | BERDecode (BufferedTransformation &bt) |
| Loads this object from a BufferedTransformation. More...
|
|
void | DEREncode (BufferedTransformation &bt) const |
| Saves this object to a BufferedTransformation. More...
|
|
virtual | ~Algorithm () |
|
| Algorithm (bool checkSelfTestStatus=true) |
| Interface for all crypto algorithms. More...
|
|
virtual std::string | AlgorithmName () const |
| Provides the name of this algorithm. More...
|
|
virtual | ~Clonable () |
|
virtual Clonable * | Clone () const |
| Copies this object. More...
|
|
template<class GROUP_PARAMETERS, class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption, class HASH = SHA512>
class FHMQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION, HASH >
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.
- See also
- MQV, HMQV, FHMQV, and AuthenticatedKeyAgreementDomain
- Since
- Crypto++ 5.6.4
Definition at line 24 of file fhmqv.h.