diff --git a/sasl/Cargo.toml b/sasl/Cargo.toml index 957bcf1..c94be0c 100644 --- a/sasl/Cargo.toml +++ b/sasl/Cargo.toml @@ -16,11 +16,11 @@ gitlab = { repository = "lumi/sasl-rs" } [features] default = ["scram"] -scram = ["base64", "rand_os", "sha-1", "sha2", "hmac", "pbkdf2"] +scram = ["base64", "getrandom", "sha-1", "sha2", "hmac", "pbkdf2"] [dependencies] -base64 = { version = "0.10", optional = true } -rand_os = { version = "0.1", optional = true } +base64 = { version = "0.12", optional = true } +getrandom = { version = "0.1", optional = true } sha-1 = { version = "0.8", optional = true } sha2 = { version = "0.8", optional = true } hmac = { version = "0.7", optional = true } diff --git a/sasl/src/common/scram.rs b/sasl/src/common/scram.rs index 975c95b..499eebd 100644 --- a/sasl/src/common/scram.rs +++ b/sasl/src/common/scram.rs @@ -1,4 +1,4 @@ -use rand_os::{OsRng, rand_core::{RngCore, Error as RngError}}; +use getrandom::{getrandom, Error as RngError}; use sha1::{Sha1 as Sha1_hash, Digest}; use sha2::Sha256 as Sha256_hash; use hmac::{Hmac, Mac}; @@ -13,8 +13,7 @@ use base64; /// Generate a nonce for SCRAM authentication. pub fn generate_nonce() -> Result { let mut data = [0u8; 32]; - let mut rng = OsRng::new()?; - rng.fill_bytes(&mut data); + getrandom(&mut data)?; Ok(base64::encode(&data)) } diff --git a/sasl/src/error.rs b/sasl/src/error.rs index b528707..eb88590 100644 --- a/sasl/src/error.rs +++ b/sasl/src/error.rs @@ -1,5 +1,5 @@ #[cfg(feature = "scram")] -use rand_os::rand_core::Error as RngError; +use getrandom::Error as RngError; /// A wrapper enum for things that could go wrong in this crate. #[derive(Debug)]