Deleted Added
full compact
chap.c (98149) chap.c (98243)
1/*-
2 * Copyright (c) 1996 - 2001 Brian Somers <brian@Awfulhak.org>
3 * based on work by Toshiharu OHNO <tony-o@iij.ad.jp>
4 * Internet Initiative Japan, Inc (IIJ)
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 11 unchanged lines hidden (view full) ---

20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
1/*-
2 * Copyright (c) 1996 - 2001 Brian Somers <brian@Awfulhak.org>
3 * based on work by Toshiharu OHNO <tony-o@iij.ad.jp>
4 * Internet Initiative Japan, Inc (IIJ)
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 11 unchanged lines hidden (view full) ---

20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
28 * $FreeBSD: head/usr.sbin/ppp/chap.c 98149 2002-06-12 21:36:07Z brian $
28 * $FreeBSD: head/usr.sbin/ppp/chap.c 98243 2002-06-15 08:03:30Z brian $
29 */
30
31#include <sys/param.h>
32#include <netinet/in.h>
33#include <netinet/in_systm.h>
34#include <netinet/ip.h>
35#include <sys/socket.h>
36#include <sys/un.h>

--- 175 unchanged lines hidden (view full) ---

212 /* Generate NTRESPONSE to respond on challenge call */
213 GenerateNTResponse(challenge + 1, peerchallenge + 1, name, nlen,
214 expkey, klen * 2, ntresponse);
215
216 /* Generate MPPE MASTERKEY */
217 GetMasterKey(pwdhashhash, ntresponse, MPPE_MasterKey); /* XXX Global ! */
218
219 /* Generate AUTHRESPONSE to verify on auth success */
29 */
30
31#include <sys/param.h>
32#include <netinet/in.h>
33#include <netinet/in_systm.h>
34#include <netinet/ip.h>
35#include <sys/socket.h>
36#include <sys/un.h>

--- 175 unchanged lines hidden (view full) ---

212 /* Generate NTRESPONSE to respond on challenge call */
213 GenerateNTResponse(challenge + 1, peerchallenge + 1, name, nlen,
214 expkey, klen * 2, ntresponse);
215
216 /* Generate MPPE MASTERKEY */
217 GetMasterKey(pwdhashhash, ntresponse, MPPE_MasterKey); /* XXX Global ! */
218
219 /* Generate AUTHRESPONSE to verify on auth success */
220 GenerateAuthenticatorResponse(expkey, klen * 2, ntresponse,
220 GenerateAuthenticatorResponse(expkey, klen * 2, ntresponse,
221 peerchallenge + 1, challenge + 1, name, nlen,
222 authresponse);
223
224 authresponse[CHAP81_AUTHRESPONSE_LEN] = 0;
225
226 memcpy(digest + CHAP81_RESPONSE_LEN, name, nlen);
227 } else
228#endif

--- 371 unchanged lines hidden (view full) ---

600 msg = buf;
601 } else if (authp->physical->link.lcp.want_authtype == 0x81) {
602 int i;
603
604 ptr = buf;
605 ptr += sprintf(buf, "E=691 R=0 C=");
606 for (i=0; i<16; i++)
607 ptr += sprintf(ptr, "%02X", *(auth2chap(authp)->challenge.local+1+i));
221 peerchallenge + 1, challenge + 1, name, nlen,
222 authresponse);
223
224 authresponse[CHAP81_AUTHRESPONSE_LEN] = 0;
225
226 memcpy(digest + CHAP81_RESPONSE_LEN, name, nlen);
227 } else
228#endif

--- 371 unchanged lines hidden (view full) ---

