1 /*
2  * wpa_supplicant - WPA2/RSN pre-authentication functions
3  * Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8 
9 #ifndef PREAUTH_H
10 #define PREAUTH_H
11 
12 struct wpa_scan_results;
13 
14 #ifdef IEEE8021X_EAPOL
15 
16 void pmksa_candidate_free(struct wpa_sm *sm);
17 int rsn_preauth_init(struct wpa_sm *sm, const u8 *dst,
18 		     struct eap_peer_config *eap_conf);
19 void rsn_preauth_deinit(struct wpa_sm *sm);
20 int rsn_preauth_scan_results(struct wpa_sm *sm);
21 void rsn_preauth_scan_result(struct wpa_sm *sm, const u8 *bssid,
22 			     const u8 *ssid, const u8 *rsn);
23 void pmksa_candidate_add(struct wpa_sm *sm, const u8 *bssid,
24 			 int prio, int preauth);
25 void rsn_preauth_candidate_process(struct wpa_sm *sm);
26 int rsn_preauth_get_status(struct wpa_sm *sm, char *buf, size_t buflen,
27 			   int verbose);
28 int rsn_preauth_in_progress(struct wpa_sm *sm);
29 
30 #else /* IEEE8021X_EAPOL */
31 
32 static inline void pmksa_candidate_free(struct wpa_sm *sm)
33 {
34 }
35 
36 static inline void rsn_preauth_candidate_process(struct wpa_sm *sm)
37 {
38 }
39 
40 static inline int rsn_preauth_init(struct wpa_sm *sm, const u8 *dst,
41 				   struct eap_peer_config *eap_conf)
42 {
43 	return -1;
44 }
45 
46 static inline void rsn_preauth_deinit(struct wpa_sm *sm)
47 {
48 }
49 
50 static inline int rsn_preauth_scan_results(struct wpa_sm *sm)
51 {
52 	return -1;
53 }
54 
55 static inline void rsn_preauth_scan_result(struct wpa_sm *sm, const u8 *bssid,
56 					   const u8 *ssid, const u8 *rsn)
57 {
58 }
59 
60 static inline void pmksa_candidate_add(struct wpa_sm *sm,
61 				       const u8 *bssid,
62 				       int prio, int preauth)
63 {
64 }
65 
66 static inline int rsn_preauth_get_status(struct wpa_sm *sm, char *buf,
67 					 size_t buflen, int verbose)
68 {
69 	return 0;
70 }
71 
72 static inline int rsn_preauth_in_progress(struct wpa_sm *sm)
73 {
74 	return 0;
75 }
76 
77 #endif /* IEEE8021X_EAPOL */
78 
79 #endif /* PREAUTH_H */
80