Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions implants/lib/eldritch/src/random/string_impl.rs
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
use anyhow::Result;
use rand::distributions::{Alphanumeric, DistString, Distribution, Uniform};
use rand_chacha::rand_core::SeedableRng;

pub fn string(length: u64, charset_opt: Option<String>) -> Result<String> {
let mut rng = rand_chacha::ChaCha20Rng::from_entropy();
let res = match charset_opt {
Some(charset) => {
let strlen = charset.chars().count();
let rand_dist = Uniform::from(0..strlen);
let mut rng = rand::thread_rng();
let mut s = "".to_string();
for _ in 0..length {
let index = rand_dist.sample(&mut rng);
s.push(charset.chars().nth(index).unwrap());
}
s
}
None => Alphanumeric.sample_string(&mut rand::thread_rng(), length as usize),
None => Alphanumeric.sample_string(&mut rng, length as usize),
};

Ok(res)
Expand Down