use crate::tools::intutils::qrc_intutils_min;
#[cfg(feature = "std")]
use rand::{RngCore, rngs::OsRng};
#[cfg(feature = "no_std")]
use alloc::vec;
const QRC_OSRNG_SEED_MAX: usize = 1024000;
#[cfg(feature = "std")]
pub fn qrc_osrng_generate(output: &mut [u8], length: usize) -> bool {
let key = &mut vec![0u8; qrc_intutils_min(length, QRC_OSRNG_SEED_MAX)];
if OsRng.try_fill_bytes(key).is_err() {
return false;
};
for i in 0..qrc_intutils_min(length, QRC_OSRNG_SEED_MAX) {
output[i] = key[i];
}
return true;
}
#[cfg(feature = "no_std")]
pub fn qrc_osrng_generate(output: &mut [u8], length: usize) -> bool {
let key = &mut vec![0u8; qrc_intutils_min(length, QRC_OSRNG_SEED_MAX)];
for i in 0..qrc_intutils_min(length, QRC_OSRNG_SEED_MAX) {
output[i] = key[i];
}
return true;
}