diff --git a/src/keystore.cpp b/src/keystore.cpp --- a/src/keystore.cpp +++ b/src/keystore.cpp @@ -50,13 +50,11 @@ } bool CBasicKeyStore::GetKey(const CKeyID &address, CKey &keyOut) const { - { - LOCK(cs_KeyStore); - KeyMap::const_iterator mi = mapKeys.find(address); - if (mi != mapKeys.end()) { - keyOut = mi->second; - return true; - } + LOCK(cs_KeyStore); + KeyMap::const_iterator mi = mapKeys.find(address); + if (mi != mapKeys.end()) { + keyOut = mi->second; + return true; } return false; } diff --git a/src/wallet/crypter.cpp b/src/wallet/crypter.cpp --- a/src/wallet/crypter.cpp +++ b/src/wallet/crypter.cpp @@ -183,12 +183,8 @@ if (!IsCrypted()) { return false; } - bool result; - { - LOCK(cs_KeyStore); - result = vMasterKey.empty(); - } - return result; + LOCK(cs_KeyStore); + return vMasterKey.empty(); } bool CCryptoKeyStore::Lock() { @@ -244,41 +240,36 @@ } bool CCryptoKeyStore::AddKeyPubKey(const CKey &key, const CPubKey &pubkey) { - { - LOCK(cs_KeyStore); - if (!IsCrypted()) { - return CBasicKeyStore::AddKeyPubKey(key, pubkey); - } + LOCK(cs_KeyStore); + if (!IsCrypted()) { + return CBasicKeyStore::AddKeyPubKey(key, pubkey); + } - if (IsLocked()) { - return false; - } + if (IsLocked()) { + return false; + } - std::vector vchCryptedSecret; - CKeyingMaterial vchSecret(key.begin(), key.end()); - if (!EncryptSecret(vMasterKey, vchSecret, pubkey.GetHash(), - vchCryptedSecret)) { - return false; - } + std::vector vchCryptedSecret; + CKeyingMaterial vchSecret(key.begin(), key.end()); + if (!EncryptSecret(vMasterKey, vchSecret, pubkey.GetHash(), + vchCryptedSecret)) { + return false; + } - if (!AddCryptedKey(pubkey, vchCryptedSecret)) { - return false; - } + if (!AddCryptedKey(pubkey, vchCryptedSecret)) { + return false; } return true; } bool CCryptoKeyStore::AddCryptedKey( const CPubKey &vchPubKey, const std::vector &vchCryptedSecret) { - { - LOCK(cs_KeyStore); - if (!SetCrypted()) { - return false; - } - - mapCryptedKeys[vchPubKey.GetID()] = - make_pair(vchPubKey, vchCryptedSecret); + LOCK(cs_KeyStore); + if (!SetCrypted()) { + return false; } + + mapCryptedKeys[vchPubKey.GetID()] = make_pair(vchPubKey, vchCryptedSecret); return true; } @@ -291,39 +282,35 @@ } bool CCryptoKeyStore::GetKey(const CKeyID &address, CKey &keyOut) const { - { - LOCK(cs_KeyStore); - if (!IsCrypted()) { - return CBasicKeyStore::GetKey(address, keyOut); - } + LOCK(cs_KeyStore); + if (!IsCrypted()) { + return CBasicKeyStore::GetKey(address, keyOut); + } - CryptedKeyMap::const_iterator mi = mapCryptedKeys.find(address); - if (mi != mapCryptedKeys.end()) { - const CPubKey &vchPubKey = (*mi).second.first; - const std::vector &vchCryptedSecret = (*mi).second.second; - return DecryptKey(vMasterKey, vchCryptedSecret, vchPubKey, keyOut); - } + CryptedKeyMap::const_iterator mi = mapCryptedKeys.find(address); + if (mi != mapCryptedKeys.end()) { + const CPubKey &vchPubKey = (*mi).second.first; + const std::vector &vchCryptedSecret = (*mi).second.second; + return DecryptKey(vMasterKey, vchCryptedSecret, vchPubKey, keyOut); } return false; } bool CCryptoKeyStore::GetPubKey(const CKeyID &address, CPubKey &vchPubKeyOut) const { - { - LOCK(cs_KeyStore); - if (!IsCrypted()) { - return CBasicKeyStore::GetPubKey(address, vchPubKeyOut); - } - - CryptedKeyMap::const_iterator mi = mapCryptedKeys.find(address); - if (mi != mapCryptedKeys.end()) { - vchPubKeyOut = (*mi).second.first; - return true; - } - // Check for watch-only pubkeys + LOCK(cs_KeyStore); + if (!IsCrypted()) { return CBasicKeyStore::GetPubKey(address, vchPubKeyOut); } - return false; + + CryptedKeyMap::const_iterator mi = mapCryptedKeys.find(address); + if (mi != mapCryptedKeys.end()) { + vchPubKeyOut = (*mi).second.first; + return true; + } + + // Check for watch-only pubkeys + return CBasicKeyStore::GetPubKey(address, vchPubKeyOut); } std::set CCryptoKeyStore::GetKeys() const { @@ -339,27 +326,25 @@ } bool CCryptoKeyStore::EncryptKeys(CKeyingMaterial &vMasterKeyIn) { - { - LOCK(cs_KeyStore); - if (!mapCryptedKeys.empty() || IsCrypted()) { + LOCK(cs_KeyStore); + if (!mapCryptedKeys.empty() || IsCrypted()) { + return false; + } + + fUseCrypto = true; + for (const KeyMap::value_type &mKey : mapKeys) { + const CKey &key = mKey.second; + CPubKey vchPubKey = key.GetPubKey(); + CKeyingMaterial vchSecret(key.begin(), key.end()); + std::vector vchCryptedSecret; + if (!EncryptSecret(vMasterKeyIn, vchSecret, vchPubKey.GetHash(), + vchCryptedSecret)) { return false; } - - fUseCrypto = true; - for (KeyMap::value_type &mKey : mapKeys) { - const CKey &key = mKey.second; - CPubKey vchPubKey = key.GetPubKey(); - CKeyingMaterial vchSecret(key.begin(), key.end()); - std::vector vchCryptedSecret; - if (!EncryptSecret(vMasterKeyIn, vchSecret, vchPubKey.GetHash(), - vchCryptedSecret)) { - return false; - } - if (!AddCryptedKey(vchPubKey, vchCryptedSecret)) { - return false; - } + if (!AddCryptedKey(vchPubKey, vchCryptedSecret)) { + return false; } - mapKeys.clear(); } + mapKeys.clear(); return true; }