diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-02-05 22:41:45 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-02-05 22:41:45 +0000 |
commit | f6abc5324f602ded6a0424445c033f5a8622ab22 (patch) | |
tree | 8028a02c4849725333806f69fcb184d278dd99c8 /src | |
parent | Merge pull request #636 (diff) | |
download | monero-f6abc5324f602ded6a0424445c033f5a8622ab22.tar.xz |
simplewallet: check watch-only view key matches standard address
Diffstat (limited to 'src')
-rw-r--r-- | src/simplewallet/simplewallet.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 9e82d29de..f4dcb6a35 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -897,6 +897,17 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm) for (size_t n = 3; n < parts.size(); ++n) m_wallet_file += std::string(":") + parts[n]; + // check the view key matches the given address + crypto::public_key pkey; + if (!crypto::secret_key_to_public_key(viewkey, pkey)) { + fail_msg_writer() << tr("failed to verify view key secret key"); + return false; + } + if (address.m_view_public_key != pkey) { + fail_msg_writer() << tr("view key does not match standard address"); + return false; + } + bool r = new_wallet(m_wallet_file, pwd_container.password(), address, viewkey, testnet); CHECK_AND_ASSERT_MES(r, false, tr("account creation failed")); } |