1
0

tests: add test for bip39 utf-8 normalisation

test case from https://github.com/Electron-Cash/Electron-Cash/issues/2740
This commit is contained in:
SomberNight
2023-12-19 22:47:57 +00:00
parent 6e576f2a08
commit 2ea723a91a

View File

@@ -138,14 +138,30 @@ class Test_OldMnemonic(ElectrumTestCase):
self.assertEqual(old_mnemonic.mn_decode(result), seed)
class Test_BIP39Checksum(ElectrumTestCase):
class Test_BIP39(ElectrumTestCase):
def test(self):
def test_checksum(self):
mnemonic = u'gravity machine north sort system female filter attitude volume fold club stay feature office ecology stable narrow fog'
is_checksum_valid, is_wordlist_valid = keystore.bip39_is_checksum_valid(mnemonic)
self.assertTrue(is_wordlist_valid)
self.assertTrue(is_checksum_valid)
def test_cjk_normalization(self):
# test case from https://github.com/Electron-Cash/Electron-Cash/issues/2740
cjk_toku_kanchi_hex = "e381a8e3818ae3818fe38080e3818be38293e381a1e38080e3819de38186e38193e38299e38080e381bee38293e3818be38299e38080e3818de3818be3818fe38080e381bbe38184e3818fe38080e3818fe38186e381b5e3818fe38080e381a6e381b5e3819fe38299e38080e38191e3828fe38197e38184e38080e3819fe381a1e381afe38299e381aae38080e381b2e381a4e38288e38186e38080e381bbe38182e38293"
cjk_toku_kanchi = bfh(cjk_toku_kanchi_hex).decode("utf-8")
assert cjk_toku_kanchi == "とおく かんち そうご まんが きかく ほいく くうふく てふだ けわしい たちばな ひつよう ほあん"
bip32_seed = keystore.bip39_to_seed(cjk_toku_kanchi, passphrase="")
self.assertEqual(
bytes.fromhex("2c53f34b1bcd338681783e671386ccaa12f5f1b08a2eee679a43f8acf956130d9246ddc98aaf50e9bdceb9b2cb4096a94fe0beec816b2a233eda29a376d17912"),
bip32_seed)
bip32_seed = keystore.bip39_to_seed(cjk_toku_kanchi, passphrase=cjk_toku_kanchi)
self.assertEqual(
bytes.fromhex("885df1b4e9906fb0ef187f4414cced1092c85cbf0b30676865f80f294d745a3a7ddfd37d8a512e644684bdfa8ced2da970f0d742423c72d3300f622c3a42f609"),
bip32_seed)
class Test_seeds(ElectrumTestCase):
""" Test old and new seeds. """