600 msg = buf;
601 } else if (authp->physical->link.lcp.want_authtype == 0x81) {
602 int i;
603
604 ptr = buf;
605 ptr += sprintf(buf, "E=691 R=0 C=");
606 for (i=0; i<16; i++)
607 ptr += sprintf(ptr, "%02X", *(auth2chap(authp)->challenge.local+1+i));
608
608
609 sprintf(ptr, " V=3 M=Invalid!");
610 msg = buf;
611 } else
612#endif
613 msg = "Invalid!!";
614
615 ChapOutput(authp->physical, CHAP_FAILURE, authp->id, msg, strlen(msg) + 1,
616 NULL);

--- 154 unchanged lines hidden (view full) ---

771 if (p->link.lcp.want_authtype == 0x81 && ans[alen] != '\0') {
772 log_Printf(LogWARN, "%s: Compensating for corrupt (Win98/WinME?) "
773 "CHAP81 RESPONSE\n", l->name);
774 ans[alen] = '\0';
775 }
776 ans[alen+1] = '\0';
777 bp = auth_ReadName(&chap->auth, bp, len);
778#ifndef NODES
609 sprintf(ptr, " V=3 M=Invalid!");
610 msg = buf;
611 } else
612#endif
613 msg = "Invalid!!";
614
615 ChapOutput(authp->physical, CHAP_FAILURE, authp->id, msg, strlen(msg) + 1,
616 NULL);

--- 154 unchanged lines hidden (view full) ---

771 if (p->link.lcp.want_authtype == 0x81 && ans[alen] != '\0') {
772 log_Printf(LogWARN, "%s: Compensating for corrupt (Win98/WinME?) "
773 "CHAP81 RESPONSE\n", l->name);
774 ans[alen] = '\0';
775 }
776 ans[alen+1] = '\0';
777 bp = auth_ReadName(&chap->auth, bp, len);
778#ifndef NODES
779 lanman = p->link.lcp.want_authtype == 0x80 &&
779 lanman = p->link.lcp.want_authtype == 0x80 &&
780 alen == 49 && ans[alen] == 0;
781#endif
782 break;
783
784 case CHAP_SUCCESS:
785 case CHAP_FAILURE:
786 /* chap->auth.in.name is already set up at CHALLENGE time */
787 if ((ans = malloc(len + 1)) == NULL) {

--- 137 unchanged lines hidden (view full) ---

925 p->link.lcp.auth_iwait = 0;
926 if (p->link.lcp.auth_ineed == 0) {
927#ifndef NODES
928 if (p->link.lcp.his_authtype == 0x81) {
929 if (strncmp(ans, chap->authresponse, 42)) {
930 datalink_AuthNotOk(p->dl);
931 log_Printf(LogWARN, "CHAP81: AuthenticatorResponse: (%.42s)"
932 " != ans: (%.42s)\n", chap->authresponse, ans);
780 alen == 49 && ans[alen] == 0;
781#endif
782 break;
783
784 case CHAP_SUCCESS:
785 case CHAP_FAILURE:
786 /* chap->auth.in.name is already set up at CHALLENGE time */
787 if ((ans = malloc(len + 1)) == NULL) {

--- 137 unchanged lines hidden (view full) ---

925 p->link.lcp.auth_iwait = 0;
926 if (p->link.lcp.auth_ineed == 0) {
927#ifndef NODES
928 if (p->link.lcp.his_authtype == 0x81) {
929 if (strncmp(ans, chap->authresponse, 42)) {
930 datalink_AuthNotOk(p->dl);
931 log_Printf(LogWARN, "CHAP81: AuthenticatorResponse: (%.42s)"
932 " != ans: (%.42s)\n", chap->authresponse, ans);
933
933
934 } else {
935 /* Successful login */
936 MPPE_MasterKeyValid = 1; /* XXX Global ! */
937 datalink_AuthOk(p->dl);
938 }
939 } else
940#endif
941 /*

--- 19 unchanged lines hidden ---
934 } else {
935 /* Successful login */
936 MPPE_MasterKeyValid = 1; /* XXX Global ! */
937 datalink_AuthOk(p->dl);
938 }
939 } else
940#endif
941 /*

--- 19 unchanged lines hidden ---