use proper rand
This commit is contained in:
parent
4abe8a53df
commit
15d3ab79bd
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -147,6 +147,7 @@ dependencies = [
|
|||||||
"prost",
|
"prost",
|
||||||
"prost-build",
|
"prost-build",
|
||||||
"prost-types",
|
"prost-types",
|
||||||
|
"rand 0.9.2",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"rocket",
|
"rocket",
|
||||||
"rocket_prost_responder_derive",
|
"rocket_prost_responder_derive",
|
||||||
|
|||||||
@ -19,6 +19,7 @@ serde_json = "1.0"
|
|||||||
reqwest = { version = "0.13", features = ["json"] }
|
reqwest = { version = "0.13", features = ["json"] }
|
||||||
aes-gcm = "0.10"
|
aes-gcm = "0.10"
|
||||||
base64 = "0.22"
|
base64 = "0.22"
|
||||||
|
rand = "0.9.2"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
prost-build = "0.14"
|
prost-build = "0.14"
|
||||||
|
|||||||
@ -185,7 +185,7 @@ impl AuthStorage {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let nonce_bytes: [u8; NONCE_SIZE] = rand::thread_rng().generate_bytes();
|
let nonce_bytes: [u8; NONCE_SIZE] = rand::random();
|
||||||
let nonce = Nonce::from_slice(&nonce_bytes);
|
let nonce = Nonce::from_slice(&nonce_bytes);
|
||||||
let ciphertext = match self.cipher.encrypt(nonce, plaintext.as_ref()) {
|
let ciphertext = match self.cipher.encrypt(nonce, plaintext.as_ref()) {
|
||||||
Ok(encrypted) => encrypted,
|
Ok(encrypted) => encrypted,
|
||||||
@ -225,37 +225,3 @@ impl AuthStorage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mod rand {
|
|
||||||
use std::cell::Cell;
|
|
||||||
|
|
||||||
thread_local! {
|
|
||||||
static STATE: Cell<u64> = Cell::new(
|
|
||||||
std::time::SystemTime::now()
|
|
||||||
.duration_since(std::time::UNIX_EPOCH)
|
|
||||||
.unwrap_or_default()
|
|
||||||
.as_nanos() as u64
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct ThreadRng;
|
|
||||||
|
|
||||||
pub fn thread_rng() -> ThreadRng {
|
|
||||||
ThreadRng
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ThreadRng {
|
|
||||||
pub fn generate_bytes<const N: usize>(&mut self) -> [u8; N] {
|
|
||||||
let mut result = [0u8; N];
|
|
||||||
STATE.with(|state| {
|
|
||||||
let mut s = state.get();
|
|
||||||
for byte in result.iter_mut() {
|
|
||||||
s = s.wrapping_mul(1103515245).wrapping_add(12345);
|
|
||||||
*byte = (s >> (s % 8)) as u8;
|
|
||||||
}
|
|
||||||
state.set(s);
|
|
||||||
});
|
|
||||||
result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user