Subject: bin/6035: pppd(8) will not speak to NT RAS
To: None <gnats-bugs@gnats.netbsd.org>
From: Eric S. Hvozda <hvozda@ra.ack.org>
List: netbsd-bugs
Date: 08/24/1998 23:39:50
>Number:         6035
>Category:       bin
>Synopsis:       pppd(8) will never authenicate to a NT RAS
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    bin-bug-people (Utility Bug People)
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 24 20:50:01 1998
>Last-Modified:
>Originator:     
>Organization:
	Userland debuggers R US (tm)
>Release:        NetBSD-current supped 24Aug98
>Environment:
	
System: NetBSD ra.ack.org 1.3G NetBSD 1.3G (RA-CURRENT) #0: Sun Aug 23 20:53:34 EDT 1998 hvozda@ra.ack.org:/usr/src/sys/arch/i386/compile/RA-CURRENT i386


>Description:
	While Christos put support for Microsoft's chap in our
	pppd implemention, somewhere along the way it got broken.

	More specifically, md4 is broken with respect to what pppd(8)
	expects to happen to allow MSCHAP to function properly.
>How-To-Repeat:
	Install NetBSD-current and build sources from scratch.  Configure
	pppd(8) to speak to a NT RAS and and watch it fail as if you
	have the wrong credentals.

	Verify credentals with Dialup Networking under WinNT or Win95.

	Test our .o files with the test stub provided in README.MSCHAP80
	in the pppd-2.3.4 distribution and watch it fail.

	Attempt to build pppd-2.3.5 and pppd-2.3.4 and watch them
	both fail.

	Test both with the test stub mention above and watch them fail.

	Build pppd-2.3.4 with Eric Young's libdes-3.01 and watch it work.

	Build pppd-2.3.4 with our libdes and watch it work.

	Build pppd-2.3.4 with our libdes and md4 (from our libc)
	and watch it fail.

	Conclude our md4 implention is busted somehow with respect
	to what pppd(8) needs for MSCHAP.

	(1.3.2 also seems to be broken.  When MSCHAP fails on -current
	 pppd(8) dumps core; under 1.3.2 it just fails to authenticate)

>Fix:
	Obtain pppd-2.3.4 and pull md4.c and md4.h into 
	.../src/usr.sbin/pppd/pppd.  Modify Makefile to include
	compilation of md4.c.  Make (you will have to build md4.o
	by hand due to -Werror, but it will work) and install.

	Clearly our md4 implemention needs looked at with respect
	to what pppd(8) needs.  However, since md4 is currently
	integrated into libc, this was a pita and I took the lame
	way out by building pppd in an alternate fashion.

	At least now, we understand where take a closer look...
>Audit-Trail:
>Unformatted: