![]() |
Fabcoin Core
0.16.2
P2P Digital Currency
|
Fully Hashed Menezes-Qu-Vanstone in GF(p) More...
#include <fhmqv.h>
Public Types | |
typedef GROUP_PARAMETERS | GroupParameters |
typedef GroupParameters::Element | Element |
typedef FHMQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION, HASH > | Domain |
Public Member Functions | |
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... | |
![]() | |
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... | |
Protected Member Functions | |
void | Hash (const Element *sigma, const byte *e1, size_t e1len, const byte *e2, size_t e2len, const byte *s1, size_t s1len, const byte *s2, size_t s2len, byte *digest, size_t dlen) const |
Private Types | |
enum | KeyAgreementRole { RoleServer = 1, RoleClient } |
Private Member Functions | |
DL_GroupParameters< Element > & | AccessAbstractGroupParameters () |
const DL_GroupParameters< Element > & | GetAbstractGroupParameters () const |
Private Attributes | |
GroupParameters | m_groupParameters |
KeyAgreementRole | m_role |
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.
typedef FHMQV_Domain<GROUP_PARAMETERS, COFACTOR_OPTION, HASH> FHMQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION, HASH >::Domain |
typedef GroupParameters::Element FHMQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION, HASH >::Element |
typedef GROUP_PARAMETERS FHMQV_Domain< GROUP_PARAMETERS, COFACTOR_OPTION, HASH >::GroupParameters |
|
private |
|
inlinevirtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprivate |
|
inlinevirtual |
Retrieves a reference to Crypto Parameters.
Implements KeyAgreementAlgorithm.
|
inline |
|
inlinevirtual |
derive agreed value from your private keys and couterparty's public keys, return false in case of failure
Implements AuthenticatedKeyAgreementDomain.
Definition at line 124 of file fhmqv.h.
|
inlinevirtual |
return length of agreed value produced
Implements AuthenticatedKeyAgreementDomain.
Definition at line 70 of file fhmqv.h.
|
inlinevirtual |
Provides the size of ephemeral private key.
Implements AuthenticatedKeyAgreementDomain.
Definition at line 95 of file fhmqv.h.
|
inlinevirtual |
Provides the size of ephemeral public key.
Implements AuthenticatedKeyAgreementDomain.
Definition at line 96 of file fhmqv.h.
|
inlinevirtual |
return length of ephemeral private keys in this domain
Implements AuthenticatedKeyAgreementDomain.
Definition at line 99 of file fhmqv.h.
|
inlinevirtual |
return length of ephemeral public keys in this domain
Implements AuthenticatedKeyAgreementDomain.
Definition at line 109 of file fhmqv.h.
|
inlinevirtual |
generate static private key
Implements AuthenticatedKeyAgreementDomain.
Definition at line 78 of file fhmqv.h.
|
inlinevirtual |
generate static public key
Implements AuthenticatedKeyAgreementDomain.
Definition at line 86 of file fhmqv.h.
|
inlineprivate |
|
inline |
|
inlineprotected |
|
inlinevirtual |
return length of static private keys in this domain
Implements AuthenticatedKeyAgreementDomain.
Definition at line 72 of file fhmqv.h.
|
inlinevirtual |
return length of static public keys in this domain
Implements AuthenticatedKeyAgreementDomain.
Definition at line 74 of file fhmqv.h.
|
private |
|
private |