summaryrefslogtreecommitdiff
path: root/dh2.h
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2015-11-05 01:59:46 -0500
committerJeffrey Walton <noloader@gmail.com>2015-11-05 01:59:46 -0500
commit48809d4e85c125814425c621d8d0d89f95405924 (patch)
tree1010fd16c4b1199f3d27dd726dda241a2bd29f83 /dh2.h
parent025337a94aceb75d188149db70c2094673772816 (diff)
downloadcryptopp-git-48809d4e85c125814425c621d8d0d89f95405924.tar.gz
CRYPTOPP 5.6.3 RC6 checkin
Diffstat (limited to 'dh2.h')
-rw-r--r--dh2.h120
1 files changed, 62 insertions, 58 deletions
diff --git a/dh2.h b/dh2.h
index af9d342d..e5191156 100644
--- a/dh2.h
+++ b/dh2.h
@@ -1,58 +1,62 @@
-#ifndef CRYPTOPP_DH2_H
-#define CRYPTOPP_DH2_H
-
-/** \file
-*/
-
-#include "cryptlib.h"
-
-NAMESPACE_BEGIN(CryptoPP)
-
-/// <a href="http://www.weidai.com/scan-mirror/ka.html#DH2">Unified Diffie-Hellman</a>
-class DH2 : public AuthenticatedKeyAgreementDomain
-{
-public:
- DH2(SimpleKeyAgreementDomain &domain)
- : d1(domain), d2(domain) {}
- DH2(SimpleKeyAgreementDomain &staticDomain, SimpleKeyAgreementDomain &ephemeralDomain)
- : d1(staticDomain), d2(ephemeralDomain) {}
-
- CryptoParameters & AccessCryptoParameters() {return d1.AccessCryptoParameters();}
-
- unsigned int AgreedValueLength() const
- {return d1.AgreedValueLength() + d2.AgreedValueLength();}
-
- unsigned int StaticPrivateKeyLength() const
- {return d1.PrivateKeyLength();}
- unsigned int StaticPublicKeyLength() const
- {return d1.PublicKeyLength();}
- void GenerateStaticPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const
- {d1.GeneratePrivateKey(rng, privateKey);}
- void GenerateStaticPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const
- {d1.GeneratePublicKey(rng, privateKey, publicKey);}
- void GenerateStaticKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
- {d1.GenerateKeyPair(rng, privateKey, publicKey);}
-
- unsigned int EphemeralPrivateKeyLength() const
- {return d2.PrivateKeyLength();}
- unsigned int EphemeralPublicKeyLength() const
- {return d2.PublicKeyLength();}
- void GenerateEphemeralPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const
- {d2.GeneratePrivateKey(rng, privateKey);}
- void GenerateEphemeralPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const
- {d2.GeneratePublicKey(rng, privateKey, publicKey);}
- void GenerateEphemeralKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
- {d2.GenerateKeyPair(rng, privateKey, publicKey);}
-
- bool Agree(byte *agreedValue,
- const byte *staticPrivateKey, const byte *ephemeralPrivateKey,
- const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey,
- bool validateStaticOtherPublicKey=true) const;
-
-protected:
- SimpleKeyAgreementDomain &d1, &d2;
-};
-
-NAMESPACE_END
-
-#endif
+#ifndef CRYPTOPP_DH2_H
+#define CRYPTOPP_DH2_H
+
+/** \file
+*/
+
+#include "cryptlib.h"
+
+NAMESPACE_BEGIN(CryptoPP)
+
+/// <a href="http://www.weidai.com/scan-mirror/ka.html#DH2">Unified Diffie-Hellman</a>
+class DH2 : public AuthenticatedKeyAgreementDomain
+{
+public:
+ DH2(SimpleKeyAgreementDomain &domain)
+ : d1(domain), d2(domain) {}
+ DH2(SimpleKeyAgreementDomain &staticDomain, SimpleKeyAgreementDomain &ephemeralDomain)
+ : d1(staticDomain), d2(ephemeralDomain) {}
+
+ CryptoParameters & AccessCryptoParameters() {return d1.AccessCryptoParameters();}
+
+ unsigned int AgreedValueLength() const
+ {return d1.AgreedValueLength() + d2.AgreedValueLength();}
+
+ unsigned int StaticPrivateKeyLength() const
+ {return d1.PrivateKeyLength();}
+ unsigned int StaticPublicKeyLength() const
+ {return d1.PublicKeyLength();}
+ void GenerateStaticPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const
+ {d1.GeneratePrivateKey(rng, privateKey);}
+ void GenerateStaticPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const
+ {d1.GeneratePublicKey(rng, privateKey, publicKey);}
+ void GenerateStaticKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
+ {d1.GenerateKeyPair(rng, privateKey, publicKey);}
+
+ unsigned int EphemeralPrivateKeyLength() const
+ {return d2.PrivateKeyLength();}
+ unsigned int EphemeralPublicKeyLength() const
+ {return d2.PublicKeyLength();}
+ void GenerateEphemeralPrivateKey(RandomNumberGenerator &rng, byte *privateKey) const
+ {d2.GeneratePrivateKey(rng, privateKey);}
+ void GenerateEphemeralPublicKey(RandomNumberGenerator &rng, const byte *privateKey, byte *publicKey) const
+ {d2.GeneratePublicKey(rng, privateKey, publicKey);}
+ void GenerateEphemeralKeyPair(RandomNumberGenerator &rng, byte *privateKey, byte *publicKey) const
+ {d2.GenerateKeyPair(rng, privateKey, publicKey);}
+
+ bool Agree(byte *agreedValue,
+ const byte *staticPrivateKey, const byte *ephemeralPrivateKey,
+ const byte *staticOtherPublicKey, const byte *ephemeralOtherPublicKey,
+ bool validateStaticOtherPublicKey=true) const;
+
+#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562
+ virtual ~DH2() {}
+#endif
+
+protected:
+ SimpleKeyAgreementDomain &d1, &d2;
+};
+
+NAMESPACE_END
+
+#endif