123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)/* 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * EAP proxy definitions 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * Copyright (c) 2011-2013 Qualcomm Atheros, Inc. 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * 523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * This software may be distributed under the terms of the BSD license. 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) * See README for more details. 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) */ 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef EAP_PROXY_H 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#define EAP_PROXY_H 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)struct eap_proxy_sm; 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)struct eapol_callbacks; 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)struct eap_sm; 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)struct eap_peer_config; 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccienum eap_proxy_status { 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EAP_PROXY_FAILURE = 0x00, 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EAP_PROXY_SUCCESS 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}; 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)struct eap_proxy_sm * 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb, 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void *msg_ctx); 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void eap_proxy_deinit(struct eap_proxy_sm *eap_proxy); 2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint eap_proxy_key_available(struct eap_proxy_sm *sm); 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)const u8 * eap_proxy_get_eapKeyData(struct eap_proxy_sm *sm, size_t *len); 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)struct wpabuf * eap_proxy_get_eapRespData(struct eap_proxy_sm *sm); 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)int eap_proxy_sm_step(struct eap_proxy_sm *sm, struct eap_sm *eap_sm); 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)enum eap_proxy_status 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccieap_proxy_packet_update(struct eap_proxy_sm *eap_proxy, u8 *eapReqData, 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) int eapReqDataLen); 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)int 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