aboutsummaryrefslogtreecommitdiff
path: root/src/passwordmaker
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2022-10-09 15:10:47 +0200
committerAndreas Grois <andi@grois.info>2022-10-09 15:10:47 +0200
commit5ea2a529887caee8bc9d13f860ca66b97ddd8844 (patch)
treefdead640af91ac5b6c85e81e5424acc8f3921946 /src/passwordmaker
parentd6d345207530ec3232d937aeee3b0c9255b33129 (diff)
First draft of docs.
Diffstat (limited to 'src/passwordmaker')
-rw-r--r--src/passwordmaker/leet.rs6
-rw-r--r--src/passwordmaker/mod.rs11
2 files changed, 8 insertions, 9 deletions
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{