Upgrade rand
This commit is contained in:
parent
13f59adf61
commit
5435bb734c
|
@ -68,5 +68,5 @@ byteorder = "^1.2.1"
|
||||||
libc = "^0.2.1"
|
libc = "^0.2.1"
|
||||||
getopts = "^0.2"
|
getopts = "^0.2"
|
||||||
isatty = "0.1"
|
isatty = "0.1"
|
||||||
rand = "0.4.2"
|
rand = "0.5.1"
|
||||||
pnet = "^0.21.0"
|
pnet = "^0.21.0"
|
||||||
|
|
|
@ -137,7 +137,9 @@ fn main() {
|
||||||
let last_id = client.get_last_id();
|
let last_id = client.get_last_id();
|
||||||
println!("Got last ID {:?}", last_id);
|
println!("Got last ID {:?}", last_id);
|
||||||
|
|
||||||
let rnd = GenKeys::new(demo.mint.keypair().public_key_bytes());
|
let mut seed = [0u8; 32];
|
||||||
|
seed.copy_from_slice(&demo.mint.keypair().public_key_bytes()[..32]);
|
||||||
|
let rnd = GenKeys::new(seed);
|
||||||
|
|
||||||
println!("Creating keypairs...");
|
println!("Creating keypairs...");
|
||||||
let txs = demo.num_accounts / 2;
|
let txs = demo.num_accounts / 2;
|
||||||
|
|
|
@ -32,7 +32,9 @@ fn main() {
|
||||||
exit(1);
|
exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
let rnd = GenKeys::new(demo.mint.keypair().public_key_bytes());
|
let mut seed = [0u8; 32];
|
||||||
|
seed.copy_from_slice(&demo.mint.keypair().public_key_bytes()[..32]);
|
||||||
|
let rnd = GenKeys::new(seed);
|
||||||
let num_accounts = demo.num_accounts;
|
let num_accounts = demo.num_accounts;
|
||||||
let tokens_per_user = 1_000;
|
let tokens_per_user = 1_000;
|
||||||
|
|
||||||
|
|
|
@ -56,9 +56,8 @@ pub struct GenKeys {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GenKeys {
|
impl GenKeys {
|
||||||
pub fn new(seed: &[u8]) -> GenKeys {
|
pub fn new(seed: [u8; 32]) -> GenKeys {
|
||||||
let seed32: Vec<_> = seed.iter().map(|&x| x as u32).collect();
|
let rng = ChaChaRng::from_seed(seed);
|
||||||
let rng = ChaChaRng::from_seed(&seed32);
|
|
||||||
GenKeys {
|
GenKeys {
|
||||||
generator: RefCell::new(rng),
|
generator: RefCell::new(rng),
|
||||||
}
|
}
|
||||||
|
@ -68,7 +67,7 @@ impl GenKeys {
|
||||||
KeyPair::generate_pkcs8(self).unwrap().to_vec()
|
KeyPair::generate_pkcs8(self).unwrap().to_vec()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn gen_n_seeds(&self, n: i64) -> Vec<[u8; 16]> {
|
pub fn gen_n_seeds(&self, n: i64) -> Vec<[u8; 32]> {
|
||||||
let mut rng = self.generator.borrow_mut();
|
let mut rng = self.generator.borrow_mut();
|
||||||
(0..n).map(|_| rng.gen()).collect()
|
(0..n).map(|_| rng.gen()).collect()
|
||||||
}
|
}
|
||||||
|
@ -77,7 +76,7 @@ impl GenKeys {
|
||||||
self.gen_n_seeds(n)
|
self.gen_n_seeds(n)
|
||||||
.into_par_iter()
|
.into_par_iter()
|
||||||
.map(|seed| {
|
.map(|seed| {
|
||||||
let pkcs8 = GenKeys::new(&seed).new_key();
|
let pkcs8 = GenKeys::new(seed).new_key();
|
||||||
KeyPair::from_pkcs8(untrusted::Input::from(&pkcs8)).unwrap()
|
KeyPair::from_pkcs8(untrusted::Input::from(&pkcs8)).unwrap()
|
||||||
})
|
})
|
||||||
.collect()
|
.collect()
|
||||||
|
@ -87,7 +86,7 @@ impl GenKeys {
|
||||||
impl SecureRandom for GenKeys {
|
impl SecureRandom for GenKeys {
|
||||||
fn fill(&self, dest: &mut [u8]) -> Result<(), Unspecified> {
|
fn fill(&self, dest: &mut [u8]) -> Result<(), Unspecified> {
|
||||||
let mut rng = self.generator.borrow_mut();
|
let mut rng = self.generator.borrow_mut();
|
||||||
rng.fill_bytes(dest);
|
rng.fill(dest);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,17 +98,17 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_new_key_is_deterministic() {
|
fn test_new_key_is_deterministic() {
|
||||||
let seed = [1, 2, 3, 4];
|
let seed = [0u8; 32];
|
||||||
let rng0 = GenKeys::new(&seed);
|
let rng0 = GenKeys::new(seed);
|
||||||
let rng1 = GenKeys::new(&seed);
|
let rng1 = GenKeys::new(seed);
|
||||||
|
|
||||||
for _ in 0..100 {
|
for _ in 0..100 {
|
||||||
assert_eq!(rng0.new_key(), rng1.new_key());
|
assert_eq!(rng0.new_key(), rng1.new_key());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn gen_n_pubkeys(seed: &[u8], n: i64) -> HashSet<PublicKey> {
|
fn gen_n_pubkeys(seed: [u8; 32], n: i64) -> HashSet<PublicKey> {
|
||||||
GenKeys::new(&seed)
|
GenKeys::new(seed)
|
||||||
.gen_n_keypairs(n)
|
.gen_n_keypairs(n)
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|x| x.pubkey())
|
.map(|x| x.pubkey())
|
||||||
|
@ -118,8 +117,8 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_gen_n_pubkeys_deterministic() {
|
fn test_gen_n_pubkeys_deterministic() {
|
||||||
let seed = [1, 2, 3, 4];
|
let seed = [0u8; 32];
|
||||||
assert_eq!(gen_n_pubkeys(&seed, 50), gen_n_pubkeys(&seed, 50));
|
assert_eq!(gen_n_pubkeys(seed, 50), gen_n_pubkeys(seed, 50));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue