wpa_supplicant / hostapd  2.5
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Functions
eapol_auth_sm.c File Reference

IEEE 802.1X-2004 Authenticator - EAPOL state machine. More...

#include "includes.h"
#include "common.h"
#include "eloop.h"
#include "state_machine.h"
#include "common/eapol_common.h"
#include "eap_common/eap_defs.h"
#include "eap_common/eap_common.h"
#include "eap_server/eap.h"
#include "eapol_auth_sm.h"
#include "eapol_auth_sm_i.h"

Macros

#define STATE_MACHINE_DATA   struct eapol_state_machine
 
#define STATE_MACHINE_DEBUG_PREFIX   "IEEE 802.1X"
 
#define STATE_MACHINE_ADDR   sm->addr
 
#define setPortAuthorized()   sm->eapol->cb.set_port_authorized(sm->eapol->conf.ctx, sm->sta, 1)
 
#define setPortUnauthorized()   sm->eapol->cb.set_port_authorized(sm->eapol->conf.ctx, sm->sta, 0)
 
#define txCannedFail()   eapol_auth_tx_canned_eap(sm, 0)
 
#define txCannedSuccess()   eapol_auth_tx_canned_eap(sm, 1)
 
#define txReq()   eapol_auth_tx_req(sm)
 
#define abortAuth()   sm->eapol->cb.abort_auth(sm->eapol->conf.ctx, sm->sta)
 
#define txKey()   sm->eapol->cb.tx_key(sm->eapol->conf.ctx, sm->sta)
 
#define processKey()   do { } while (0)
 

Functions

 SM_STATE (AUTH_PAE, INITIALIZE)
 
 SM_STATE (AUTH_PAE, DISCONNECTED)
 
 SM_STATE (AUTH_PAE, RESTART)
 
 SM_STATE (AUTH_PAE, CONNECTING)
 
 SM_STATE (AUTH_PAE, HELD)
 
 SM_STATE (AUTH_PAE, AUTHENTICATED)
 
 SM_STATE (AUTH_PAE, AUTHENTICATING)
 
 SM_STATE (AUTH_PAE, ABORTING)
 
 SM_STATE (AUTH_PAE, FORCE_AUTH)
 
 SM_STATE (AUTH_PAE, FORCE_UNAUTH)
 
 SM_STEP (AUTH_PAE)
 
 SM_STATE (BE_AUTH, INITIALIZE)
 
 SM_STATE (BE_AUTH, REQUEST)
 
 SM_STATE (BE_AUTH, RESPONSE)
 
 SM_STATE (BE_AUTH, SUCCESS)
 
 SM_STATE (BE_AUTH, FAIL)
 
 SM_STATE (BE_AUTH, TIMEOUT)
 
 SM_STATE (BE_AUTH, IDLE)
 
 SM_STATE (BE_AUTH, IGNORE)
 
 SM_STEP (BE_AUTH)
 
 SM_STATE (REAUTH_TIMER, INITIALIZE)
 
 SM_STATE (REAUTH_TIMER, REAUTHENTICATE)
 
 SM_STEP (REAUTH_TIMER)
 
 SM_STATE (AUTH_KEY_TX, NO_KEY_TRANSMIT)
 
 SM_STATE (AUTH_KEY_TX, KEY_TRANSMIT)
 
 SM_STEP (AUTH_KEY_TX)
 
 SM_STATE (KEY_RX, NO_KEY_RECEIVE)
 
 SM_STATE (KEY_RX, KEY_RECEIVE)
 
 SM_STEP (KEY_RX)
 
 SM_STATE (CTRL_DIR, FORCE_BOTH)
 
 SM_STATE (CTRL_DIR, IN_OR_BOTH)
 
 SM_STEP (CTRL_DIR)
 
struct eapol_state_machineeapol_auth_alloc (struct eapol_authenticator *eapol, const u8 *addr, int flags, const struct wpabuf *assoc_wps_ie, const struct wpabuf *assoc_p2p_ie, void *sta_ctx, const char *identity, const char *radius_cui)
 
void eapol_auth_free (struct eapol_state_machine *sm)
 
void eapol_auth_step (struct eapol_state_machine *sm)
 Advance EAPOL state machines. More...
 
int eapol_auth_eap_pending_cb (struct eapol_state_machine *sm, void *ctx)
 
void eapol_auth_reauthenticate (struct eapol_state_machine *sm)
 
int eapol_auth_set_conf (struct eapol_state_machine *sm, const char *param, const char *value)
 
struct eapol_authenticatoreapol_auth_init (struct eapol_auth_config *conf, struct eapol_auth_cb *cb)
 
void eapol_auth_deinit (struct eapol_authenticator *eapol)
 

Detailed Description

IEEE 802.1X-2004 Authenticator - EAPOL state machine.

Function Documentation

void eapol_auth_step ( struct eapol_state_machine sm)

Advance EAPOL state machines.

Parameters
smEAPOL state machine

This function is called to advance EAPOL state machines after any change that could affect their state.