X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fkey.h;h=2d8e61850f1d77e041e36c8b2e26bc1980f0dd0f;hb=cecf7a56ed5a5efd939b21c760c69da616306005;hp=67c414e516f3ac3724c4aeecb801e90ae5f74daf;hpb=7f910f05a59a13fc96b8a4cafa4e6fdd5de725e4;p=novacoin.git diff --git a/src/key.h b/src/key.h index 67c414e..2d8e618 100644 --- a/src/key.h +++ b/src/key.h @@ -126,6 +126,7 @@ public: CKey(); CKey(const CKey& b); + CKey(const CSecret& b, bool fCompressed=true); CKey& operator=(const CKey& b); @@ -134,10 +135,11 @@ public: bool IsNull() const; bool IsCompressed() const; - void MakeNewKey(bool fCompressed); + void MakeNewKey(bool fCompressed=true); bool SetPrivKey(const CPrivKey& vchPrivKey); - bool SetSecret(const CSecret& vchSecret, bool fCompressed = false); + bool SetSecret(const CSecret& vchSecret, bool fCompressed = true); CSecret GetSecret(bool &fCompressed) const; + CSecret GetSecret() const; CPrivKey GetPrivKey() const; bool SetPubKey(const CPubKey& vchPubKey); CPubKey GetPubKey() const; @@ -203,13 +205,12 @@ public: // Calculate G*m + q bool ECMULGEN(const CBigNum &bnMultiplier, const CPoint &qPoint); - bool IsInfinity() { return EC_POINT_is_at_infinity(group, point); } + bool IsInfinity() { return EC_POINT_is_at_infinity(group, point) != 0; } }; class CMalleablePubKey { private: - unsigned char nVersion; CPubKey pubKeyL; CPubKey pubKeyH; friend class CMalleableKey; @@ -217,19 +218,17 @@ private: static const unsigned char CURRENT_VERSION = 1; public: - CMalleablePubKey() { nVersion = CMalleablePubKey::CURRENT_VERSION; } + CMalleablePubKey() { } CMalleablePubKey(const CMalleablePubKey& mpk) { - nVersion = mpk.nVersion; pubKeyL = mpk.pubKeyL; pubKeyH = mpk.pubKeyH; } + CMalleablePubKey(const std::vector &vchPubKeyPair) { setvch(vchPubKeyPair); } CMalleablePubKey(const std::string& strMalleablePubKey) { SetString(strMalleablePubKey); } - CMalleablePubKey(const CPubKey &pubKeyInL, const CPubKey &pubKeyInH) : pubKeyL(pubKeyInL), pubKeyH(pubKeyInH) { nVersion = CMalleablePubKey::CURRENT_VERSION; } + CMalleablePubKey(const CPubKey &pubKeyInL, const CPubKey &pubKeyInH) : pubKeyL(pubKeyInL), pubKeyH(pubKeyInH) { } IMPLEMENT_SERIALIZE( - READWRITE(this->nVersion); - nVersion = this->nVersion; READWRITE(pubKeyL); READWRITE(pubKeyH); ) @@ -241,7 +240,6 @@ public: bool operator==(const CMalleablePubKey &b); bool operator!=(const CMalleablePubKey &b) { return !(*this == b); } CMalleablePubKey& operator=(const CMalleablePubKey& mpk) { - nVersion = mpk.nVersion; pubKeyL = mpk.pubKeyL; pubKeyH = mpk.pubKeyH; return *this; @@ -254,6 +252,7 @@ public: return pubKeyL.GetID(); } + bool setvch(const std::vector &vchPubKeyPair); std::vector Raw() const; CPubKey& GetL() { return pubKeyL; } @@ -264,14 +263,11 @@ public: class CMalleableKey { private: - unsigned char nVersion; CSecret vchSecretL; CSecret vchSecretH; friend class CMalleableKeyView; - static const unsigned char CURRENT_VERSION = 1; - public: CMalleableKey(); CMalleableKey(const CMalleableKey &b); @@ -279,8 +275,6 @@ public: ~CMalleableKey(); IMPLEMENT_SERIALIZE( - READWRITE(this->nVersion); - nVersion = this->nVersion; READWRITE(vchSecretL); READWRITE(vchSecretH); ) @@ -289,7 +283,6 @@ public: bool SetString(const std::string& strMalleablePubKey); std::vector Raw() const; CMalleableKey& operator=(const CMalleableKey& mk) { - nVersion = mk.nVersion; vchSecretL = mk.vchSecretL; vchSecretH = mk.vchSecretH; return *this; @@ -315,34 +308,28 @@ public: class CMalleableKeyView { private: - unsigned char nVersion; CSecret vchSecretL; CPubKey vchPubKeyH; - static const unsigned char CURRENT_VERSION = 1; - public: - CMalleableKeyView() { nVersion = 0; }; + CMalleableKeyView() { }; CMalleableKeyView(const CMalleableKey &b); + CMalleableKeyView(const std::string &strMalleableKey); CMalleableKeyView(const CMalleableKeyView &b); CMalleableKeyView& operator=(const CMalleableKey &b); ~CMalleableKeyView(); IMPLEMENT_SERIALIZE( - READWRITE(this->nVersion); - nVersion = this->nVersion; READWRITE(vchSecretL); READWRITE(vchPubKeyH); ) - bool IsNull() const; - bool IsValid() const { return !IsNull() && GetMalleablePubKey().IsValid(); } + bool IsValid() const; std::string ToString() const; bool SetString(const std::string& strMalleablePubKey); std::vector Raw() const; CMalleableKeyView& operator=(const CMalleableKeyView& mkv) { - nVersion = mkv.nVersion; vchSecretL = mkv.vchSecretL; vchPubKeyH = mkv.vchPubKeyH; return *this;