/** * A client-side 802.1x implementation supporting EAP/TLS * * This code is released under both the GPL version 2 and BSD licenses. * Either license may be used. The respective licenses are found below. * * Copyright (C) 2002 Bryan D. Payne & Nick L. Petroni Jr. * All Rights Reserved * * --- GPL Version 2 License --- * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * --- BSD License --- * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * Maryland at College Park and its contributors. * - Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /******************************************************************* * The driver function for a Linux application layer EAPOL * implementation * File: dot1x_globals.h * * Authors: Chris.Hessing@utah.edu, Terry.Simons@utah.edu * * $Id: dot1x_globals.h,v 1.2 2003/03/04 06:10:08 npetroni Exp $ * $Date: 2003/03/04 06:10:08 $ * *******************************************************************/ #ifndef _DOT1X_GLOBALS_H #define _DOT1X_GLOBALS_H // Define some things to make the code more readable. #define TRUE 1 #define FALSE 0 // Define our supplicant status values #define UNAUTHORIZED 0 #define AUTHORIZED 1 struct dot1x_globals { // These variables are per the 802.1x documentation. /* per 802.1x section 8.5.2.1 */ int authWhile; int aWhile; int heldWhile; int quietWhile; int reAuthWhen; int startWhen; int txWhen; /* per 802.1x section 8.5.2.2 */ int initialize; int suppStatus; /* per 802.1x section 8.5.3.1 port timers */ int tick; /* per 802.1x section 8.5.10 Supplicant PAE */ int userLogoff; int logoffSent; int reqId; int reqAuth; int eapSuccess; int eapFail; int startCount; int previousId; int receivedId; /* per 802.1x section 8.5.11 Key recieve */ int rxKey; // This isn't in the spec, but is useful. int authType; // EAP authentication type field. int haveKey; // also useful- have we gotten a key before? int authCount; // numbers of times we have authenticated since // last disconnecting }; extern struct dot1x_globals one_x_globals; void initalize_dot1x_globals(); // Set up the dot1x_globals structure. void clean_dot1x_globals(); // Free everything, call this on quit. int get_authWhile(); void set_authWhile(int); int get_aWhile(); void set_aWhile(int); int get_heldWhile(); void set_heldWhile(int); int get_quietWhile(); void set_quietWhile(int); int get_reAuthWhen(); void set_reAuthWhen(int); int get_startWhen(); void set_startWhen(int); int get_txWhen(); void set_txWhen(int); int get_initialize(); void set_initialize(int); int get_suppStatus(); void set_suppStatus(int); int get_tick(); void set_tick(int); int get_userLogoff(); void set_userLogoff(int); int get_logoffSent(); void set_logoffSent(int); int get_reqId(); void set_reqId(int); int get_reqAuth(); void set_reqAuth(int); int get_eapSuccess(); void set_eapSuccess(int); int get_eapFail(); void set_eapFail(int); int get_startCount(); void set_startCount(int); int get_previousId(); void set_previousId(int); int get_receivedId(); void set_receivedId(int); int get_rxKey(); void set_rxKey(int); int get_authType(); void set_authType(int); int get_haveKey(); void set_haveKey(int); int get_authCount(); void reset_authCount(); void inc_authCount(); #endif