diff --git a/sasl/Cargo.toml b/sasl/Cargo.toml index 957bcf15..c94be0c9 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 860e441d..eddc2f42 100644 --- a/sasl/src/common/scram.rs +++ b/sasl/src/common/scram.rs @@ -1,9 +1,6 @@ +use getrandom::{getrandom, Error as RngError}; use hmac::{Hmac, Mac}; use pbkdf2::pbkdf2; -use rand_os::{ - rand_core::{Error as RngError, RngCore}, - OsRng, -}; use sha1::{Digest, Sha1 as Sha1_hash}; use sha2::Sha256 as Sha256_hash; @@ -16,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 b5287073..eb885909 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)]