|
| 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.