aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2022-10-12 23:00:01 +0200
committerAndreas Grois <andi@grois.info>2022-10-12 23:00:01 +0200
commit584b82f7b53ca72fb6783d79b4eba03a6eec1730 (patch)
tree1f5f63d6eea214eb0793379cd39a99358224b92b /tests
parent7477436aa31c4d136d1fb565e6273faec64e7ec7 (diff)
Add more password generation integration tests.
A single test for each generation algorithm, and tests for prefix/suffix handling if there isn't enough space.
Diffstat (limited to 'tests')
-rw-r--r--tests/password_generation.rs251
1 files changed, 251 insertions, 0 deletions
diff --git a/tests/password_generation.rs b/tests/password_generation.rs
index a8618a2..e559ea5 100644
--- a/tests/password_generation.rs
+++ b/tests/password_generation.rs
@@ -170,4 +170,255 @@ fn v06_yeet_bytes_hmac() {
).unwrap();
let result = pwm.generate("€äß".to_owned(), "password".to_owned()).unwrap();
assert_eq!(result, "28e1392052364d34c7e42e2711ccdd62c67a0a30dbf568a");
+}
+
+#[test]
+fn test_each_algo_md4(){
+ let pwm = Pwm::new(
+ HashAlgorithm::Md4,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "preBhaY7RkI3FU2Dd1gGbkHGXHcaS9Rla5yOyBsxtRhYjUV4CoEKST1N73Ipmsuf");
+}
+#[test]
+fn test_each_algo_hmac_md4(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacMd4,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "preCWxYmOtw9SouPQCHRRxLWODlFQ5LFitOpYMLHdnELniLHtQpdH5U2eOAOHsuf");
+}
+
+#[test]
+fn test_each_algo_md5(){
+ let pwm = Pwm::new(
+ HashAlgorithm::Md5,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "preDPeKYAEZMwmB99f7i48vWApmx8ZLbz46s2nyG6KNO00G4nEElILxWAtGLGsuf");
+}
+
+#[test]
+fn test_each_algo_hmac_md5(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacMd5,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "preGWR5UvFWn69uJQqedOi07JErUQfxJLLB3ZlLPjltwUI0HFDoN6p5xhGdd5suf");
+}
+
+#[test]
+fn test_each_algo_md5_v06(){
+ let pwm = Pwm::new(
+ HashAlgorithm::Md5Version06,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "pred554290760c59fd928b7aae270c31fdbb8857442f34d92cdaca38fcfc0suf");
+}
+
+#[test]
+fn test_each_algo_hmac_md5_v06(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacMd5Version06,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "pread606e84133024f01831a2ce2f6728654bca7c4dd8098ce2e6f75693d2suf");
+}
+
+#[test]
+fn test_each_algo_sha1(){
+ let pwm = Pwm::new(
+ HashAlgorithm::Sha1,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "preWiv8G0J7zvTurM7Mwjy7LeXKBfbJCqJtP6EOAR8dhgF8dFh6h3OCUybzwusuf");
+}
+
+#[test]
+fn test_each_algo_hmac_sha1(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacSha1,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "prekLwEUc8ccgo6cK6nct1E58HZu3x5q0yCN8HHLVMx0QzjKMAfHCMyGeZxFEsuf");
+}
+
+#[test]
+fn test_each_algo_sha256(){
+ let pwm = Pwm::new(
+ HashAlgorithm::Sha256,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "pregtXH0tXq1nKXH6adaYb9dtXgCAFl2cqCPMQW3E7EeDggB5Oft4HaNdq5uRsuf");
+}
+
+#[test]
+fn test_each_algo_hmac_sha256(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacSha256,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "pre5oyv5RXFzY0NiZF4b5JWQj5RUtotkI5dbJOeRJmSjpiYllu5ZZ8FXZqyY4suf");
+}
+
+#[test]
+fn test_each_algo_ripemd_160(){
+ let pwm = Pwm::new(
+ HashAlgorithm::Ripemd160,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "preFJeYiiAXx8Aa1Fhvyy0ffw7D9AMU2qKLg5BBjwZxyT6rsbHctS1Yv1PhGjsuf");
+}
+
+#[test]
+fn test_each_algo_hmac_ripemd_160(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacRipemd160,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 64,
+ "pre",
+ "suf"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "preZ1zVB4UtRfvu6PhBvMPTkmAbX9WZ6Xzqb20OKFmKrFMfyF2eB4ImF2fhmWsuf");
+}
+
+#[test]
+fn test_suffix_with_insufficient_length(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacRipemd160,
+ passwordmaker_rs::UseLeetWhenGenerating::Before { level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 5,
+ "pre",
+ "suffix"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "suffi");
+}
+
+#[test]
+fn test_suffix_with_insufficient_length_with_post_leet(){
+ let pwm = Pwm::new(
+ HashAlgorithm::HmacRipemd160,
+ passwordmaker_rs::UseLeetWhenGenerating::BeforeAndAfter{ level: LeetLevel::Nine },
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "max_mustermann",
+ "modification",
+ 5,
+ "pre",
+ "suffix"
+ ).unwrap();
+ let result = pwm.generate(
+ ".0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789öä@€Whatever".to_owned(),
+ "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".to_owned()).unwrap();
+ assert_eq!(result, "suffi");
} \ No newline at end of file