Added some constants to reduce the amount of magic values
This commit is contained in:
parent
bb89f6d349
commit
c3af7e9a95
@ -5,12 +5,15 @@ use scrypt::{scrypt, Params};
|
|||||||
use sea_orm::ActiveValue::Set;
|
use sea_orm::ActiveValue::Set;
|
||||||
use subtle::ConstantTimeEq;
|
use subtle::ConstantTimeEq;
|
||||||
|
|
||||||
static PARAMS: Lazy<Params> = Lazy::new(|| Params::new(14, 8, 1, 64).unwrap());
|
const HASH_LENGTH: usize = 64;
|
||||||
|
const SALT_LENGTH: usize = 64;
|
||||||
|
|
||||||
|
static PARAMS: Lazy<Params> = Lazy::new(|| Params::new(14, 8, 1, HASH_LENGTH).unwrap());
|
||||||
|
|
||||||
/// Hashes the password with Scrypt with the given salt
|
/// Hashes the password with Scrypt with the given salt
|
||||||
#[inline]
|
#[inline]
|
||||||
fn hash_password(password: &[u8], salt: &[u8]) -> [u8; 64] {
|
fn hash_password(password: &[u8], salt: &[u8]) -> [u8; HASH_LENGTH] {
|
||||||
let mut password_hash = [0; 64];
|
let mut password_hash = [0; HASH_LENGTH];
|
||||||
scrypt(password, salt, &PARAMS, &mut password_hash).unwrap();
|
scrypt(password, salt, &PARAMS, &mut password_hash).unwrap();
|
||||||
password_hash
|
password_hash
|
||||||
}
|
}
|
||||||
@ -36,13 +39,13 @@ impl MasterPassFromUnencryptedExt for master_pass::ActiveModel {
|
|||||||
/// Hashes the password and creates an ActiveModel with all fields set to Set variant
|
/// Hashes the password and creates an ActiveModel with all fields set to Set variant
|
||||||
#[inline]
|
#[inline]
|
||||||
fn from_unencrypted(user_id: u64, password: &str) -> Self {
|
fn from_unencrypted(user_id: u64, password: &str) -> Self {
|
||||||
let mut salt = vec![0; 64];
|
let mut salt = [0; SALT_LENGTH];
|
||||||
OsRng.fill_bytes(&mut salt);
|
OsRng.fill_bytes(&mut salt);
|
||||||
let password_hash = Set(hash_password(password.as_bytes(), &salt).to_vec());
|
let password_hash = hash_password(password.as_bytes(), &salt);
|
||||||
Self {
|
Self {
|
||||||
user_id: Set(user_id),
|
user_id: Set(user_id),
|
||||||
salt: Set(salt),
|
salt: Set(salt.into()),
|
||||||
password_hash,
|
password_hash: Set(password_hash.into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user