1/* 2 * EAP proxy definitions 3 * Copyright (c) 2011-2013 Qualcomm Atheros, Inc. 4 * 5 * This software may be distributed under the terms of the BSD license. 6 * See README for more details. 7 */ 8 9#ifndef EAP_PROXY_H 10#define EAP_PROXY_H 11 12struct eap_proxy_sm; 13struct eapol_callbacks; 14struct eap_sm; 15struct eap_peer_config; 16 17enum eap_proxy_status { 18 EAP_PROXY_FAILURE = 0x00, 19 EAP_PROXY_SUCCESS 20}; 21 22struct eap_proxy_sm * 23eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb, 24 void *msg_ctx); 25 26void eap_proxy_deinit(struct eap_proxy_sm *eap_proxy); 27 28int eap_proxy_key_available(struct eap_proxy_sm *sm); 29 30const u8 * eap_proxy_get_eapKeyData(struct eap_proxy_sm *sm, size_t *len); 31 32struct wpabuf * eap_proxy_get_eapRespData(struct eap_proxy_sm *sm); 33 34int eap_proxy_sm_step(struct eap_proxy_sm *sm, struct eap_sm *eap_sm); 35 36enum eap_proxy_status 37eap_proxy_packet_update(struct eap_proxy_sm *eap_proxy, u8 *eapReqData, 38 int eapReqDataLen); 39 40int eap_proxy_sm_get_status(struct eap_proxy_sm *sm, char *buf, size_t buflen, 41 int verbose); 42 43int eap_proxy_get_imsi(struct eap_proxy_sm *eap_proxy, char *imsi_buf, 44 size_t *imsi_len); 45 46int eap_proxy_notify_config(struct eap_proxy_sm *sm, 47 struct eap_peer_config *config); 48 49#endif /* EAP_PROXY_H */ 50