Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | 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 1338 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 669 of file cryptlib.cpp.

References GenerateKeyPair(), GeneratePrivateKey(), and GeneratePublicKey().

Referenced by GenerateKeyPair().

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

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 28 08:07:16 2004 for Crypto++ by doxygen 1.3.7