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