@@ -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 }
+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 }
@@ -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<String, RngError> {
let mut data = [0u8; 32];
- let mut rng = OsRng::new()?;
- rng.fill_bytes(&mut data);
+ getrandom(&mut data)?;
Ok(base64::encode(&data))
}
@@ -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)]