19 : d1(domain), d2(domain) {}
21 : d1(staticDomain), d2(ephemeralDomain) {}
23 CryptoParameters & AccessCryptoParameters() {
return d1.AccessCryptoParameters();}
26 {
return d1.AgreedValueLength() + d2.AgreedValueLength();}
29 {
return d1.PrivateKeyLength();}
31 {
return d1.PublicKeyLength();}
33 {d1.GeneratePrivateKey(rng, privateKey);}
35 {d1.GeneratePublicKey(rng, privateKey, publicKey);}
37 {d1.GenerateKeyPair(rng, privateKey, publicKey);}
40 {
return d2.PrivateKeyLength();}
42 {
return d2.PublicKeyLength();}
44 {d2.GeneratePrivateKey(rng, privateKey);}
46 {d2.GeneratePublicKey(rng, privateKey, publicKey);}
48 {d2.GenerateKeyPair(rng, privateKey, publicKey);}
50 bool Agree(byte *agreedValue,
51 const byte *staticPrivateKey,
const byte *ephemeralPrivateKey,
52 const byte *staticOtherPublicKey,
const byte *ephemeralOtherPublicKey,
53 bool validateStaticOtherPublicKey=
true)
const;
55 #ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 Abstract base classes that provide a uniform interface to this library.
void GenerateStaticKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
generate private/public key pair
Interface for random number generators.
unsigned int EphemeralPublicKeyLength() const
return length of ephemeral public keys in this domain
unsigned int EphemeralPrivateKeyLength() const
return length of ephemeral private keys in this domain
Interface for domains of simple key agreement protocols.
void GenerateEphemeralPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const
Generate ephemeral public key.
void GenerateStaticPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const
generate static public key
void GenerateEphemeralPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const
Generate ephemeral private key.
void GenerateEphemeralKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
Generate private/public key pair.
unsigned int StaticPublicKeyLength() const
return length of static public keys in this domain
unsigned int AgreedValueLength() const
return length of agreed value produced
Interface for crypto prameters.
Crypto++ library namespace.
unsigned int StaticPrivateKeyLength() const
return length of static private keys in this domain
Interface for domains of authenticated key agreement protocols.
void GenerateStaticPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const
generate static private key