139beb93cSSam Leffler /* 239beb93cSSam Leffler * wpa_supplicant - WPA2/RSN pre-authentication functions 339beb93cSSam Leffler * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi> 439beb93cSSam Leffler * 539beb93cSSam Leffler * This program is free software; you can redistribute it and/or modify 639beb93cSSam Leffler * it under the terms of the GNU General Public License version 2 as 739beb93cSSam Leffler * published by the Free Software Foundation. 839beb93cSSam Leffler * 939beb93cSSam Leffler * Alternatively, this software may be distributed under the terms of BSD 1039beb93cSSam Leffler * license. 1139beb93cSSam Leffler * 1239beb93cSSam Leffler * See README and COPYING for more details. 1339beb93cSSam Leffler */ 1439beb93cSSam Leffler 1539beb93cSSam Leffler #ifndef PREAUTH_H 1639beb93cSSam Leffler #define PREAUTH_H 1739beb93cSSam Leffler 1839beb93cSSam Leffler struct wpa_scan_results; 1939beb93cSSam Leffler 2039beb93cSSam Leffler #if defined(IEEE8021X_EAPOL) && !defined(CONFIG_NO_WPA2) 2139beb93cSSam Leffler 2239beb93cSSam Leffler void pmksa_candidate_free(struct wpa_sm *sm); 2339beb93cSSam Leffler int rsn_preauth_init(struct wpa_sm *sm, const u8 *dst, 2439beb93cSSam Leffler struct eap_peer_config *eap_conf); 2539beb93cSSam Leffler void rsn_preauth_deinit(struct wpa_sm *sm); 2639beb93cSSam Leffler void rsn_preauth_scan_results(struct wpa_sm *sm, 2739beb93cSSam Leffler struct wpa_scan_results *results); 2839beb93cSSam Leffler void pmksa_candidate_add(struct wpa_sm *sm, const u8 *bssid, 2939beb93cSSam Leffler int prio, int preauth); 3039beb93cSSam Leffler void rsn_preauth_candidate_process(struct wpa_sm *sm); 3139beb93cSSam Leffler int rsn_preauth_get_status(struct wpa_sm *sm, char *buf, size_t buflen, 3239beb93cSSam Leffler int verbose); 3339beb93cSSam Leffler int rsn_preauth_in_progress(struct wpa_sm *sm); 3439beb93cSSam Leffler 3539beb93cSSam Leffler #else /* IEEE8021X_EAPOL and !CONFIG_NO_WPA2 */ 3639beb93cSSam Leffler 3739beb93cSSam Leffler static inline void pmksa_candidate_free(struct wpa_sm *sm) 3839beb93cSSam Leffler { 3939beb93cSSam Leffler } 4039beb93cSSam Leffler 4139beb93cSSam Leffler static inline void rsn_preauth_candidate_process(struct wpa_sm *sm) 4239beb93cSSam Leffler { 4339beb93cSSam Leffler } 4439beb93cSSam Leffler 4539beb93cSSam Leffler static inline int rsn_preauth_init(struct wpa_sm *sm, const u8 *dst, 4639beb93cSSam Leffler struct eap_peer_config *eap_conf) 4739beb93cSSam Leffler { 4839beb93cSSam Leffler return -1; 4939beb93cSSam Leffler } 5039beb93cSSam Leffler 5139beb93cSSam Leffler static inline void rsn_preauth_deinit(struct wpa_sm *sm) 5239beb93cSSam Leffler { 5339beb93cSSam Leffler } 5439beb93cSSam Leffler static inline void rsn_preauth_scan_results(struct wpa_sm *sm, 5539beb93cSSam Leffler struct wpa_scan_results *results) 5639beb93cSSam Leffler { 5739beb93cSSam Leffler } 5839beb93cSSam Leffler 5939beb93cSSam Leffler static inline void pmksa_candidate_add(struct wpa_sm *sm, 6039beb93cSSam Leffler const u8 *bssid, 6139beb93cSSam Leffler int prio, int preauth) 6239beb93cSSam Leffler { 6339beb93cSSam Leffler } 6439beb93cSSam Leffler 6539beb93cSSam Leffler static inline int rsn_preauth_get_status(struct wpa_sm *sm, char *buf, 6639beb93cSSam Leffler size_t buflen, int verbose) 6739beb93cSSam Leffler { 6839beb93cSSam Leffler return 0; 6939beb93cSSam Leffler } 7039beb93cSSam Leffler 7139beb93cSSam Leffler static inline int rsn_preauth_in_progress(struct wpa_sm *sm) 7239beb93cSSam Leffler { 7339beb93cSSam Leffler return 0; 7439beb93cSSam Leffler } 7539beb93cSSam Leffler 7639beb93cSSam Leffler #endif /* IEEE8021X_EAPOL and !CONFIG_NO_WPA2 */ 7739beb93cSSam Leffler 7839beb93cSSam Leffler #endif /* PREAUTH_H */ 79