25 void * (*init)(
struct eap_sm *sm);
26 void * (*initPickUp)(
struct eap_sm *sm);
27 void (*reset)(
struct eap_sm *sm,
void *priv);
29 struct wpabuf * (*buildReq)(
struct eap_sm *sm,
void *priv, u8 id);
30 int (*getTimeout)(
struct eap_sm *sm,
void *priv);
31 Boolean (*check)(
struct eap_sm *sm,
void *priv,
35 Boolean (*isDone)(
struct eap_sm *sm,
void *priv);
36 u8 * (*getKey)(
struct eap_sm *sm,
void *priv,
size_t *len);
39 Boolean (*isSuccess)(
struct eap_sm *sm,
void *priv);
56 #define EAP_SERVER_METHOD_INTERFACE_VERSION 1
88 u8 * (*get_emsk)(
struct eap_sm *sm,
void *priv,
size_t *len);
101 u8 * (*getSessionId)(
struct eap_sm *sm,
void *priv,
size_t *len);
110 EAP_DISABLED, EAP_INITIALIZE, EAP_IDLE, EAP_RECEIVED,
111 EAP_INTEGRITY_CHECK, EAP_METHOD_RESPONSE, EAP_METHOD_REQUEST,
112 EAP_PROPOSE_METHOD, EAP_SELECT_ACTION, EAP_SEND_REQUEST,
113 EAP_DISCARD, EAP_NAK, EAP_RETRANSMIT, EAP_SUCCESS, EAP_FAILURE,
114 EAP_TIMEOUT_FAILURE, EAP_PICK_UP_METHOD,
115 EAP_INITIALIZE_PASSTHROUGH, EAP_IDLE2, EAP_RETRANSMIT2,
116 EAP_RECEIVED2, EAP_DISCARD2, EAP_SEND_REQUEST2,
117 EAP_AAA_REQUEST, EAP_AAA_RESPONSE, EAP_AAA_IDLE,
118 EAP_TIMEOUT_FAILURE2, EAP_FAILURE2, EAP_SUCCESS2,
119 EAP_INITIATE_REAUTH_START, EAP_INITIATE_RECEIVED
130 EapType currentMethod;
133 METHOD_PROPOSED, METHOD_CONTINUE, METHOD_END
136 struct wpabuf *lastReqData;
145 u32 respVendorMethod;
148 DECISION_SUCCESS, DECISION_FAILURE, DECISION_CONTINUE,
149 DECISION_PASSTHROUGH, DECISION_INITIATE_REAUTH_START
158 void *eap_method_priv;
162 int require_identity_match;
165 int user_eap_method_index;
169 Boolean backend_auth;
175 METHOD_PENDING_NONE, METHOD_PENDING_WAIT, METHOD_PENDING_CONT
181 u8 *pac_opaque_encr_key;
183 size_t eap_fast_a_id_len;
184 char *eap_fast_a_id_info;
186 NO_PROV, ANON_PROV, AUTH_PROV, BOTH_PROV
188 int pac_key_lifetime;
189 int pac_key_refresh_time;
190 int eap_sim_aka_result_ind;
194 struct wpabuf *assoc_wps_ie;
195 struct wpabuf *assoc_p2p_ie;
197 Boolean start_reauth;
199 u8 peer_addr[ETH_ALEN];
207 size_t server_id_len;
209 Boolean initiate_reauth_start_sent;
210 Boolean try_initiate_reauth;
212 unsigned int tls_session_lifetime;
214 #ifdef CONFIG_TESTING_OPTIONS
221 void eap_log_msg(
struct eap_sm *sm,
const char *fmt, ...)
struct wpabuf *(* process)(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, const struct wpabuf *reqData)
Process an EAP request.
Definition: eap_i.h:120
int vendor
EAP Vendor-ID (EAP_VENDOR_*) (0 = IETF)
Definition: eap_i.h:70
struct eap_method * next
Pointer to the next EAP method.
Definition: eap_i.h:246
Definition: eap_sim_db.c:56
EapType method
EAP type number (EAP_TYPE_*)
Definition: eap_i.h:76
void(* free)(struct eap_method *method)
Free EAP method data.
Definition: eap_i.h:225
void void eap_sm_process_nak(struct eap_sm *sm, const u8 *nak_list, size_t len)
Process EAP-Response/Nak.
Definition: eap_server.c:1580
Callback functions from EAP to lower layer.
Definition: eap.h:147
const char * name
Name of the method (e.g., "TLS")
Definition: eap_i.h:82
hostapd / EAP Full Authenticator state machine (RFC 4137)
Global (for all networks) EAPOL state machine context.
Definition: eapol_supp_sm.h:87
int eap_user_get(struct eap_sm *sm, const u8 *identity, size_t identity_len, int phase2)
Fetch user information from the database.
Definition: eap_server.c:158
EAP common peer/server definitions.
int version
Version of the EAP peer method interface.
Definition: eap_i.h:237
EAP state machine data.
Definition: eap_i.h:302
Long term WPS context data.
Definition: wps.h:623
EAP method interface This structure defines the EAP method interface. Each method will need to regist...
Definition: eap_i.h:65