aboutsummaryrefslogtreecommitdiff
path: root/contrib/wpa_supplicant/eap.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/wpa_supplicant/eap.h')
-rw-r--r--contrib/wpa_supplicant/eap.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/contrib/wpa_supplicant/eap.h b/contrib/wpa_supplicant/eap.h
new file mode 100644
index 000000000000..3d7cc7210d7a
--- /dev/null
+++ b/contrib/wpa_supplicant/eap.h
@@ -0,0 +1,70 @@
+#ifndef EAP_H
+#define EAP_H
+
+#include "defs.h"
+#include "eap_defs.h"
+
+struct eap_sm;
+struct wpa_ssid;
+
+
+#ifdef IEEE8021X_EAPOL
+
+enum eapol_bool_var {
+ EAPOL_eapSuccess, EAPOL_eapRestart, EAPOL_eapFail, EAPOL_eapResp,
+ EAPOL_eapNoResp, EAPOL_eapReq, EAPOL_portEnabled, EAPOL_altAccept,
+ EAPOL_altReject
+};
+
+enum eapol_int_var {
+ EAPOL_idleWhile
+};
+
+struct eapol_callbacks {
+ struct wpa_ssid * (*get_config)(void *ctx);
+ Boolean (*get_bool)(void *ctx, enum eapol_bool_var variable);
+ void (*set_bool)(void *ctx, enum eapol_bool_var variable,
+ Boolean value);
+ unsigned int (*get_int)(void *ctx, enum eapol_int_var variable);
+ void (*set_int)(void *ctx, enum eapol_int_var variable,
+ unsigned int value);
+ u8 * (*get_eapReqData)(void *ctx, size_t *len);
+};
+
+struct eap_sm *eap_sm_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb,
+ void *msg_ctx);
+void eap_sm_deinit(struct eap_sm *sm);
+int eap_sm_step(struct eap_sm *sm);
+void eap_sm_abort(struct eap_sm *sm);
+int eap_sm_get_status(struct eap_sm *sm, char *buf, size_t buflen,
+ int verbose);
+u8 *eap_sm_buildIdentity(struct eap_sm *sm, int id, size_t *len,
+ int encrypted);
+const struct eap_method * eap_sm_get_eap_methods(int method);
+void eap_sm_request_identity(struct eap_sm *sm, struct wpa_ssid *config);
+void eap_sm_request_password(struct eap_sm *sm, struct wpa_ssid *config);
+void eap_sm_request_otp(struct eap_sm *sm, struct wpa_ssid *config,
+ char *msg, size_t msg_len);
+void eap_sm_notify_ctrl_attached(struct eap_sm *sm);
+u8 eap_get_type(const char *name);
+u8 eap_get_phase2_type(const char *name);
+u8 *eap_get_phase2_types(struct wpa_ssid *config, size_t *count);
+void eap_set_fast_reauth(struct eap_sm *sm, int enabled);
+void eap_set_workaround(struct eap_sm *sm, unsigned int workaround);
+struct wpa_ssid * eap_get_config(struct eap_sm *sm);
+int eap_key_available(struct eap_sm *sm);
+void eap_notify_success(struct eap_sm *sm);
+u8 * eap_get_eapKeyData(struct eap_sm *sm, size_t *len);
+u8 * eap_get_eapRespData(struct eap_sm *sm, size_t *len);
+void eap_register_scard_ctx(struct eap_sm *sm, void *ctx);
+
+#else /* IEEE8021X_EAPOL */
+
+static inline u8 eap_get_type(const char *name)
+{
+ return EAP_TYPE_NONE;
+}
+
+#endif /* IEEE8021X_EAPOL */
+
+#endif /* EAP_H */