diff options
author | Andreas Grois <andi@grois.info> | 2022-10-12 23:00:01 +0200 |
---|---|---|
committer | Andreas Grois <andi@grois.info> | 2022-10-12 23:00:01 +0200 |
commit | 584b82f7b53ca72fb6783d79b4eba03a6eec1730 (patch) | |
tree | 1f5f63d6eea214eb0793379cd39a99358224b92b | |
parent | 7477436aa31c4d136d1fb565e6273faec64e7ec7 (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.
-rw-r--r-- | tests/password_generation.rs | 251 |
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 |