xref: /dflybsd-src/contrib/wpa_supplicant/src/eap_peer/eap_proxy.h (revision 3a84a4273475ed07d0ab1c2dfeffdfedef35d9cd)
13ff40c12SJohn Marino /*
23ff40c12SJohn Marino  * EAP proxy definitions
33ff40c12SJohn Marino  * Copyright (c) 2011-2013 Qualcomm Atheros, Inc.
43ff40c12SJohn Marino  *
53ff40c12SJohn Marino  * This software may be distributed under the terms of the BSD license.
63ff40c12SJohn Marino  * See README for more details.
73ff40c12SJohn Marino  */
83ff40c12SJohn Marino 
93ff40c12SJohn Marino #ifndef EAP_PROXY_H
103ff40c12SJohn Marino #define EAP_PROXY_H
113ff40c12SJohn Marino 
123ff40c12SJohn Marino struct eap_proxy_sm;
133ff40c12SJohn Marino struct eapol_callbacks;
143ff40c12SJohn Marino struct eap_sm;
153ff40c12SJohn Marino struct eap_peer_config;
163ff40c12SJohn Marino 
173ff40c12SJohn Marino enum eap_proxy_status {
183ff40c12SJohn Marino 	EAP_PROXY_FAILURE = 0x00,
193ff40c12SJohn Marino 	EAP_PROXY_SUCCESS
203ff40c12SJohn Marino };
213ff40c12SJohn Marino 
223ff40c12SJohn Marino struct eap_proxy_sm *
23*a1157835SDaniel Fojt eap_proxy_init(void *eapol_ctx, const struct eapol_callbacks *eapol_cb,
243ff40c12SJohn Marino 	       void *msg_ctx);
253ff40c12SJohn Marino 
263ff40c12SJohn Marino void eap_proxy_deinit(struct eap_proxy_sm *eap_proxy);
273ff40c12SJohn Marino 
283ff40c12SJohn Marino int eap_proxy_key_available(struct eap_proxy_sm *sm);
293ff40c12SJohn Marino 
303ff40c12SJohn Marino const u8 * eap_proxy_get_eapKeyData(struct eap_proxy_sm *sm, size_t *len);
313ff40c12SJohn Marino 
323ff40c12SJohn Marino struct wpabuf * eap_proxy_get_eapRespData(struct eap_proxy_sm *sm);
333ff40c12SJohn Marino 
343ff40c12SJohn Marino int eap_proxy_sm_step(struct eap_proxy_sm *sm, struct eap_sm *eap_sm);
353ff40c12SJohn Marino 
363ff40c12SJohn Marino enum eap_proxy_status
373ff40c12SJohn Marino eap_proxy_packet_update(struct eap_proxy_sm *eap_proxy, u8 *eapReqData,
383ff40c12SJohn Marino 			int eapReqDataLen);
393ff40c12SJohn Marino 
403ff40c12SJohn Marino int eap_proxy_sm_get_status(struct eap_proxy_sm *sm, char *buf, size_t buflen,
413ff40c12SJohn Marino 			    int verbose);
423ff40c12SJohn Marino 
43*a1157835SDaniel Fojt int eap_proxy_get_imsi(struct eap_proxy_sm *eap_proxy, int sim_num,
44*a1157835SDaniel Fojt 		       char *imsi_buf, size_t *imsi_len);
453ff40c12SJohn Marino 
463ff40c12SJohn Marino int eap_proxy_notify_config(struct eap_proxy_sm *sm,
473ff40c12SJohn Marino 			    struct eap_peer_config *config);
483ff40c12SJohn Marino 
49*a1157835SDaniel Fojt u8 * eap_proxy_get_eap_session_id(struct eap_proxy_sm *sm, size_t *len);
50*a1157835SDaniel Fojt 
51*a1157835SDaniel Fojt u8 * eap_proxy_get_emsk(struct eap_proxy_sm *sm, size_t *len);
52*a1157835SDaniel Fojt 
53*a1157835SDaniel Fojt void eap_proxy_sm_abort(struct eap_proxy_sm *sm);
54*a1157835SDaniel Fojt 
553ff40c12SJohn Marino #endif /* EAP_PROXY_H */
56