diff options
author | Matt Corallo <git@bluematt.me> | 2014-08-09 18:49:07 -0700 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2014-08-10 18:36:07 -0700 |
commit | a35b55b522da8eeaed895f0ed43ba595fc083498 (patch) | |
tree | 304446bc89f551fb1024ca33d889a96edcb48ad8 | |
parent | 1e21c17d208e310295475c0e4a46d750a5c9ba2d (diff) |
Dont run full check every time we decrypt wallet.
-rw-r--r-- | src/crypter.cpp | 3 | ||||
-rw-r--r-- | src/crypter.h | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/crypter.cpp b/src/crypter.cpp index 2f94e08273..122e06d97e 100644 --- a/src/crypter.cpp +++ b/src/crypter.cpp @@ -178,6 +178,8 @@ bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn) break; } keyPass = true; + if (fDecryptionThoroughlyChecked) + break; } if (keyPass && keyFail) { @@ -187,6 +189,7 @@ bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn) if (keyFail || !keyPass) return false; vMasterKey = vMasterKeyIn; + fDecryptionThoroughlyChecked = true; } NotifyStatusChanged(this); return true; diff --git a/src/crypter.h b/src/crypter.h index 4791428b48..f16fcef9c7 100644 --- a/src/crypter.h +++ b/src/crypter.h @@ -121,6 +121,9 @@ private: // if fUseCrypto is false, vMasterKey must be empty bool fUseCrypto; + // keeps track of whether Unlock has run a thourough check before + bool fDecryptionThoroughlyChecked; + protected: bool SetCrypted(); @@ -130,7 +133,7 @@ protected: bool Unlock(const CKeyingMaterial& vMasterKeyIn); public: - CCryptoKeyStore() : fUseCrypto(false) + CCryptoKeyStore() : fUseCrypto(false), fDecryptionThoroughlyChecked(false) { } |