Crypto++
5.6.3
Free C++ class library of cryptographic schemes
|
Unified Diffie-Hellman More...
Public Member Functions | |
DH2 (SimpleKeyAgreementDomain &domain) | |
DH2 (SimpleKeyAgreementDomain &staticDomain, SimpleKeyAgreementDomain &ephemeralDomain) | |
CryptoParameters & | AccessCryptoParameters () |
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... | |
void | GenerateStaticKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
generate private/public key pair More... | |
unsigned int | EphemeralPrivateKeyLength () const |
return length of ephemeral private keys in this domain | |
unsigned int | EphemeralPublicKeyLength () const |
return length of ephemeral public keys in this domain | |
void | GenerateEphemeralPrivateKey (RandomNumberGenerator &rng, byte *privateKey) const |
Generate ephemeral private key. More... | |
void | GenerateEphemeralPublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
Generate ephemeral public key. More... | |
void | GenerateEphemeralKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
Generate private/public key pair. More... | |
bool | Agree (byte *agreedValue, const byte *staticPrivateKey, const byte *ephemeralPrivateKey, const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey, bool validateStaticOtherPublicKey=true) const |
Derive agreed value. 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 std::string | AlgorithmName () const |
Provides the name of this algorithm. More... | |
virtual Clonable * | Clone () const |
Copies this object. More... | |
|
inlinevirtual |
generate static private key
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
generate static public key
re size of publicKey == PublicStaticKeyLength()
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
generate private/public key pair
Reimplemented from AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
Generate ephemeral private key.
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
Generate ephemeral public key.
Implements AuthenticatedKeyAgreementDomain.
|
inlinevirtual |
Generate private/public key pair.
Reimplemented from AuthenticatedKeyAgreementDomain.
|
virtual |
Derive agreed value.
Agree() derives an agreed value from your private keys and couterparty's public keys
The ephemeral public key will always be validated. If you have previously validated the static public key, use validateStaticOtherPublicKey=false to save time.
Implements AuthenticatedKeyAgreementDomain.
Definition at line 15 of file dh2.cpp.
References SimpleKeyAgreementDomain::Agree(), and SimpleKeyAgreementDomain::AgreedValueLength().
|
inlinevirtualinherited |
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 in AuthenticatedSymmetricCipher, SignatureVerificationFilter, SignerFilter, AuthenticatedDecryptionFilter, HashVerificationFilter, HashFilter, StreamTransformationFilter, ClassNullRNG, BitBucket, RDSEED, DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >, HMAC< T >, RDRAND, CRC32, GCM_Base, Adler32, EAX_Base, CCM_Base, SHA3, and VMAC_Base.
Definition at line 488 of file cryptlib.h.
|
inlinevirtualinherited |
Copies this object.
NotImplemented |
Definition at line 464 of file cryptlib.h.