The DIGEST-MD5 mechanism in Authen-SASL 2.06 seems slightly broken, using
either perl 5.8.0 or perl 5.8.1.
I am told by our SASL guru that DIGEST-MD5 is a multi-step procedure, and it
looks like the client_step code in DIGEST_MD5.pm isn't aware of this and
tries to use stuff in step 2 that only exists in step 1. Or something like
that.
Essentially I log this:
Net::LDAP=HASH(0x8610f0) received:
0000 54: SEQUENCE {
0002 1: INTEGER = 2
0005 49: [APPLICATION 1] {
0007 1: ENUM = 14
000A 0: STRING = ''
000C 0: STRING = ''
000E 40: [CONTEXT 7]
0010 : 72 73 70 61 75 74 68 3D 66 31 36 38 64 35 36 30
rspauth=f168d560
0020 : 63 65 33 37 36 33 39 34 61 37 36 38 64 31 63 38
ce376394a768d1c8
0030 : 36 62 62 30 63 30 34 31 __ __ __ __ __ __ __ __ 6bb0c041
0038 : }
0038 : }
And directly afterwards this happens:
Use of uninitialized value in hash element at
/Library/Perl/5.8.1/Authen/SASL/Perl/DIGEST_MD5.pm line 54, <DATA> line 283.
Use of uninitialized value in hash element at
/Library/Perl/5.8.1/Authen/SASL/Perl/DIGEST_MD5.pm line 54, <DATA> line 283.
Use of uninitialized value in join or string at
/Library/Perl/5.8.1/Authen/SASL/Perl/DIGEST_MD5.pm line 75, <DATA> line 283.
Use of uninitialized value in join or string at
/Library/Perl/5.8.1/Authen/SASL/Perl/DIGEST_MD5.pm line 75, <DATA> line 283.
Use of uninitialized value in join or string at
/Library/Perl/5.8.1/Authen/SASL/Perl/DIGEST_MD5.pm line 85, <DATA> line 283.
Use of uninitialized value in join or string at
/Library/Perl/5.8.1/Authen/SASL/Perl/DIGEST_MD5.pm line 85, <DATA> line 283.
Net::LDAP=HASH(0x8df088) sending:
0000 183: SEQUENCE {
0003 1: INTEGER = 3
0006 177: [APPLICATION 0] {
0009 1: INTEGER = 3
000C 0: STRING = ''
000E 169: [CONTEXT 3] {
0011 10: STRING = 'DIGEST-MD5'
001D 154: STRING =
'cnonce="18b4209f941bebf7cc3e646c439331e6",digest-uri="ldap/hathi.isode.net"
,nc=00000001,response=1983858bf2cecc6b87762b7c11416988,username="[EMAIL PROTECTED]
et"'
00BA : }
00BA : }
00BA : }
Net::LDAP=HASH(0x8df088) received:
0000 12: SEQUENCE {
0002 1: INTEGER = 3
0005 7: [APPLICATION 1] {
0007 1: ENUM = 0
000A 0: STRING = ''
000C 0: STRING = ''
000E : }
000E : }
The bind succeeds, so the warnings are just an irritation. Is this a known
issue?
Cheers,
Chris