13 #include "utils/list.h" 14 #include "eap_peer/eap.h" 15 #include "eap_common/eap_common.h" 20 DECISION_FAIL, DECISION_COND_SUCC, DECISION_UNCOND_SUCC
24 METHOD_NONE, METHOD_INIT, METHOD_CONT, METHOD_MAY_CONT, METHOD_DONE
99 void (*deinit)(
struct eap_sm *sm,
void *priv);
118 const struct wpabuf *reqData);
126 Boolean (*isKeyAvailable)(
struct eap_sm *sm,
void *priv);
139 u8 * (*getKey)(
struct eap_sm *sm,
void *priv,
size_t *len);
155 int (*get_status)(
struct eap_sm *sm,
void *priv,
char *buf,
156 size_t buflen,
int verbose);
168 Boolean (*has_reauth_data)(
struct eap_sm *sm,
void *priv);
181 void (*deinit_for_reauth)(
struct eap_sm *sm,
void *priv);
193 void * (*init_for_reauth)(
struct eap_sm *sm,
void *priv);
206 const u8 * (*get_identity)(
struct eap_sm *sm,
void *priv,
size_t *len);
223 #define EAP_PEER_METHOD_INTERFACE_VERSION 1 242 #ifdef CONFIG_DYNAMIC_EAP_METHODS 264 u8 * (*get_emsk)(
struct eap_sm *sm,
void *priv,
size_t *len);
277 u8 * (*getSessionId)(
struct eap_sm *sm,
void *priv,
size_t *len);
285 u8 rRK[ERP_MAX_KEY_LEN];
286 u8 rIK[ERP_MAX_KEY_LEN];
296 EAP_INITIALIZE, EAP_DISABLED, EAP_IDLE, EAP_RECEIVED,
297 EAP_GET_METHOD, EAP_METHOD, EAP_SEND_RESPONSE, EAP_DISCARD,
298 EAP_IDENTITY, EAP_NOTIFICATION, EAP_RETRANSMIT, EAP_SUCCESS,
302 EapType selectedMethod;
305 struct wpabuf *lastRespData;
321 struct wpabuf *eapRespData;
322 Boolean eapKeyAvailable;
324 size_t eapKeyDataLen;
326 size_t eapSessionIdLen;
332 void *eap_method_priv;
350 unsigned int workaround;
353 u8 *peer_challenge, *auth_challenge;
364 struct wpabuf *ext_pw_buf;
368 unsigned int expected_failure:1;
369 unsigned int ext_cert_check:1;
370 unsigned int waiting_ext_cert_check:1;
375 const u8 * eap_get_config_identity(
struct eap_sm *sm,
size_t *len);
376 const u8 * eap_get_config_password(
struct eap_sm *sm,
size_t *len);
377 const u8 * eap_get_config_password2(
struct eap_sm *sm,
size_t *len,
int *hash);
378 const u8 * eap_get_config_new_password(
struct eap_sm *sm,
size_t *len);
379 const u8 * eap_get_config_otp(
struct eap_sm *sm,
size_t *len);
380 void eap_clear_config_otp(
struct eap_sm *sm);
381 const char * eap_get_config_phase1(
struct eap_sm *sm);
382 const char * eap_get_config_phase2(
struct eap_sm *sm);
383 int eap_get_config_fragment_size(
struct eap_sm *sm);
387 eap_get_config_blob(
struct eap_sm *sm,
const char *
name);
388 void eap_notify_pending(
struct eap_sm *sm);
389 int eap_allowed_method(
struct eap_sm *sm,
int vendor, u32 method);
struct eap_method_ret - EAP return values from struct eap_method::process()
Definition: eap_i.h:35
int vendor
vendor - EAP Vendor-ID (EAP_VENDOR_*) (0 = IETF)
Definition: eap_i.h:68
EapMethodState methodState
methodState - Method-specific state (IN/OUT)
Definition: eap_i.h:44
struct eap_method * next
next - Pointer to the next EAP method
Definition: eap_i.h:240
EapDecision decision
decision - Authentication decision (OUT)
Definition: eap_i.h:49
EapType method
method - EAP type number (EAP_TYPE_*)
Definition: eap_i.h:73
struct dl_list - Doubly-linked list
Definition: list.h:15
struct wpa_config_blob - Named configuration blob
Definition: eap_config.h:766
Definition: ext_password.c:26
const char * name
name - Name of the method (e.g., "TLS")
Definition: eap_i.h:78
struct eapol_ctx - Global (for all networks) EAPOL state machine context
Definition: eapol_supp_sm.h:82
int version
version - Version of the EAP peer method interface
Definition: eap_i.h:232
Boolean allowNotifications
allowNotifications - Whether method allows notifications (OUT)
Definition: eap_i.h:54
struct eap_sm - EAP state machine data
Definition: eap_i.h:294
Boolean ignore
ignore - Whether method decided to drop the current packed (OUT)
Definition: eap_i.h:39
struct eap_peer_config - EAP peer configuration/credentials
Definition: eap_config.h:15
char * name
name - Blob name
Definition: eap_config.h:770
struct wps_context - Long term WPS context data
Definition: wps.h:594
struct eap_method - EAP method interface This structure defines the EAP method interface.
Definition: eap_i.h:64