projects
/
rust-lightning
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #325 from TheBlueMatt/2019-03-322-cleanup
[rust-lightning]
/
src
/
util
/
rng.rs
diff --git
a/src/util/rng.rs
b/src/util/rng.rs
index f0d4492521b82d090c33c3f570dff9472e6c767d..63fbc99b52a847ea28e23e3e33dfc14916445058 100644
(file)
--- a/
src/util/rng.rs
+++ b/
src/util/rng.rs
@@
-1,18
+1,12
@@
#[cfg(not(feature = "fuzztarget"))]
mod real_rng {
use rand::{thread_rng,Rng};
#[cfg(not(feature = "fuzztarget"))]
mod real_rng {
use rand::{thread_rng,Rng};
- use bitcoin::util::uint::Uint256;
pub fn fill_bytes(data: &mut [u8]) {
let mut rng = thread_rng();
rng.fill_bytes(data);
}
pub fn fill_bytes(data: &mut [u8]) {
let mut rng = thread_rng();
rng.fill_bytes(data);
}
- pub fn rand_uint256() -> Uint256 {
- let mut rng = thread_rng();
- Uint256([rng.gen(), rng.gen(), rng.gen(), rng.gen()])
- }
-
pub fn rand_f32() -> f32 {
let mut rng = thread_rng();
rng.next_f32()
pub fn rand_f32() -> f32 {
let mut rng = thread_rng();
rng.next_f32()
@@
-23,20
+17,27
@@
pub use self::real_rng::*;
#[cfg(feature = "fuzztarget")]
mod fuzzy_rng {
#[cfg(feature = "fuzztarget")]
mod fuzzy_rng {
- use bitcoin::util::uint::Uint256;
+ use util::byte_utils;
+
+ static mut RNG_ITER: u64 = 0;
pub fn fill_bytes(data: &mut [u8]) {
pub fn fill_bytes(data: &mut [u8]) {
- for i in 0..data.len() {
- data[i] = 0x42;
+ let rng = unsafe { RNG_ITER += 1; RNG_ITER -1 };
+ for i in 0..data.len() / 8 {
+ data[i*8..(i+1)*8].copy_from_slice(&byte_utils::be64_to_array(rng));
}
}
+ let rem = data.len() % 8;
+ let off = data.len() - rem;
+ data[off..].copy_from_slice(&byte_utils::be64_to_array(rng)[0..rem]);
}
}
- pub fn rand_uint256() -> Uint256 {
- Uint256([0xdeadbeef, 0x1badcafe, 0xbadbeef, 0xdeadcafe])
+ pub fn rand_f32() -> f32 {
+ let rng = unsafe { RNG_ITER += 1; RNG_ITER - 1 };
+ f64::from_bits(rng) as f32
}
}
- pub fn r
and_f32() -> f32
{
- 0.42
+ pub fn r
eset_rng_state()
{
+ unsafe { RNG_ITER = 0; }
}
}
#[cfg(feature = "fuzztarget")]
}
}
#[cfg(feature = "fuzztarget")]