diff --git a/tools/test.pl b/tools/test.pl index 8d12021af..95cb12e0c 100755 --- a/tools/test.pl +++ b/tools/test.pl @@ -203,18 +203,21 @@ sub verify } open (IN, '<', $cracks_file) or die "$cracks_file: $!\n"; - open (OUT, '>', $out_file ) or die "$out_file: $!\n"; + open (OUT, '>', $out_file) or die "$out_file: $!\n"; while (my $line = ) { $line =~ s/\n$//; $line =~ s/\r$//; - my $hash = module_verify_hash ($line); + my ($hash, $word) = module_verify_hash ($line); # possible if the hash:password pair does not match next unless defined $hash; + # check if the crack is okay + next unless $line eq ($hash . ":" . $word); + # possible if the hash is in cracksfile, but not in hashfile next unless is_in_array ($hash, \@hashlist); diff --git a/tools/test_modules/m00000.pm b/tools/test_modules/m00000.pm index df6e17801..9528e6a76 100644 --- a/tools/test_modules/m00000.pm +++ b/tools/test_modules/m00000.pm @@ -32,9 +32,11 @@ sub module_verify_hash return unless defined $hash; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word); + my $new_hash = module_generate_hash ($word_packed); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00010.pm b/tools/test_modules/m00010.pm index e1ae3fec6..23261eaf0 100644 --- a/tools/test_modules/m00010.pm +++ b/tools/test_modules/m00010.pm @@ -34,9 +34,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00011.pm b/tools/test_modules/m00011.pm index 02f12e34c..6c413dad2 100644 --- a/tools/test_modules/m00011.pm +++ b/tools/test_modules/m00011.pm @@ -34,9 +34,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00012.pm b/tools/test_modules/m00012.pm index e1ae3fec6..23261eaf0 100644 --- a/tools/test_modules/m00012.pm +++ b/tools/test_modules/m00012.pm @@ -34,9 +34,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00020.pm b/tools/test_modules/m00020.pm index c107cd10f..c230400ba 100644 --- a/tools/test_modules/m00020.pm +++ b/tools/test_modules/m00020.pm @@ -34,9 +34,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00021.pm b/tools/test_modules/m00021.pm index 7f04df9f5..b2a6bc57f 100644 --- a/tools/test_modules/m00021.pm +++ b/tools/test_modules/m00021.pm @@ -34,9 +34,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00023.pm b/tools/test_modules/m00023.pm index b6acde6cc..c99a74870 100644 --- a/tools/test_modules/m00023.pm +++ b/tools/test_modules/m00023.pm @@ -37,9 +37,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00050.pm b/tools/test_modules/m00050.pm index 62980eb0c..fc924068d 100644 --- a/tools/test_modules/m00050.pm +++ b/tools/test_modules/m00050.pm @@ -35,9 +35,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00060.pm b/tools/test_modules/m00060.pm index daa23069f..1042e0f3e 100644 --- a/tools/test_modules/m00060.pm +++ b/tools/test_modules/m00060.pm @@ -35,9 +35,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00100.pm b/tools/test_modules/m00100.pm index 41a74c6fc..cc0fd533b 100644 --- a/tools/test_modules/m00100.pm +++ b/tools/test_modules/m00100.pm @@ -32,9 +32,11 @@ sub module_verify_hash return unless defined $hash; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word); + my $new_hash = module_generate_hash ($word_packed); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00110.pm b/tools/test_modules/m00110.pm index 70173b8af..a19451847 100644 --- a/tools/test_modules/m00110.pm +++ b/tools/test_modules/m00110.pm @@ -34,9 +34,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m00120.pm b/tools/test_modules/m00120.pm index fff2a6b8b..7c35588ff 100644 --- a/tools/test_modules/m00120.pm +++ b/tools/test_modules/m00120.pm @@ -34,9 +34,11 @@ sub module_verify_hash return unless defined $salt; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m01000.pm b/tools/test_modules/m01000.pm index e3de5007c..b306d3ce6 100644 --- a/tools/test_modules/m01000.pm +++ b/tools/test_modules/m01000.pm @@ -31,9 +31,11 @@ sub module_verify_hash return unless defined $hash; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word); + my $new_hash = module_generate_hash ($word_packed); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m01500.pm b/tools/test_modules/m01500.pm index 074b76bdb..c81f65a8f 100644 --- a/tools/test_modules/m01500.pm +++ b/tools/test_modules/m01500.pm @@ -29,11 +29,13 @@ sub module_verify_hash return unless defined $hash; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); my $salt = substr ($hash, 0, 2); - return module_generate_hash ($word, $salt); + my $new_hash = module_generate_hash ($word_packed, $salt); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m05600.pm b/tools/test_modules/m05600.pm index 129ab2e4f..cc9d3b7c9 100644 --- a/tools/test_modules/m05600.pm +++ b/tools/test_modules/m05600.pm @@ -66,9 +66,9 @@ sub module_verify_hash $cli_ch = substr ($line, $index2 + 3 + 16 + 32, $index3 - $index2 - 3 - 16 - 32); $word = substr ($line, $index3 + 1); - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - my $new_hash = module_generate_hash ($word, $user, $domain, $srv_ch, $cli_ch); + my $new_hash = module_generate_hash ($word_packed_packed, $user, $domain, $srv_ch, $cli_ch); # resolve lowercase/uppercase ambiguity in the username # this will also guarantee a match with the preprocessed hashlist @@ -77,7 +77,7 @@ sub module_verify_hash return unless $new_hash eq $hash; - return $new_hash; + return ($new_hash, $word); } # algorithm is case-insensitive in regard to usernames diff --git a/tools/test_modules/m18400.pm b/tools/test_modules/m18400.pm index 48d76bc59..672dbf2a4 100644 --- a/tools/test_modules/m18400.pm +++ b/tools/test_modules/m18400.pm @@ -54,7 +54,7 @@ sub module_verify_hash return unless defined $hash; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); # tokenize my @data = split ('\*', $hash); @@ -102,7 +102,9 @@ sub module_verify_hash my $b_plain = $cbc->decrypt ($b_cipher, $key, $b_iv); my $plain = unpack ('H*', $b_plain); - return module_generate_hash ($word, $salt, $iter, $iv, $plain); + my $new_hash = module_generate_hash ($word_packed_packed, $salt, $iter, $iv, $plain); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m18500.pm b/tools/test_modules/m18500.pm index 704b2d093..f6b02a8b2 100644 --- a/tools/test_modules/m18500.pm +++ b/tools/test_modules/m18500.pm @@ -31,9 +31,11 @@ sub module_verify_hash return unless defined $hash; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); - return module_generate_hash ($word); + my $new_hash = module_generate_hash ($word_packed); + + return ($new_hash, $word); } 1; diff --git a/tools/test_modules/m18600.pm b/tools/test_modules/m18600.pm index 5a7798f11..a9f718725 100644 --- a/tools/test_modules/m18600.pm +++ b/tools/test_modules/m18600.pm @@ -67,7 +67,7 @@ sub module_verify_hash return unless defined $hash; return unless defined $word; - $word = pack_if_HEX_notation ($word); + my $word_packed = pack_if_HEX_notation ($word); # tokenize my @data = split ('\*', $hash); @@ -128,7 +128,9 @@ sub module_verify_hash my $plain = unpack ('H*', $b_plain); - return module_generate_hash ($word, $salt, $iter, $iv, $plain); + my $new_hash = module_generate_hash ($word_packed_packed, $salt, $iter, $iv, $plain); + + return ($new_hash, $word); } 1;