9 NAMESPACE_BEGIN(CryptoPP)
16 : d1(domain), d2(domain) {}
18 : d1(staticDomain), d2(ephemeralDomain) {}
20 CryptoParameters & AccessCryptoParameters() {
return d1.AccessCryptoParameters();}
22 unsigned int AgreedValueLength()
const
23 {
return d1.AgreedValueLength() + d2.AgreedValueLength();}
25 unsigned int StaticPrivateKeyLength()
const
26 {
return d1.PrivateKeyLength();}
27 unsigned int StaticPublicKeyLength()
const
28 {
return d1.PublicKeyLength();}
30 {d1.GeneratePrivateKey(rng, privateKey);}
32 {d1.GeneratePublicKey(rng, privateKey, publicKey);}
34 {d1.GenerateKeyPair(rng, privateKey, publicKey);}
36 unsigned int EphemeralPrivateKeyLength()
const
37 {
return d2.PrivateKeyLength();}
38 unsigned int EphemeralPublicKeyLength()
const
39 {
return d2.PublicKeyLength();}
41 {d2.GeneratePrivateKey(rng, privateKey);}
43 {d2.GeneratePublicKey(rng, privateKey, publicKey);}
45 {d2.GenerateKeyPair(rng, privateKey, publicKey);}
47 bool Agree(byte *agreedValue,
48 const byte *staticPrivateKey,
const byte *ephemeralPrivateKey,
49 const byte *staticOtherPublicKey,
const byte *ephemeralOtherPublicKey,
50 bool validateStaticOtherPublicKey=
true)
const;