Deleted Added
full compact
26c26
< * $FreeBSD: head/usr.sbin/ppp/radius.c 96582 2002-05-14 12:55:39Z brian $
---
> * $FreeBSD: head/usr.sbin/ppp/radius.c 96730 2002-05-16 13:34:20Z brian $
93c93
< struct mschap_request {
---
> struct mschap_response {
98a99,106
>
> struct mschap2_response {
> u_char ident;
> u_char flags;
> u_char pchallenge[16];
> u_char reserved[8];
> u_char response[24];
> };
309a318,329
>
> case RAD_MICROSOFT_MS_CHAP2_SUCCESS:
> free(r->msrepstr);
> if ((r->msrepstr = rad_cvt_string(data, len)) == NULL) {
> log_Printf(LogERROR, "rad_cvt_string: %s\n",
> rad_strerror(r->cx.rad));
> auth_Failure(r->cx.auth);
> rad_close(r->cx.rad);
> return;
> }
> log_Printf(LogPHASE, " MS-CHAP2-Success \"%s\"\n", r->msrepstr);
> break;
443a464
> r->msrepstr = NULL;
461a483,484
> free(r->msrepstr);
> r->msrepstr = NULL;
520c543
< void
---
> int
522c545,546
< const char *key, int klen, const char *challenge, int clen)
---
> const char *key, int klen, const char *nchallenge,
> int nclen, const char *pchallenge, int pclen)
530c554,555
< struct mschap_request msreq;
---
> struct mschap_response msresp;
> struct mschap2_response msresp2;
534c559
< return;
---
> return 0;
541c566
< return;
---
> return 1;
547c572
< return;
---
> return 0;
553c578
< return;
---
> return 0;
559c584
< return;
---
> return 0;
567c592
< return;
---
> return 0;
577c602
< return;
---
> return 0;
585c610
< rad_put_attr(r->cx.rad, RAD_CHAP_CHALLENGE, challenge, clen) != 0) {
---
> rad_put_attr(r->cx.rad, RAD_CHAP_CHALLENGE, nchallenge, nclen) != 0) {
589c614
< return;
---
> return 0;
596c621
< log_Printf(LogERROR, "CHAP80: Unrecognised length %d\n", klen);
---
> log_Printf(LogERROR, "CHAP80: Unrecognised key length %d\n", klen);
598c623
< return;
---
> return 0;
599a625
>
601,605c627,631
< RAD_MICROSOFT_MS_CHAP_CHALLENGE, challenge, clen);
< msreq.ident = *key;
< msreq.flags = 0x01;
< memcpy(msreq.lm_response, key + 1, 24);
< memcpy(msreq.nt_response, key + 25, 24);
---
> RAD_MICROSOFT_MS_CHAP_CHALLENGE, nchallenge, nclen);
> msresp.ident = *key;
> msresp.flags = 0x01;
> memcpy(msresp.lm_response, key + 1, 24);
> memcpy(msresp.nt_response, key + 25, 24);
607c633,634
< RAD_MICROSOFT_MS_CHAP_RESPONSE, &msreq, 50);
---
> RAD_MICROSOFT_MS_CHAP_RESPONSE, &msresp,
> sizeof msresp);
610a638,661
> if (klen != 50) {
> log_Printf(LogERROR, "CHAP81: Unrecognised key length %d\n", klen);
> rad_close(r->cx.rad);
> return 0;
> }
>
> if (pclen != sizeof msresp2.pchallenge) {
> log_Printf(LogERROR, "CHAP81: Unrecognised peer challenge length %d\n",
> pclen);
> rad_close(r->cx.rad);
> return 0;
> }
>
> rad_put_vendor_attr(r->cx.rad, RAD_VENDOR_MICROSOFT,
> RAD_MICROSOFT_MS_CHAP_CHALLENGE, nchallenge, nclen);
> msresp2.ident = *key;
> msresp2.flags = 0x00;
> memcpy(msresp2.response, key + 25, 24);
> memset(msresp2.reserved, '\0', sizeof msresp2.reserved);
> memcpy(msresp2.pchallenge, pchallenge, pclen);
> rad_put_vendor_attr(r->cx.rad, RAD_VENDOR_MICROSOFT,
> RAD_MICROSOFT_MS_CHAP2_RESPONSE, &msresp2,
> sizeof msresp2);
> break;
616c667
< return;
---
> return 0;
629c680
< return;
---
> return 0;
636c687
< return;
---
> return 0;
653a705,706
>
> return 1;
806a860,861
> prompt_Printf(p, " MS-CHAP2-Response: %s\n",
> r->msrepstr ? r->msrepstr : "");