]>
Commit | Line | Data |
---|---|---|
532ac7d7 XL |
1 | use crate::io; |
2 | use crate::mem; | |
3 | use crate::sys::c; | |
7453a54e | 4 | |
416331ca | 5 | #[cfg(not(target_vendor = "uwp"))] |
abe05a73 XL |
6 | pub fn hashmap_random_keys() -> (u64, u64) { |
7 | let mut v = (0, 0); | |
60c5eb7d XL |
8 | let ret = |
9 | unsafe { c::RtlGenRandom(&mut v as *mut _ as *mut u8, mem::size_of_val(&v) as c::ULONG) }; | |
abe05a73 | 10 | if ret == 0 { |
60c5eb7d | 11 | panic!("couldn't generate random bytes: {}", io::Error::last_os_error()); |
7453a54e | 12 | } |
e74abb32 | 13 | v |
7453a54e | 14 | } |
416331ca XL |
15 | |
16 | #[cfg(target_vendor = "uwp")] | |
17 | pub fn hashmap_random_keys() -> (u64, u64) { | |
18 | use crate::ptr; | |
19 | ||
20 | let mut v = (0, 0); | |
21 | let ret = unsafe { | |
60c5eb7d XL |
22 | c::BCryptGenRandom( |
23 | ptr::null_mut(), | |
24 | &mut v as *mut _ as *mut u8, | |
25 | mem::size_of_val(&v) as c::ULONG, | |
26 | c::BCRYPT_USE_SYSTEM_PREFERRED_RNG, | |
27 | ) | |
416331ca XL |
28 | }; |
29 | if ret != 0 { | |
60c5eb7d | 30 | panic!("couldn't generate random bytes: {}", io::Error::last_os_error()); |
416331ca | 31 | } |
60c5eb7d | 32 | return v; |
416331ca | 33 | } |