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