Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

SimpleKeyAgreementDomain Class Reference

#include <cryptlib.h>

Inheritance diagram for SimpleKeyAgreementDomain:

KeyAgreementAlgorithm AsymmetricAlgorithm Algorithm Clonable DL_SimpleKeyAgreementDomainBase< T > DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element > XTR_DH DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION > List of all members.

Detailed Description

interface for domains of simple key agreement protocols

A key agreement 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.

Definition at line 1348 of file cryptlib.h.

Public Member Functions

virtual unsigned int AgreedValueLength () const =0
 return length of agreed value produced
virtual unsigned int PrivateKeyLength () const =0
 return length of private keys in this domain
virtual unsigned int PublicKeyLength () const =0
 return length of public keys in this domain
virtual void GeneratePrivateKey (RandomNumberGenerator &rng, byte *privateKey) const =0
 generate private key
virtual void GeneratePublicKey (RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const =0
 generate public key
virtual void GenerateKeyPair (RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
 generate private/public key pair
virtual bool Agree (byte *agreedValue, const byte *privateKey, const byte *otherPublicKey, bool validateOtherPublicKey=true) const =0
 derive agreed value from your private key and couterparty's public key, return false in case of failure
CryptoMaterialAccessMaterial ()
 returns a reference to the crypto material used by this object
const CryptoMaterialGetMaterial () const
 returns a const reference to the crypto material used by this object
virtual CryptoParametersAccessCryptoParameters ()=0
virtual const CryptoParametersGetCryptoParameters () 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
 returns name of this algorithm, not universally implemented yet
virtual ClonableClone () const
 this is not implemented by most classes yet


Member Function Documentation

virtual void SimpleKeyAgreementDomain::GeneratePrivateKey RandomNumberGenerator rng,
byte *  privateKey
const [pure virtual]
 

generate private key

Precondition:
size of privateKey == PrivateKeyLength()

Implemented in DL_SimpleKeyAgreementDomainBase< T >, XTR_DH, and DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >.

Referenced by GenerateKeyPair().

virtual void SimpleKeyAgreementDomain::GeneratePublicKey RandomNumberGenerator rng,
const byte *  privateKey,
byte *  publicKey
const [pure virtual]
 

generate public key

Precondition:
size of publicKey == PublicKeyLength()

Implemented in DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >, DL_SimpleKeyAgreementDomainBase< T >, XTR_DH, and DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >.

Referenced by GenerateKeyPair().

void SimpleKeyAgreementDomain::GenerateKeyPair RandomNumberGenerator rng,
byte *  privateKey,
byte *  publicKey
const [virtual]
 

generate private/public key pair

Note:
equivalent to calling GeneratePrivateKey() and then GeneratePublicKey()
Definition at line 667 of file cryptlib.cpp.

References GeneratePrivateKey(), and GeneratePublicKey().

virtual bool SimpleKeyAgreementDomain::Agree byte *  agreedValue,
const byte *  privateKey,
const byte *  otherPublicKey,
bool  validateOtherPublicKey = true
const [pure virtual]
 

derive agreed value from your private key and couterparty's public key, return false in case of failure

Note:
If you have previously validated the public key, use validateOtherPublicKey=false to save time.
Precondition:
size of agreedValue == AgreedValueLength()

length of privateKey == PrivateKeyLength()

length of otherPublicKey == PublicKeyLength()

Implemented in DL_SimpleKeyAgreementDomainBase< T >, XTR_DH, and DL_SimpleKeyAgreementDomainBase< GROUP_PARAMETERS::Element >.


The documentation for this class was generated from the following files:
Generated on Wed Jul 21 19:16:09 2004 for Crypto++ by doxygen 1.3.7-20040704