diff --git a/cryptography/src/passwords.rs b/cryptography/src/passwords.rs index a93fe1d..4ca55e2 100644 --- a/cryptography/src/passwords.rs +++ b/cryptography/src/passwords.rs @@ -58,12 +58,11 @@ pub fn generate_passwords( #[inline] pub fn check_master_pass(password: &str) -> bool { - if password.chars().count() < 8 { - return false; - } - + let mut count = 0; + let mut chars = password.chars(); let mut flags = PasswordFlags::empty(); - for char in password.chars() { + for char in &mut chars { + count += 1; if char.is_lowercase() { flags |= PasswordFlags::LOWERCASE } else if char.is_uppercase() { @@ -75,7 +74,8 @@ pub fn check_master_pass(password: &str) -> bool { } if flags.is_all() { - return true; + count += chars.count(); + return count >= 8; } } false