diff --git a/sasl/src/common/scram.rs b/sasl/src/common/scram.rs index 652ac0795df24611a6b378412935ae4650fb0089..5747ed1066c515e9c5506b6f42b8a3b7196f0f69 100644 --- a/sasl/src/common/scram.rs +++ b/sasl/src/common/scram.rs @@ -82,19 +82,14 @@ impl ScramProvider for Sha1 { fn hash(data: &[u8]) -> Vec { let hash = Sha1_hash::digest(data); - let mut vec = Vec::with_capacity(Sha1_hash::output_size()); - vec.extend_from_slice(hash.as_slice()); - vec + hash.to_vec() } fn hmac(data: &[u8], key: &[u8]) -> Result, InvalidLength> { type HmacSha1 = Hmac; let mut mac = HmacSha1::new_from_slice(key)?; mac.update(data); - let result = mac.finalize(); - let mut vec = Vec::with_capacity(Sha1_hash::output_size()); - vec.extend_from_slice(result.into_bytes().as_slice()); - Ok(vec) + Ok(mac.finalize().into_bytes().to_vec()) } fn derive(password: &Password, salt: &[u8], iterations: u32) -> Result, DeriveError> { @@ -142,19 +137,14 @@ impl ScramProvider for Sha256 { fn hash(data: &[u8]) -> Vec { let hash = Sha256_hash::digest(data); - let mut vec = Vec::with_capacity(Sha256_hash::output_size()); - vec.extend_from_slice(hash.as_slice()); - vec + hash.to_vec() } fn hmac(data: &[u8], key: &[u8]) -> Result, InvalidLength> { type HmacSha256 = Hmac; let mut mac = HmacSha256::new_from_slice(key)?; mac.update(data); - let result = mac.finalize(); - let mut vec = Vec::with_capacity(Sha256_hash::output_size()); - vec.extend_from_slice(result.into_bytes().as_slice()); - Ok(vec) + Ok(mac.finalize().into_bytes().to_vec()) } fn derive(password: &Password, salt: &[u8], iterations: u32) -> Result, DeriveError> {