1995-01-31 06:29:58 +00:00
|
|
|
/*
|
|
|
|
* Written by Toshiharu OHNO (tony-o@iij.ad.jp)
|
|
|
|
*
|
|
|
|
* Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms are permitted
|
|
|
|
* provided that the above copyright notice and this paragraph are
|
|
|
|
* duplicated in all such forms and that any documentation,
|
|
|
|
* advertising materials, and other materials related to such
|
|
|
|
* distribution and use acknowledge that the software was developed
|
|
|
|
* by the Internet Initiative Japan. The name of the
|
|
|
|
* IIJ may not be used to endorse or promote products derived
|
|
|
|
* from this software without specific prior written permission.
|
|
|
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
|
|
|
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
|
|
|
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
*
|
1999-08-28 01:35:59 +00:00
|
|
|
* $FreeBSD$
|
1995-01-31 06:29:58 +00:00
|
|
|
*
|
|
|
|
* TODO:
|
|
|
|
*/
|
|
|
|
|
1998-05-21 21:49:08 +00:00
|
|
|
struct mbuf;
|
|
|
|
struct physical;
|
|
|
|
|
1995-01-31 06:29:58 +00:00
|
|
|
#define CHAP_CHALLENGE 1
|
|
|
|
#define CHAP_RESPONSE 2
|
|
|
|
#define CHAP_SUCCESS 3
|
|
|
|
#define CHAP_FAILURE 4
|
1997-10-26 01:04:02 +00:00
|
|
|
|
1998-05-21 21:49:08 +00:00
|
|
|
struct chap {
|
2000-03-14 01:46:09 +00:00
|
|
|
struct fdescriptor desc;
|
1999-02-11 10:14:08 +00:00
|
|
|
struct {
|
|
|
|
pid_t pid;
|
|
|
|
int fd;
|
|
|
|
struct {
|
|
|
|
char ptr[AUTHLEN * 2 + 3]; /* Allow for \r\n at the end (- NUL) */
|
|
|
|
int len;
|
|
|
|
} buf;
|
|
|
|
} child;
|
1998-05-21 21:49:08 +00:00
|
|
|
struct authinfo auth;
|
1999-04-21 08:03:51 +00:00
|
|
|
struct {
|
|
|
|
u_char local[CHAPCHALLENGELEN + AUTHLEN]; /* I invented this one */
|
|
|
|
u_char peer[CHAPCHALLENGELEN + AUTHLEN]; /* Peer gave us this one */
|
|
|
|
} challenge;
|
1999-02-18 19:45:06 +00:00
|
|
|
#ifdef HAVE_DES
|
1999-02-18 00:52:15 +00:00
|
|
|
unsigned NTRespSent : 1; /* Our last response */
|
|
|
|
int peertries;
|
1999-02-18 19:45:06 +00:00
|
|
|
#endif
|
1998-05-21 21:49:08 +00:00
|
|
|
};
|
|
|
|
|
1999-02-11 10:14:08 +00:00
|
|
|
#define descriptor2chap(d) \
|
|
|
|
((d)->type == CHAP_DESCRIPTOR ? (struct chap *)(d) : NULL)
|
|
|
|
#define auth2chap(a) (struct chap *)((char *)a - (int)&((struct chap *)0)->auth)
|
1997-10-26 12:42:13 +00:00
|
|
|
|
1999-02-06 02:54:47 +00:00
|
|
|
extern void chap_Init(struct chap *, struct physical *);
|
1999-02-11 10:14:08 +00:00
|
|
|
extern void chap_ReInit(struct chap *);
|
1999-05-08 11:07:56 +00:00
|
|
|
extern struct mbuf *chap_Input(struct bundle *, struct link *, struct mbuf *);
|