16 DECISION_FAIL, DECISION_COND_SUCC, DECISION_UNCOND_SUCC
20 METHOD_NONE, METHOD_INIT, METHOD_CONT, METHOD_MAY_CONT, METHOD_DONE
122 const struct wpabuf *reqData);
143 u8 * (*getKey)(
struct eap_sm *sm,
void *priv,
size_t *len);
160 size_t buflen,
int verbose);
197 void * (*init_for_reauth)(
struct eap_sm *sm,
void *priv);
210 const u8 * (*get_identity)(
struct eap_sm *sm,
void *priv,
size_t *len);
227 #define EAP_PEER_METHOD_INTERFACE_VERSION 1
248 #ifdef CONFIG_DYNAMIC_EAP_METHODS
271 u8 * (*get_emsk)(
struct eap_sm *sm,
void *priv,
size_t *len);
284 u8 * (*getSessionId)(
struct eap_sm *sm,
void *priv,
size_t *len);
292 u8 rRK[ERP_MAX_KEY_LEN];
293 u8 rIK[ERP_MAX_KEY_LEN];
304 EAP_INITIALIZE, EAP_DISABLED, EAP_IDLE, EAP_RECEIVED,
305 EAP_GET_METHOD, EAP_METHOD, EAP_SEND_RESPONSE, EAP_DISCARD,
306 EAP_IDENTITY, EAP_NOTIFICATION, EAP_RETRANSMIT, EAP_SUCCESS,
310 EapType selectedMethod;
311 EapMethodState methodState;
313 struct wpabuf *lastRespData;
314 EapDecision decision;
328 Boolean allowNotifications;
329 struct wpabuf *eapRespData;
330 Boolean eapKeyAvailable;
332 size_t eapKeyDataLen;
334 size_t eapSessionIdLen;
340 void *eap_method_priv;
358 unsigned int workaround;
361 u8 *peer_challenge, *auth_challenge;
372 struct wpabuf *ext_pw_buf;
376 unsigned int expected_failure:1;
389 int eap_get_config_fragment_size(
struct eap_sm *sm);
const char * eap_get_config_phase2(struct eap_sm *sm)
Get phase2 data from the network configuration.
Definition: eap.c:2654
void eap_notify_pending(struct eap_sm *sm)
Notify that EAP method is ready to re-process a request.
Definition: eap.c:2879
EAP return values from struct eap_method::process()
Definition: eap_i.h:32
void(* deinit)(struct eap_sm *sm, void *priv)
Deinitialize an EAP method.
Definition: eap_i.h:103
const u8 * eap_get_config_identity(struct eap_sm *sm, size_t *len)
Get identity from the network configuration.
Definition: eap.c:2497
int vendor
EAP Vendor-ID (EAP_VENDOR_*) (0 = IETF)
Definition: eap_i.h:70
EapMethodState methodState
Method-specific state (IN/OUT)
Definition: eap_i.h:43
const u8 * eap_get_config_new_password(struct eap_sm *sm, size_t *len)
Get new password from network configuration.
Definition: eap.c:2589
Boolean(* isKeyAvailable)(struct eap_sm *sm, void *priv)
Find out whether EAP method has keying material.
Definition: eap_i.h:130
Boolean(* has_reauth_data)(struct eap_sm *sm, void *priv)
Whether method is ready for fast reauthentication.
Definition: eap_i.h:172
int eap_allowed_method(struct eap_sm *sm, int vendor, u32 method)
Check whether EAP method is allowed.
Definition: eap.c:124
struct eap_method * next
Pointer to the next EAP method.
Definition: eap_i.h:246
EapDecision decision
Authentication decision (OUT)
Definition: eap_i.h:49
const u8 * eap_get_config_otp(struct eap_sm *sm, size_t *len)
Get one-time password from the network configuration.
Definition: eap.c:2605
EapType method
EAP type number (EAP_TYPE_*)
Definition: eap_i.h:76
Doubly-linked list.
Definition: list.h:12
Named configuration blob.
Definition: eap_config.h:812
void eap_set_config_blob(struct eap_sm *sm, struct wpa_config_blob *blob)
Set or add a named configuration blob.
Definition: eap.c:2820
Definition: ext_password.c:26
void(* free)(struct eap_method *method)
Free EAP method data.
Definition: eap_i.h:225
Callback functions from EAP to lower layer.
Definition: eap.h:147
struct eap_peer_config * eap_get_config(struct eap_sm *sm)
Get current network configuration.
Definition: eap.c:2485
void(* deinit_for_reauth)(struct eap_sm *sm, void *priv)
Release data that is not needed for fast re-auth.
Definition: eap_i.h:185
const char * name
Name of the method (e.g., "TLS")
Definition: eap_i.h:82
Global (for all networks) EAPOL state machine context.
Definition: eapol_supp_sm.h:87
const char * eap_get_config_phase1(struct eap_sm *sm)
Get phase1 data from the network configuration.
Definition: eap.c:2640
EAP common peer/server definitions.
const struct wpa_config_blob * eap_get_config_blob(struct eap_sm *sm, const char *name)
Get a named configuration blob.
Definition: eap.c:2834
EAP peer state machine functions (RFC 4137)
int version
Version of the EAP peer method interface.
Definition: eap_i.h:237
Boolean allowNotifications
Whether method allows notifications (OUT)
Definition: eap_i.h:55
EAP state machine data.
Definition: eap_i.h:302
Boolean ignore
Whether method decided to drop the current packed (OUT)
Definition: eap_i.h:37
const u8 * eap_get_config_password2(struct eap_sm *sm, size_t *len, int *hash)
Get password from the network configuration.
Definition: eap.c:2561
EAP peer configuration/credentials.
Definition: eap_config.h:12
char * name
Blob name.
Definition: eap_config.h:817
int(* get_status)(struct eap_sm *sm, void *priv, char *buf, size_t buflen, int verbose)
Get EAP method status.
Definition: eap_i.h:159
void eap_clear_config_otp(struct eap_sm *sm)
Clear used one-time password.
Definition: eap.c:2623
Long term WPS context data.
Definition: wps.h:623
const u8 * eap_get_config_password(struct eap_sm *sm, size_t *len)
Get password from the network configuration.
Definition: eap.c:2534
EAP method interface This structure defines the EAP method interface. Each method will need to regist...
Definition: eap_i.h:65