From 0efda1a79eab6dd2e101edc615c6dd14138c31a2 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Sun, 3 Jul 2011 15:33:01 +0200 Subject: [PATCH] Do not use obsolete CPrivKey for passing keys around --- src/key.h | 16 ---------------- src/keystore.cpp | 6 ++---- src/keystore.h | 8 ++++---- src/script.cpp | 12 ++++++------ 4 files changed, 12 insertions(+), 30 deletions(-) diff --git a/src/key.h b/src/key.h index c0fce18..c43e4ee 100644 --- a/src/key.h +++ b/src/key.h @@ -220,22 +220,6 @@ public: return false; return true; } - - static bool Sign(const CPrivKey& vchPrivKey, uint256 hash, std::vector& vchSig) - { - CKey key; - if (!key.SetPrivKey(vchPrivKey)) - return false; - return key.Sign(hash, vchSig); - } - - static bool Verify(const std::vector& vchPubKey, uint256 hash, const std::vector& vchSig) - { - CKey key; - if (!key.SetPubKey(vchPubKey)) - return false; - return key.Verify(hash, vchSig); - } }; #endif diff --git a/src/keystore.cpp b/src/keystore.cpp index f659495..de13958 100644 --- a/src/keystore.cpp +++ b/src/keystore.cpp @@ -100,7 +100,7 @@ bool CCryptoKeyStore::AddCryptedKey(const std::vector &vchPubKey, return true; } -bool CCryptoKeyStore::GetPrivKey(const std::vector &vchPubKey, CPrivKey& keyOut) const +bool CCryptoKeyStore::GetPrivKey(const std::vector &vchPubKey, CKey& keyOut) const { CRITICAL_BLOCK(cs_vMasterKey) { @@ -114,9 +114,7 @@ bool CCryptoKeyStore::GetPrivKey(const std::vector &vchPubKey, CP CSecret vchSecret; if (!DecryptSecret(vMasterKey, (*mi).second, Hash((*mi).first.begin(), (*mi).first.end()), vchSecret)) return false; - CKey key; - key.SetSecret(vchSecret); - keyOut = key.GetPrivKey(); + keyOut.SetSecret(vchSecret); return true; } } diff --git a/src/keystore.h b/src/keystore.h index 8d445be..0dc09f0 100644 --- a/src/keystore.h +++ b/src/keystore.h @@ -13,7 +13,7 @@ public: virtual bool AddKey(const CKey& key) =0; virtual bool HaveKey(const std::vector &vchPubKey) const =0; - virtual bool GetPrivKey(const std::vector &vchPubKey, CPrivKey& keyOut) const =0; + virtual bool GetPrivKey(const std::vector &vchPubKey, CKey& keyOut) const =0; virtual std::vector GenerateNewKey(); }; @@ -30,12 +30,12 @@ public: { return (mapKeys.count(vchPubKey) > 0); } - bool GetPrivKey(const std::vector &vchPubKey, CPrivKey& keyOut) const + bool GetPrivKey(const std::vector &vchPubKey, CKey& keyOut) const { std::map, CPrivKey>::const_iterator mi = mapKeys.find(vchPubKey); if (mi != mapKeys.end()) { - keyOut = (*mi).second; + keyOut.SetPrivKey((*mi).second); return true; } return false; @@ -109,7 +109,7 @@ public: return CBasicKeyStore::HaveKey(vchPubKey); return mapCryptedKeys.count(vchPubKey) > 0; } - bool GetPrivKey(const std::vector &vchPubKey, CPrivKey& keyOut) const; + bool GetPrivKey(const std::vector &vchPubKey, CKey& keyOut) const; }; #endif diff --git a/src/script.cpp b/src/script.cpp index 13a53d6..aa7f1f5 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -1038,13 +1038,13 @@ bool Solver(const CKeyStore& keystore, const CScript& scriptPubKey, uint256 hash { // Sign const valtype& vchPubKey = item.second; - CPrivKey privkey; - if (!keystore.GetPrivKey(vchPubKey, privkey)) + CKey key; + if (!keystore.GetPrivKey(vchPubKey, key)) return false; if (hash != 0) { vector vchSig; - if (!CKey::Sign(privkey, hash, vchSig)) + if (!key.Sign(hash, vchSig)) return false; vchSig.push_back((unsigned char)nHashType); scriptSigRet << vchSig; @@ -1057,13 +1057,13 @@ bool Solver(const CKeyStore& keystore, const CScript& scriptPubKey, uint256 hash if (mi == mapPubKeys.end()) return false; const vector& vchPubKey = (*mi).second; - CPrivKey privkey; - if (!keystore.GetPrivKey(vchPubKey, privkey)) + CKey key; + if (!keystore.GetPrivKey(vchPubKey, key)) return false; if (hash != 0) { vector vchSig; - if (!CKey::Sign(privkey, hash, vchSig)) + if (!key.Sign(hash, vchSig)) return false; vchSig.push_back((unsigned char)nHashType); scriptSigRet << vchSig << vchPubKey; -- 1.7.1