Switch to RustCrypto for pbkdf2.

This commit is contained in:
Emmanuel Gil Peyrot 2019-01-17 23:59:31 +01:00
commit 5892caa4a8
2 changed files with 4 additions and 18 deletions

View file

@ -24,6 +24,7 @@ rand_os = "0.1"
sha-1 = "0.8" sha-1 = "0.8"
sha2 = "0.8" sha2 = "0.8"
hmac = "0.7" hmac = "0.7"
pbkdf2 = { version = "0.3", default-features = false }
[dependencies.openssl] [dependencies.openssl]
version = "0.10.7" version = "0.10.7"

View file

@ -1,6 +1,5 @@
use hmac::{Hmac, Mac}; use hmac::{Hmac, Mac};
use openssl::hash::MessageDigest; use pbkdf2::pbkdf2;
use openssl::pkcs5::pbkdf2_hmac;
use rand_os::{ use rand_os::{
rand_core::{Error as RngError, RngCore}, rand_core::{Error as RngError, RngCore},
OsRng, OsRng,
@ -72,14 +71,7 @@ impl ScramProvider for Sha1 {
match *password { match *password {
Password::Plain(ref plain) => { Password::Plain(ref plain) => {
let mut result = vec![0; 20]; let mut result = vec![0; 20];
pbkdf2_hmac( pbkdf2::<Hmac<Sha1_hash>>(plain.as_bytes(), salt, iterations, &mut result);
plain.as_bytes(),
salt,
iterations,
MessageDigest::sha1(),
&mut result,
)
.unwrap();
Ok(result) Ok(result)
} }
Password::Pbkdf2 { Password::Pbkdf2 {
@ -141,14 +133,7 @@ impl ScramProvider for Sha256 {
match *password { match *password {
Password::Plain(ref plain) => { Password::Plain(ref plain) => {
let mut result = vec![0; 32]; let mut result = vec![0; 32];
pbkdf2_hmac( pbkdf2::<Hmac<Sha256_hash>>(plain.as_bytes(), salt, iterations, &mut result);
plain.as_bytes(),
salt,
iterations,
MessageDigest::sha256(),
&mut result,
)
.unwrap();
Ok(result) Ok(result)
} }
Password::Pbkdf2 { Password::Pbkdf2 {