Merge pull request #1579

f5f4109f mnemonics: fix language detection with checksum word (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2017-01-15 14:58:09 -05:00
commit b2e1568335
No known key found for this signature in database
GPG key ID: 55432DF31CCD4FCD
2 changed files with 45 additions and 1 deletions

View file

@ -148,3 +148,22 @@ TEST(mnemonics, all_languages)
test_language(*(*it));
}
}
TEST(mnemonics, language_detection_with_bad_checksum)
{
crypto::secret_key key;
std::string language_name;
bool res;
// This Portuguese (4-prefix) seed has all its words with 3-prefix that's also present in English
const std::string base_seed = "cinzento luxuriante leonardo gnostico digressao cupula fifa broxar iniquo louvor ovario dorsal ideologo besuntar decurso rosto susto lemure unheiro pagodeiro nitroglicerina eclusa mazurca bigorna";
const std::string real_checksum = "gnostico";
res = crypto::ElectrumWords::words_to_bytes(base_seed, key, language_name);
ASSERT_EQ(true, res);
ASSERT_STREQ(language_name.c_str(), "Portuguese");
res = crypto::ElectrumWords::words_to_bytes(base_seed + " " + real_checksum, key, language_name);
ASSERT_EQ(true, res);
ASSERT_STREQ(language_name.c_str(), "Portuguese");
}