Extract check for deterministic keys to wallet2::is_deterministic()
It's cleaner for wallet2.cpp and it also allows deterministic check by simplewallet.cpp.
This commit is contained in:
parent
359ede3958
commit
1beedb9dd4
|
@ -89,8 +89,23 @@ void wallet2::init(const std::string& daemon_address, uint64_t upper_transaction
|
||||||
m_daemon_address = daemon_address;
|
m_daemon_address = daemon_address;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
|
bool wallet2::is_deterministic()
|
||||||
|
{
|
||||||
|
crypto::secret_key second;
|
||||||
|
keccak((uint8_t *)&get_account().get_keys().m_spend_secret_key, sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key));
|
||||||
|
sc_reduce32((uint8_t *)&second);
|
||||||
|
bool keys_deterministic = memcmp(second.data,get_account().get_keys().m_view_secret_key.data, sizeof(crypto::secret_key)) == 0;
|
||||||
|
return keys_deterministic;
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------------------------------
|
||||||
bool wallet2::get_seed(std::string& electrum_words)
|
bool wallet2::get_seed(std::string& electrum_words)
|
||||||
{
|
{
|
||||||
|
bool keys_deterministic = is_deterministic();
|
||||||
|
if (!keys_deterministic)
|
||||||
|
{
|
||||||
|
std::cout << "This is not a deterministic wallet" << std::endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (seed_language.empty())
|
if (seed_language.empty())
|
||||||
{
|
{
|
||||||
std::cout << "seed_language not set" << std::endl;
|
std::cout << "seed_language not set" << std::endl;
|
||||||
|
@ -99,12 +114,7 @@ bool wallet2::get_seed(std::string& electrum_words)
|
||||||
|
|
||||||
crypto::ElectrumWords::bytes_to_words(get_account().get_keys().m_spend_secret_key, electrum_words, seed_language);
|
crypto::ElectrumWords::bytes_to_words(get_account().get_keys().m_spend_secret_key, electrum_words, seed_language);
|
||||||
|
|
||||||
crypto::secret_key second;
|
return true;
|
||||||
keccak((uint8_t *)&get_account().get_keys().m_spend_secret_key, sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key));
|
|
||||||
|
|
||||||
sc_reduce32((uint8_t *)&second);
|
|
||||||
|
|
||||||
return memcmp(second.data,get_account().get_keys().m_view_secret_key.data, sizeof(crypto::secret_key)) == 0;
|
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
* \brief Gets the seed language
|
* \brief Gets the seed language
|
||||||
|
|
|
@ -168,6 +168,10 @@ namespace tools
|
||||||
i_wallet2_callback* callback() const { return m_callback; }
|
i_wallet2_callback* callback() const { return m_callback; }
|
||||||
void callback(i_wallet2_callback* callback) { m_callback = callback; }
|
void callback(i_wallet2_callback* callback) { m_callback = callback; }
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Checks if deterministic wallet
|
||||||
|
*/
|
||||||
|
bool is_deterministic();
|
||||||
bool get_seed(std::string& electrum_words);
|
bool get_seed(std::string& electrum_words);
|
||||||
/*!
|
/*!
|
||||||
* \brief Gets the seed language
|
* \brief Gets the seed language
|
||||||
|
|
Loading…
Reference in New Issue