Switch from the deprecated rand-os crate to getrandom.

Emmanuel Gil Peyrot created

Change summary

sasl/Cargo.toml          | 4 ++--
sasl/src/common/scram.rs | 8 ++------
sasl/src/error.rs        | 2 +-
3 files changed, 5 insertions(+), 9 deletions(-)

Detailed changes

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 }
+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 }

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

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)]