diff options
author | Riccardo Spagni <ric@spagni.net> | 2015-06-14 13:09:14 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2015-06-14 13:09:16 +0200 |
commit | 66a5c9e50fee08096117266e94ba02d39a7570ea (patch) | |
tree | deb3552b3a30aef447c053cba08338e8005193d5 /src/simplewallet | |
parent | Merge pull request #317 (diff) | |
parent | simplewallet: allow a different password for the watch-only wallet (diff) | |
download | monero-66a5c9e50fee08096117266e94ba02d39a7570ea.tar.xz |
Merge pull request #318
fb20071 simplewallet: allow a different password for the watch-only wallet (moneromooo-monero)
Diffstat (limited to 'src/simplewallet')
-rw-r--r-- | src/simplewallet/password_container.cpp | 5 | ||||
-rw-r--r-- | src/simplewallet/password_container.h | 2 | ||||
-rw-r--r-- | src/simplewallet/simplewallet.cpp | 15 |
3 files changed, 14 insertions, 8 deletions
diff --git a/src/simplewallet/password_container.cpp b/src/simplewallet/password_container.cpp index e5fb933bb..c1a570a3a 100644 --- a/src/simplewallet/password_container.cpp +++ b/src/simplewallet/password_container.cpp @@ -81,14 +81,15 @@ namespace tools m_empty = true; } - bool password_container::read_password() + bool password_container::read_password(const char *message) { clear(); bool r; if (is_cin_tty()) { - std::cout << "password: "; + if (message) + std::cout << message << ": "; r = read_from_tty(); } else diff --git a/src/simplewallet/password_container.h b/src/simplewallet/password_container.h index 8a4191c7a..56dd44cfa 100644 --- a/src/simplewallet/password_container.h +++ b/src/simplewallet/password_container.h @@ -48,7 +48,7 @@ namespace tools bool empty() const { return m_empty; } const std::string& password() const { return m_password; } void password(std::string&& val) { m_password = std::move(val); m_empty = false; } - bool read_password(); + bool read_password(const char *message = "password"); private: bool read_from_file(); diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 6ed7bdcda..c4d0acb7a 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -768,18 +768,23 @@ bool simple_wallet::save_watch_only(const std::vector<std::string> &args/* = std { bool success = false; tools::password_container pwd_container; - success = pwd_container.read_password(); + + success = pwd_container.read_password("Password for the new watch-only wallet"); if (!success) { fail_msg_writer() << "failed to read wallet password"; return true; } - - /* verify password before using so user doesn't accidentally set a new password for rewritten wallet */ - success = m_wallet->verify_password(pwd_container.password()); + std::string password = pwd_container.password(); + success = pwd_container.read_password("Enter new password again"); if (!success) { - fail_msg_writer() << "invalid password"; + fail_msg_writer() << "failed to read wallet password"; + return true; + } + if (password != pwd_container.password()) + { + fail_msg_writer() << "passwords do not match"; return true; } |