public void BIP39_TestSeeds() { // Create a mnemonic of size 0x10 and verify it. MnemonicPhrase mnemonic1 = new MnemonicPhrase(WordListLanguage.English, new byte[0x10]); Assert.True(mnemonic1.Verify()); // Derive seed from our data. byte[] seed = mnemonic1.DeriveKeySeed("testTestTest!!!"); Assert.Equal("A424DD4B5DBEB58B44B36DB439FEC78D77853563234FFEE8C2912C4BD32D29DF2C5828728FDC6EF77AEC1CB7271A9D7C04D86A6642B1B0A2D6A9048CC636755A", seed.ToHexString(), StringComparer.InvariantCultureIgnoreCase); // Create a mnemonic of size 0x20 and verify it. MnemonicPhrase mnemonic2 = new MnemonicPhrase(WordListLanguage.English, new byte[0x20]); Assert.True(mnemonic2.Verify()); // Derive seed from our data. seed = mnemonic2.DeriveKeySeed("totallyDifferentPassword?"); Assert.Equal("95DC7BE1A5362EF01D970BE636665276F15946F7C77D46A54423A1C068B435981369F879DB50E6B1D3291A4821F8F78FF433E97AE850F8244770A22A772479A2", seed.ToHexString(), StringComparer.InvariantCultureIgnoreCase); // Create a mnemonic from a mnemonic string. MnemonicPhrase mnemonic3 = new MnemonicPhrase("abandon math mimic master filter design carbon cactus bachelor bag speed print guess session goat acquire captain olive best smooth joy erode able despair"); Assert.True(mnemonic3.Verify()); // Derive seed from our data. seed = mnemonic3.DeriveKeySeed("staticMnemonicStringPassword...#*($10@"); Assert.Equal("78A7C9E99AF640D818EB5D990E1C2F0BF91E68C20BED59E5EBA38A483B1D1ECBB2ED8DF31DED0164048A23F30EBF7E6B6F2A8D06584741D36DD36D4177DC04F6", seed.ToHexString(), StringComparer.InvariantCultureIgnoreCase); }
public void BIP39_GenerateMnemonic() { // Generate 10 different phrases. for (int i = 0; i < 10; i++) { // Generate a mnemonic and verify it. MnemonicPhrase mnemonic = new MnemonicPhrase(WordListLanguage.English, null); Assert.True(mnemonic.Verify()); // Parse the generated mnemonic from a string and verify it. MnemonicPhrase mnemonicCopy = new MnemonicPhrase(mnemonic.MnemonicString); Assert.True(mnemonicCopy.Verify()); } }