xref: /freebsd/usr.sbin/ppp/auth.h (revision 5e3154989731d0f43a0fa0b65f7321264570ba3f)
1b808c756SAtsushi Murai /*
2b808c756SAtsushi Murai  *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
3b808c756SAtsushi Murai  *
4b808c756SAtsushi Murai  *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
5b808c756SAtsushi Murai  *
6b808c756SAtsushi Murai  * Redistribution and use in source and binary forms are permitted
7b808c756SAtsushi Murai  * provided that the above copyright notice and this paragraph are
8b808c756SAtsushi Murai  * duplicated in all such forms and that any documentation,
9b808c756SAtsushi Murai  * advertising materials, and other materials related to such
10b808c756SAtsushi Murai  * distribution and use acknowledge that the software was developed
11b808c756SAtsushi Murai  * by the Internet Initiative Japan.  The name of the
12b808c756SAtsushi Murai  * IIJ may not be used to endorse or promote products derived
13b808c756SAtsushi Murai  * from this software without specific prior written permission.
14b808c756SAtsushi Murai  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
15b808c756SAtsushi Murai  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
16b808c756SAtsushi Murai  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17b808c756SAtsushi Murai  *
185e315498SBrian Somers  * $Id: auth.h,v 1.15 1999/02/06 02:54:43 brian Exp $
19b808c756SAtsushi Murai  *
20b808c756SAtsushi Murai  *	TODO:
21b808c756SAtsushi Murai  */
22b808c756SAtsushi Murai 
2363b73463SBrian Somers struct physical;
242764b86aSBrian Somers struct bundle;
25f0cdd9c0SBrian Somers struct authinfo;
26f0cdd9c0SBrian Somers typedef void (*auth_func)(struct authinfo *);
27b808c756SAtsushi Murai 
28b808c756SAtsushi Murai struct authinfo {
29f0cdd9c0SBrian Somers   struct {
30f0cdd9c0SBrian Somers     auth_func req;
31f0cdd9c0SBrian Somers     auth_func success;
32f0cdd9c0SBrian Somers     auth_func failure;
33f0cdd9c0SBrian Somers   } fn;
34f0cdd9c0SBrian Somers   struct {
35f0cdd9c0SBrian Somers     struct fsmheader hdr;
36f0cdd9c0SBrian Somers     char name[AUTHLEN];
37f0cdd9c0SBrian Somers   } in;
38b808c756SAtsushi Murai   struct pppTimer authtimer;
39b808c756SAtsushi Murai   int retry;
40b808c756SAtsushi Murai   int id;
4163b73463SBrian Somers   struct physical *physical;
42cd9647a1SBrian Somers   struct {
43cd9647a1SBrian Somers     u_int fsmretry;
44cd9647a1SBrian Somers   } cfg;
45b808c756SAtsushi Murai };
46b808c756SAtsushi Murai 
47f0cdd9c0SBrian Somers #define auth_Failure(a) (*a->fn.failure)(a);
48f0cdd9c0SBrian Somers #define auth_Success(a) (*a->fn.success)(a);
49dd7e2610SBrian Somers 
505e315498SBrian Somers extern const char *Auth2Nam(u_short, u_char);
51f0cdd9c0SBrian Somers extern void auth_Init(struct authinfo *, struct physical *,
52f0cdd9c0SBrian Somers                       auth_func, auth_func, auth_func);
53dd7e2610SBrian Somers extern void auth_StopTimer(struct authinfo *);
54f0cdd9c0SBrian Somers extern void auth_StartReq(struct authinfo *);
55dd7e2610SBrian Somers extern int auth_Validate(struct bundle *, const char *, const char *,
56643f4904SBrian Somers                          struct physical *);
57dd7e2610SBrian Somers extern char *auth_GetSecret(struct bundle *, const char *, int,
58643f4904SBrian Somers                             struct physical *);
5992b09558SBrian Somers extern int auth_SetPhoneList(const char *, char *, int);
6092b09558SBrian Somers extern int auth_Select(struct bundle *, const char *);
61f0cdd9c0SBrian Somers extern struct mbuf *auth_ReadHeader(struct authinfo *, struct mbuf *);
62f0cdd9c0SBrian Somers extern struct mbuf *auth_ReadName(struct authinfo *, struct mbuf *, int);
63