File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / eap.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Nov 2 09:50:34 2016 UTC (7 years, 8 months ago) by misho
Branches: mpd, MAIN
CVS tags: v5_8p1_cross, v5_8p1, HEAD
mpd 5.8rc1

    1: /*
    2:  * See ``COPYRIGHT.mpd''
    3:  *
    4:  * $Id: eap.h,v 1.1.1.2 2016/11/02 09:50:34 misho Exp $
    5:  *
    6:  */
    7: 
    8: 
    9: #ifndef _EAP_H_
   10: #define	_EAP_H_
   11: 
   12: #include "mbuf.h"
   13: #include "timer.h"
   14: 
   15: /*
   16:  * DEFINITIONS
   17:  */
   18: 
   19:   #define EAP_NUM_TYPES		EAP_TYPE_MSCHAP_V2
   20:   #define EAP_NUM_STDTYPES	3
   21: 
   22:   /* Configuration options */
   23:   enum {
   24:     EAP_CONF_RADIUS,
   25:     EAP_CONF_MD5
   26:   };
   27: 
   28:   enum {
   29:     EAP_REQUEST = 1,
   30:     EAP_RESPONSE,
   31:     EAP_SUCCESS,
   32:     EAP_FAILURE
   33:   };
   34: 
   35:   enum {
   36:     EAP_TYPE_IDENT = 1,
   37:     EAP_TYPE_NOTIF,
   38:     EAP_TYPE_NAK,
   39:     EAP_TYPE_MD5CHAL,		/* MD5 Challenge */
   40:     EAP_TYPE_OTP,		/* One Time Password */
   41:     EAP_TYPE_GTC,		/* Generic Token Card */
   42:     EAP_TYPE_RSA_PUB_KEY_AUTH = 9,	/* RSA Public Key Authentication */
   43:     EAP_TYPE_DSS_UNILITERAL,	/* DSS Unilateral */
   44:     EAP_TYPE_KEA,		/* KEA */
   45:     EAP_TYPE_TYPE_KEA_VALIDATE,	/* KEA-VALIDATE */
   46:     EAP_TYPE_EAP_TLS,		/* EAP-TLS RFC 2716 */
   47:     EAP_TYPE_DEFENDER_TOKEN,	/* Defender Token (AXENT) */
   48:     EAP_TYPE_RSA_SECURID,	/* RSA Security SecurID EAP */
   49:     EAP_TYPE_ARCOT,		/* Arcot Systems EAP */
   50:     EAP_TYPE_LEAP,		/* EAP-Cisco LEAP (MS-CHAP) */
   51:     EAP_TYPE_NOKIA_IP_SC,	/* Nokia IP smart card authentication */
   52:     EAP_TYPE_SRP_SHA1_1,	/* SRP-SHA1 Part 1 */
   53:     EAP_TYPE_SRP_SHA1_2,	/* SRP-SHA1 Part 2 */
   54:     EAP_TYPE_EAP_TTLS,		/* EAP-TTLS */
   55:     EAP_TYPE_RAS,		/* Remote Access Service */
   56:     EAP_TYPE_UMTS,		/* UMTS Authentication and Key Argreement */
   57:     EAP_TYPE_3COM_WIRELESS,	/* EAP-3Com Wireless */
   58:     EAP_TYPE_PEAP,		/* PEAP */
   59:     EAP_TYPE_MS,		/* MS-EAP-Authentication */
   60:     EAP_TYPE_MAKE,		/* MAKE, Mutual Authentication w/Key Exchange */
   61:     EAP_TYPE_CRYPTOCARD,	/* CRYPTOCard */
   62:     EAP_TYPE_MSCHAP_V2,		/* EAP-MSCHAP-V2 */
   63:     EAP_TYPE_DYNAMID,		/* DynamID */
   64:     EAP_TYPE_ROB,		/* Rob EAP */
   65:     EAP_TYPE_SECURID,		/* SecurID EAP */
   66:     EAP_TYPE_MS_AUTH_TLV,	/* MS-Authentication-TLV */
   67:     EAP_TYPE_SENTRINET,		/* SentriNET */
   68:     EAP_TYPE_ACTIONTEC_WIRELESS,/* EAP-Actiontec Wireless */
   69:     EAP_TYPE_COGENT,		/* Cogent Systems Biometrics Authentication EAP */
   70:     EAP_TYPE_AIRFORTRESS,	/* AirFortress EAP */
   71:     EAP_TYPE_HTTP_DIGEST,	/* EAP-HTTP Digest */
   72:     EAP_TYPE_SECURESUITE,	/* SecureSuite EAP */
   73:     EAP_TYPE_DEVICECONNECT,	/* DeviceConnect */
   74:     EAP_TYPE_SPEKE,		/* EAP-SPEKE */
   75:     EAP_TYPE_MOBAC,		/* EAP-MOBAC */
   76:     EAP_TYPE_FAST		/* EAP-FAST */
   77:   };
   78: 
   79:   extern const	struct cmdtab EapSetCmds[];
   80: 
   81:   /* Configuration for a link */
   82:   struct eapconf {
   83:     struct optinfo	options;	/* Configured options */
   84:   };
   85: 
   86:   struct eapinfo {
   87:     short		next_id;		/* Packet id */
   88:     short		retry;			/* Resend count */
   89:     struct pppTimer	identTimer;		/* Identity timer */
   90:     struct pppTimer	reqTimer;		/* Request timer */
   91:     char		identity[AUTH_MAX_AUTHNAME];	/* Identity */
   92:     u_char		peer_types[EAP_NUM_TYPES];	/* list of acceptable types */
   93:     u_char		want_types[EAP_NUM_TYPES];	/* list of requestable types */
   94:     struct eapconf	conf;			/* Configured options */
   95:   };
   96:   typedef struct eapinfo	*EapInfo;
   97: 
   98:   struct authdata;
   99: /*
  100:  * FUNCTIONS
  101:  */
  102: 
  103:   extern void	EapInit(Link l);
  104:   extern void	EapStart(Link l, int which);
  105:   extern void	EapStop(EapInfo eap);
  106:   extern void	EapInput(Link l, struct authdata *auth, const u_char *pkt, u_short len);
  107:   extern const	char *EapCode(u_char code, char *buf, size_t len);
  108:   extern const	char *EapType(u_char type);
  109:   extern int	EapStat(Context ctx, int ac, char *av[], void *arg);
  110: 
  111: #endif
  112: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>