X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=blobdiff_plain;f=src%2Futil%2Fcramtest.pl;h=48f989a0cd7c98df4b6e6bca884df76abb003a87;hp=87b3eb451699c7841311bf792ea98f82b116ad65;hb=accf9211ea33262b8865805a4f61155f26320444;hpb=059ec3d9952740285fb1ebf47961b8aca2eb1b4a;ds=inline diff --git a/src/util/cramtest.pl b/src/util/cramtest.pl index 87b3eb451..48f989a0c 100755 --- a/src/util/cramtest.pl +++ b/src/util/cramtest.pl @@ -1,10 +1,9 @@ #!/usr/bin/perl -# $Cambridge: exim/src/util/cramtest.pl,v 1.1 2004/10/07 10:39:03 ph10 Exp $ -# This script is contributed by Vadim Vygonets to aid in debugging CRAM-MD5 -# authentication. +# This script is contributed by Vadim Vygonets to aid in debugging CRAM-MD5 +# authentication. -# A patch was contributed by Jon Warbrick to upgrade it to use the Digest::MD5 +# A patch was contributed by Jon Warbrick to upgrade it to use the Digest::MD5 # module instead of the deprecated MD5 module. # The script prompts for three data values: a user name, a password, and the @@ -22,11 +21,13 @@ # Copyright (c) 2002 -# Vadim Vygonets . All rights reserved. +# Vadim Vygonets . All rights reserved. # Public domain is OK with me. +BEGIN { pop @INC if $INC[-1] eq '.' }; + use MIME::Base64; -use DIGEST::MD5; +use Digest::MD5; print "User: "; chop($user = <>); @@ -38,15 +39,15 @@ $chal =~ s/^334 //; $context = new Digest::MD5; if (length($passwd) > 64) { - $context->add($passwd); - $passwd = $context->digest(); - $context->reset(); + $context->add($passwd); + $passwd = $context->digest(); + $context->reset(); } @passwd = unpack("C*", pack("a64", $passwd)); for ($i = 0; $i < 64; $i++) { - $pass_ipad[$i] = $passwd[$i] ^ 0x36; - $pass_opad[$i] = $passwd[$i] ^ 0x5C; + $pass_ipad[$i] = $passwd[$i] ^ 0x36; + $pass_opad[$i] = $passwd[$i] ^ 0x5C; } $context->add(pack("C64", @pass_ipad), decode_base64($chal)); $digest = $context->digest();