From 5ea2a529887caee8bc9d13f860ca66b97ddd8844 Mon Sep 17 00:00:00 2001 From: Andreas Grois Date: Sun, 9 Oct 2022 15:10:47 +0200 Subject: First draft of docs. --- src/passwordmaker/leet.rs | 6 +++--- src/passwordmaker/mod.rs | 11 +++++------ 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'src/passwordmaker') diff --git a/src/passwordmaker/leet.rs b/src/passwordmaker/leet.rs index 858b2ad..16f27b8 100644 --- a/src/passwordmaker/leet.rs +++ b/src/passwordmaker/leet.rs @@ -11,7 +11,7 @@ enum CharOrSlice{ impl LeetReplacementTable { /// Gets the appropriate leet replacement table for a given leet level. - pub(crate) fn get(leet_level : &LeetLevel) -> LeetReplacementTable { + pub(crate) fn get(leet_level : LeetLevel) -> LeetReplacementTable { let lookup_table = match leet_level { LeetLevel::One => &["4", "b", "c", "d", "3", "f", "g", "h", "i", "j", "k", "1", "m", "n", "0", "p", "9", "r", "s", "7", "u", "v", "w", "x", "y", "z"], LeetLevel::Two => &["4", "b", "c", "d", "3", "f", "g", "h", "1", "j", "k", "1", "m", "n", "0", "p", "9", "r", "5", "7", "u", "v", "w", "x", "y", "2"], @@ -76,7 +76,7 @@ mod leet_tests{ #[test] fn leet_test_icelandic(){ for leet_level in LeetLevel::iter(){ - let result = LeetReplacementTable::get(&leet_level).leetify(get_icelandic_test_string()); + let result = LeetReplacementTable::get(leet_level).leetify(get_icelandic_test_string()); let expected = get_icelandic_test_result(leet_level); assert_eq!(result, expected); } @@ -92,7 +92,7 @@ mod leet_tests{ #[test] fn leet_test_greek(){ for leet_level in LeetLevel::iter(){ - let result = LeetReplacementTable::get(&leet_level).leetify(get_greek_test_string()); + let result = LeetReplacementTable::get(leet_level).leetify(get_greek_test_string()); let expected = get_greek_test_result(leet_level); assert_eq!(result, expected); } diff --git a/src/passwordmaker/mod.rs b/src/passwordmaker/mod.rs index eb39c9e..ba85623 100644 --- a/src/passwordmaker/mod.rs +++ b/src/passwordmaker/mod.rs @@ -18,18 +18,17 @@ impl<'y, H : super::HasherList> super::PasswordMaker<'y, H>{ characters.graphemes(true).nth(1).is_some() } - pub(super) fn generate_password_verified_input(self) -> String { - let modified_data = self.data + self.username + self.modifier; - let key = self.key; + pub(super) fn generate_password_verified_input(&self, data : String, key : String) -> String { + let modified_data = data + self.username + self.modifier; let get_modified_key = move |i : usize| { if i == 0 {key.clone()} else {key.clone() + "\n" + &i.to_string()}}; //In Passwordmaker Pro, leet is applied on a per-password-part basis. This means that if a password part ends in an upper-case Sigma, //the results would differ if we moved leeting to after all password parts were joined, or worse, did it on a per-character level. //However, this makes the code a lot more complex, as it forces us to create an owned string for each password part before combining. //Therefore, we treat that case special. - match self.post_leet { + match &self.post_leet { None => Self::generate_password_verified_no_post_leet(&modified_data, get_modified_key, &self.assembly_settings, &self.password_part_parameters), - Some(leet_level) => Self::generate_password_verified_with_post_leet(&modified_data, get_modified_key,&self.assembly_settings , &self.password_part_parameters, &leet_level), + Some(leet_level) => Self::generate_password_verified_with_post_leet(&modified_data, get_modified_key,&self.assembly_settings , &self.password_part_parameters, leet_level), } } @@ -247,7 +246,7 @@ pub(super) struct PasswordPartParameters<'a>{ } impl<'a> PasswordPartParameters<'a>{ - pub(super) fn from_public_parameters(hash_algorithm : super::HashAlgorithm, leet : &super::UseLeetWhenGenerating, characters : &'a str) -> Self { + pub(super) fn from_public_parameters(hash_algorithm : super::HashAlgorithm, leet : super::UseLeetWhenGenerating, characters : &'a str) -> Self { use super::UseLeetWhenGenerating; let hash_algorithm = AlgoSelection::from_settings_algorithm(hash_algorithm); PasswordPartParameters{ -- cgit v1.2.3