validating mnemonioc in keys wallet

This commit is contained in:
woodser
2019-12-04 10:24:41 -05:00
parent 0c5da0b721
commit 6f6e73284a
3 changed files with 20 additions and 15 deletions
+10 -10
View File
@@ -71,11 +71,6 @@ namespace monero {
// ---------------------------- WALLET MANAGEMENT ---------------------------
monero_wallet_keys* monero_wallet_keys::create_wallet_random() {
cout << "monero_wallet_keys::create_wallet_random()" << endl;
throw runtime_error("create_wallet_random() not implemented");
}
monero_wallet_keys* monero_wallet_keys::create_wallet_random(const monero_network_type network_type, const string& language) {
cout << "monero_wallet_keys::create_wallet_random(...)" << endl;
throw runtime_error("create_wallet_random(...) not implemented");
@@ -83,12 +78,17 @@ namespace monero {
monero_wallet_keys* monero_wallet_keys::create_wallet_from_mnemonic(const monero_network_type network_type, const string& mnemonic) {
cout << "monero_wallet_keys::create_wallet_from_mnemonic()" << endl;
throw runtime_error("create_wallet_from_mnemonic() not implemented");
}
monero_wallet_keys* monero_wallet_keys::create_wallet_from_keys(const monero_network_type network_type, const string& address, const string& view_key, const string& spend_key) {
cout << "monero_wallet_keys::create_wallet_from_keys()" << endl;
throw runtime_error("create_wallet_from_keys() not implemented");
// validate mnemonic and get recovery key and language
crypto::secret_key recoveryKey;
string language;
bool is_valid = crypto::ElectrumWords::words_to_bytes(mnemonic, recoveryKey, language);
if (!is_valid) throw runtime_error("Invalid mnemonic");
if (language == crypto::ElectrumWords::old_language_name) language = Language::English().get_language_name();
cout << "MNEMONIC VALIDATED" << endl;
throw runtime_error("create_wallet_from_mnemonic() not implemented");
}
monero_wallet_keys* monero_wallet_keys::create_wallet_from_keys(const monero_network_type network_type, const string& address, const string& view_key, const string& spend_key, const string& language) {
+9 -4
View File
@@ -75,7 +75,6 @@ namespace monero {
* @param network_type is the wallet's network type (default = monero_network_type.MAINNET)
* @param language is the wallet and mnemonic's language (default = "English")
*/
static monero_wallet_keys* create_wallet_random();
static monero_wallet_keys* create_wallet_random(const monero_network_type network_type, const string& language);
/**
@@ -95,8 +94,7 @@ namespace monero {
* @param spend_key is the spend key of the wallet to construct
* @param language is the wallet and mnemonic's language (default = "English")
*/
static monero_wallet_keys* create_wallet_from_keys(const monero_network_type network_type, const string& address, const string& view_key, const string& spend_key);
static monero_wallet_keys* create_wallet_from_keys(const monero_network_type network_type, const string& address, const string& view_key, const string& spend_key, const string& language);
static monero_wallet_keys* create_wallet_from_keys(const monero_network_type network_type, const string& address, const string& view_key, const string& spend_key, const string& language = "English");
/**
* Destruct the wallet.
@@ -132,6 +130,13 @@ namespace monero {
// --------------------------------- PRIVATE --------------------------------
private:
string seed;
string mnemonic;
string language;
string pub_view_key;
string prv_view_key;
string pub_spend_key;
string prv_spend_key;
string primary_address;
};
}
+1 -1
View File
@@ -838,7 +838,7 @@ namespace monero {
// validate mnemonic and get recovery key and language
crypto::secret_key recoveryKey;
std::string language;
string language;
bool is_valid = crypto::ElectrumWords::words_to_bytes(mnemonic, recoveryKey, language);
if (!is_valid) throw runtime_error("Invalid mnemonic");
if (language == crypto::ElectrumWords::old_language_name) language = Language::English().get_language_name();