]> Untitled Git - bdk/commitdiff
[keys] Fix entropy generation
authorAlekos Filini <alekos.filini@gmail.com>
Thu, 24 Sep 2020 13:59:46 +0000 (15:59 +0200)
committerAlekos Filini <alekos.filini@gmail.com>
Thu, 24 Sep 2020 13:59:46 +0000 (15:59 +0200)
src/keys/bip39.rs
src/keys/mod.rs

index c737ec011f3f5b0c4425f5562bf0d6925b59356c..96a5c3ef1c580551a2a59f0826d84a7736a7141d 100644 (file)
@@ -154,4 +154,15 @@ mod test {
         assert_eq!(generated_mnemonic.valid_networks, any_network());
         assert_eq!(generated_mnemonic.to_string(), "primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary fetch primary foster");
     }
+
+    #[test]
+    fn test_keys_generate_bip39_random() {
+        let generated_mnemonic: GeneratedKey<_, miniscript::Segwitv0> =
+            Mnemonic::generate((MnemonicType::Words12, Language::English)).unwrap();
+        assert_eq!(generated_mnemonic.valid_networks, any_network());
+
+        let generated_mnemonic: GeneratedKey<_, miniscript::Segwitv0> =
+            Mnemonic::generate((MnemonicType::Words24, Language::English)).unwrap();
+        assert_eq!(generated_mnemonic.valid_networks, any_network());
+    }
 }
index bc7c04e6fd06470f1ec8b3f2b07e24e7a8951f0e..a647699d4dd29096e2bbf2ac17ea6327ee02c91c 100644 (file)
@@ -389,7 +389,11 @@ pub trait GeneratableKey<Ctx: ScriptContext>: Sized {
         use rand::{thread_rng, Rng};
 
         let mut entropy = Vec::<u8>::with_capacity(Self::ENTROPY_LENGTH);
-        thread_rng().fill(&mut entropy[..]);
+        for _ in 0..Self::ENTROPY_LENGTH {
+            entropy.push(0x00);
+        }
+
+        thread_rng().fill(&mut entropy[..Self::ENTROPY_LENGTH]);
 
         Self::generate_with_entropy(options, &entropy)
     }