|
virtual | ~DH_Domain () |
|
| DH_Domain () |
| Construct a Diffie-Hellman domain. More...
|
|
| DH_Domain (const GroupParameters ¶ms) |
| Construct a Diffie-Hellman domain. More...
|
|
| DH_Domain (BufferedTransformation &bt) |
| Construct a Diffie-Hellman domain. More...
|
|
template<class T2 > |
| DH_Domain (RandomNumberGenerator &v1, const T2 &v2) |
| Create a Diffie-Hellman domain. More...
|
|
template<class T2 , class T3 > |
| DH_Domain (RandomNumberGenerator &v1, const T2 &v2, const T3 &v3) |
| Create a Diffie-Hellman domain. More...
|
|
template<class T2 , class T3 , class T4 > |
| DH_Domain (RandomNumberGenerator &v1, const T2 &v2, const T3 &v3, const T4 &v4) |
| Create a Diffie-Hellman domain. More...
|
|
template<class T1 , class T2 > |
| DH_Domain (const T1 &v1, const T2 &v2) |
| Construct a Diffie-Hellman domain. More...
|
|
template<class T1 , class T2 , class T3 > |
| DH_Domain (const T1 &v1, const T2 &v2, const T3 &v3) |
| Construct a Diffie-Hellman domain. More...
|
|
template<class T1 , class T2 , class T3 , class T4 > |
| DH_Domain (const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4) |
| Construct a Diffie-Hellman domain. More...
|
|
const GroupParameters & | GetGroupParameters () const |
| Retrieves the group parameters for this domain. More...
|
|
GroupParameters & | AccessGroupParameters () |
| Retrieves the group parameters for this domain. More...
|
|
void | GeneratePublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
| Generate a public key from a private key in this domain. More...
|
|
std::string | AlgorithmName () const |
| Provides the name of this algorithm. More...
|
|
Public Member Functions inherited from DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element > |
virtual | ~DL_SimpleKeyAgreementDomainBase () |
|
CryptoParameters & | AccessCryptoParameters () |
| Retrieves a reference to Crypto Parameters. More...
|
|
unsigned int | AgreedValueLength () const |
| Provides the size of the agreed value. More...
|
|
unsigned int | PrivateKeyLength () const |
| Provides the size of the private key. More...
|
|
unsigned int | PublicKeyLength () const |
| Provides the size of the public key. More...
|
|
void | GeneratePrivateKey (RandomNumberGenerator &rng, byte *privateKey) const |
| Generate private key in this domain. More...
|
|
void | GeneratePublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const |
| Generate a public key from a private key in this domain. More...
|
|
bool | Agree (byte *agreedValue, const byte *privateKey, const byte *otherPublicKey, bool validateOtherPublicKey=true) const |
| Derive agreed value. More...
|
|
const Element & | GetGenerator () const |
| Retrieves a reference to the group generator. More...
|
|
Public Member Functions inherited from SimpleKeyAgreementDomain |
virtual | ~SimpleKeyAgreementDomain () |
|
virtual void | GenerateKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const |
| Generate a 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 | ~Clonable () |
|
virtual Clonable * | Clone () const |
| Copies this object. More...
|
|
template<class GROUP_PARAMETERS, class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
class DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >
Diffie-Hellman domain.
- Template Parameters
-
A Diffie-Hellman domain is a set of parameters that must be shared by two parties in a key agreement protocol, along with the algorithms for generating key pairs and deriving agreed values.
- See also
- DL_SimpleKeyAgreementDomainBase
- Since
- Crypto++ 1.0
Definition at line 25 of file dh.h.
template<class GROUP_PARAMETERS , class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
template<class T2 , class T3 , class T4 >
Create a Diffie-Hellman domain.
- Template Parameters
-
T2 | template parameter used as a constructor parameter |
T3 | template parameter used as a constructor parameter |
T4 | template parameter used as a constructor parameter |
- Parameters
-
v1, v2, v3 and v4 are passed directly to the GROUP_PARAMETERS object.
Definition at line 80 of file dh.h.
template<class GROUP_PARAMETERS , class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
template<class T1 , class T2 , class T3 >
Construct a Diffie-Hellman domain.
- Template Parameters
-
T1 | template parameter used as a constructor parameter |
T2 | template parameter used as a constructor parameter |
T3 | template parameter used as a constructor parameter |
- Parameters
-
v1 | first parameter |
v2 | second parameter |
v3 | third parameter |
v1, v2 and v3 are passed directly to the GROUP_PARAMETERS object.
Definition at line 102 of file dh.h.
template<class GROUP_PARAMETERS , class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
template<class T1 , class T2 , class T3 , class T4 >
DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >::DH_Domain |
( |
const T1 & |
v1, |
|
|
const T2 & |
v2, |
|
|
const T3 & |
v3, |
|
|
const T4 & |
v4 |
|
) |
| |
|
inline |
Construct a Diffie-Hellman domain.
- Template Parameters
-
T1 | template parameter used as a constructor parameter |
T2 | template parameter used as a constructor parameter |
T3 | template parameter used as a constructor parameter |
T4 | template parameter used as a constructor parameter |
- Parameters
-
v1 | first parameter |
v2 | second parameter |
v3 | third parameter |
v4 | fourth parameter |
v1, v2, v3 and v4 are passed directly to the GROUP_PARAMETERS object.
Definition at line 116 of file dh.h.
template<class GROUP_PARAMETERS , class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
std::string DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >::AlgorithmName |
( |
| ) |
const |
|
inlinevirtual |
Provides the name of this algorithm.
- Returns
- the standard algorithm name
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.
- Note
- AlgorithmName is not universally implemented yet
Reimplemented from Algorithm.
Definition at line 158 of file dh.h.
template<class GROUP_PARAMETERS , class COFACTOR_OPTION = typename GROUP_PARAMETERS::DefaultCofactorOption>
Generate a public key from a private key in this domain.
- Parameters
-
rng | RandomNumberGenerator derived class |
privateKey | byte buffer with the previously generated private key |
publicKey | byte buffer for the generated public key in this domain |
If using a FIPS 140-2 validated library on Windows, then this class will perform a self test to ensure the key pair is pairwise consistent. Non-FIPS and non-Windows builds of the library do not provide FIPS validated cryptography, so the code should be removed by the optimizer.
- Precondition
COUNTOF(publicKey) == PublicKeyLength()
Implements SimpleKeyAgreementDomain.
Definition at line 135 of file dh.h.