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 + -
显示快捷键?