139beb93cSSam Leffler /* 239beb93cSSam Leffler * wpa_supplicant - WPA2/RSN pre-authentication functions 3e28a4053SRui Paulo * Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi> 439beb93cSSam Leffler * 5*f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6*f05cddf9SRui Paulo * See README for more details. 739beb93cSSam Leffler */ 839beb93cSSam Leffler 939beb93cSSam Leffler #ifndef PREAUTH_H 1039beb93cSSam Leffler #define PREAUTH_H 1139beb93cSSam Leffler 1239beb93cSSam Leffler struct wpa_scan_results; 1339beb93cSSam Leffler 1439beb93cSSam Leffler #if defined(IEEE8021X_EAPOL) && !defined(CONFIG_NO_WPA2) 1539beb93cSSam Leffler 1639beb93cSSam Leffler void pmksa_candidate_free(struct wpa_sm *sm); 1739beb93cSSam Leffler int rsn_preauth_init(struct wpa_sm *sm, const u8 *dst, 1839beb93cSSam Leffler struct eap_peer_config *eap_conf); 1939beb93cSSam Leffler void rsn_preauth_deinit(struct wpa_sm *sm); 20e28a4053SRui Paulo int rsn_preauth_scan_results(struct wpa_sm *sm); 21e28a4053SRui Paulo void rsn_preauth_scan_result(struct wpa_sm *sm, const u8 *bssid, 22e28a4053SRui Paulo const u8 *ssid, const u8 *rsn); 2339beb93cSSam Leffler void pmksa_candidate_add(struct wpa_sm *sm, const u8 *bssid, 2439beb93cSSam Leffler int prio, int preauth); 2539beb93cSSam Leffler void rsn_preauth_candidate_process(struct wpa_sm *sm); 2639beb93cSSam Leffler int rsn_preauth_get_status(struct wpa_sm *sm, char *buf, size_t buflen, 2739beb93cSSam Leffler int verbose); 2839beb93cSSam Leffler int rsn_preauth_in_progress(struct wpa_sm *sm); 2939beb93cSSam Leffler 3039beb93cSSam Leffler #else /* IEEE8021X_EAPOL and !CONFIG_NO_WPA2 */ 3139beb93cSSam Leffler 3239beb93cSSam Leffler static inline void pmksa_candidate_free(struct wpa_sm *sm) 3339beb93cSSam Leffler { 3439beb93cSSam Leffler } 3539beb93cSSam Leffler 3639beb93cSSam Leffler static inline void rsn_preauth_candidate_process(struct wpa_sm *sm) 3739beb93cSSam Leffler { 3839beb93cSSam Leffler } 3939beb93cSSam Leffler 4039beb93cSSam Leffler static inline int rsn_preauth_init(struct wpa_sm *sm, const u8 *dst, 4139beb93cSSam Leffler struct eap_peer_config *eap_conf) 4239beb93cSSam Leffler { 4339beb93cSSam Leffler return -1; 4439beb93cSSam Leffler } 4539beb93cSSam Leffler 4639beb93cSSam Leffler static inline void rsn_preauth_deinit(struct wpa_sm *sm) 4739beb93cSSam Leffler { 4839beb93cSSam Leffler } 49e28a4053SRui Paulo 50e28a4053SRui Paulo static inline int rsn_preauth_scan_results(struct wpa_sm *sm) 51e28a4053SRui Paulo { 52e28a4053SRui Paulo return -1; 53e28a4053SRui Paulo } 54e28a4053SRui Paulo 55e28a4053SRui Paulo static inline void rsn_preauth_scan_result(struct wpa_sm *sm, const u8 *bssid, 56e28a4053SRui Paulo const u8 *ssid, const u8 *rsn) 5739beb93cSSam Leffler { 5839beb93cSSam Leffler } 5939beb93cSSam Leffler 6039beb93cSSam Leffler static inline void pmksa_candidate_add(struct wpa_sm *sm, 6139beb93cSSam Leffler const u8 *bssid, 6239beb93cSSam Leffler int prio, int preauth) 6339beb93cSSam Leffler { 6439beb93cSSam Leffler } 6539beb93cSSam Leffler 6639beb93cSSam Leffler static inline int rsn_preauth_get_status(struct wpa_sm *sm, char *buf, 6739beb93cSSam Leffler size_t buflen, int verbose) 6839beb93cSSam Leffler { 6939beb93cSSam Leffler return 0; 7039beb93cSSam Leffler } 7139beb93cSSam Leffler 7239beb93cSSam Leffler static inline int rsn_preauth_in_progress(struct wpa_sm *sm) 7339beb93cSSam Leffler { 7439beb93cSSam Leffler return 0; 7539beb93cSSam Leffler } 7639beb93cSSam Leffler 7739beb93cSSam Leffler #endif /* IEEE8021X_EAPOL and !CONFIG_NO_WPA2 */ 7839beb93cSSam Leffler 7939beb93cSSam Leffler #endif /* PREAUTH_H */ 80