dh2.h

来自「lots Elliptic curve cryptography codes. 」· C头文件 代码 · 共 59 行

H
59
字号
#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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?