Now scrypt params are created once
This commit is contained in:
parent
2f2ab35b2b
commit
e1fb440991
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -466,6 +466,7 @@ dependencies = [
|
||||
"bitflags 2.3.1",
|
||||
"chacha20poly1305",
|
||||
"entity",
|
||||
"once_cell",
|
||||
"pbkdf2",
|
||||
"rand",
|
||||
"scrypt",
|
||||
|
@ -17,3 +17,4 @@ sea-orm = "0.11.3"
|
||||
bitflags = "2.3.1"
|
||||
arrayvec = "0.7.2"
|
||||
subtle = "2.5.0"
|
||||
once_cell = "1.18.0"
|
||||
|
@ -1,15 +1,17 @@
|
||||
use entity::master_pass;
|
||||
use once_cell::sync::Lazy;
|
||||
use rand::{rngs::OsRng, RngCore};
|
||||
use scrypt::{scrypt, Params};
|
||||
use sea_orm::ActiveValue::Set;
|
||||
use subtle::ConstantTimeEq;
|
||||
|
||||
static PARAMS: Lazy<Params> = Lazy::new(|| Params::new(14, 8, 1, 64).unwrap());
|
||||
|
||||
/// Hashes the password with Scrypt with the given salt
|
||||
#[inline]
|
||||
fn hash_password(password: &[u8], salt: &[u8]) -> [u8; 64] {
|
||||
let params = Params::new(14, Params::RECOMMENDED_R, Params::RECOMMENDED_P, 64).unwrap();
|
||||
let mut password_hash = [0; 64];
|
||||
scrypt(password, salt, ¶ms, &mut password_hash).unwrap();
|
||||
scrypt(password, salt, &PARAMS, &mut password_hash).unwrap();
|
||||
password_hash
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user