aboutsummaryrefslogtreecommitdiff
path: root/tests/unit_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_tests')
-rw-r--r--tests/unit_tests/mnemonics.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/unit_tests/mnemonics.cpp b/tests/unit_tests/mnemonics.cpp
index 3dc5db7d4..9c497ef29 100644
--- a/tests/unit_tests/mnemonics.cpp
+++ b/tests/unit_tests/mnemonics.cpp
@@ -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");
+}