~ubuntu-branches/ubuntu/hardy/wpasupplicant/hardy

« back to all changes in this revision

Viewing changes to src/rsn_supp/wpa.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler, Alexander Sack
  • Date: 2007-08-26 16:06:57 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20070826160657-2m8pxoweuxe8f93t
Tags: 0.6.0+0.5.8-0ubuntu1
* New upstream release
* remove patch 11_erroneous_manpage_ref, applied upstream
* remove patch 25_wpas_dbus_unregister_iface_fix, applied upstream

[ Alexander Sack ]
* bumping upstream version to replace development version 0.6.0 with
  this package from stable release branch.
* attempt to fix wierd timeout and high latency issues by going
  back to stable upstream version (0.5.9) (LP: #140763,
  LP: #141233).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * wpa_supplicant - WPA definitions
3
 
 * Copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>
4
 
 *
5
 
 * This program is free software; you can redistribute it and/or modify
6
 
 * it under the terms of the GNU General Public License version 2 as
7
 
 * published by the Free Software Foundation.
8
 
 *
9
 
 * Alternatively, this software may be distributed under the terms of BSD
10
 
 * license.
11
 
 *
12
 
 * See README and COPYING for more details.
13
 
 */
14
 
 
15
 
#ifndef WPA_H
16
 
#define WPA_H
17
 
 
18
 
#include "defs.h"
19
 
#include "wpa_common.h"
20
 
 
21
 
#ifndef ETH_P_EAPOL
22
 
#define ETH_P_EAPOL 0x888e
23
 
#endif
24
 
 
25
 
#ifndef ETH_P_RSN_PREAUTH
26
 
#define ETH_P_RSN_PREAUTH 0x88c7
27
 
#endif
28
 
 
29
 
struct wpa_sm;
30
 
struct wpa_ssid;
31
 
struct eapol_sm;
32
 
struct wpa_config_blob;
33
 
 
34
 
struct wpa_sm_ctx {
35
 
        void *ctx; /* pointer to arbitrary upper level context */
36
 
 
37
 
        void (*set_state)(void *ctx, wpa_states state);
38
 
        wpa_states (*get_state)(void *ctx);
39
 
        void (*req_scan)(void *ctx, int sec, int usec);
40
 
        void (*cancel_scan)(void *ctx);
41
 
        void (*deauthenticate)(void * ctx, int reason_code); 
42
 
        void (*disassociate)(void *ctx, int reason_code);
43
 
        int (*set_key)(void *ctx, wpa_alg alg,
44
 
                       const u8 *addr, int key_idx, int set_tx,
45
 
                       const u8 *seq, size_t seq_len,
46
 
                       const u8 *key, size_t key_len);
47
 
        struct wpa_ssid * (*get_ssid)(void *ctx);
48
 
        int (*get_bssid)(void *ctx, u8 *bssid);
49
 
        int (*ether_send)(void *ctx, const u8 *dest, u16 proto, const u8 *buf,
50
 
                          size_t len);
51
 
        int (*get_beacon_ie)(void *ctx);
52
 
        void (*cancel_auth_timeout)(void *ctx);
53
 
        u8 * (*alloc_eapol)(void *ctx, u8 type, const void *data, u16 data_len,
54
 
                            size_t *msg_len, void **data_pos);
55
 
        int (*add_pmkid)(void *ctx, const u8 *bssid, const u8 *pmkid);
56
 
        int (*remove_pmkid)(void *ctx, const u8 *bssid, const u8 *pmkid);
57
 
        void (*set_config_blob)(void *ctx, struct wpa_config_blob *blob);
58
 
        const struct wpa_config_blob * (*get_config_blob)(void *ctx,
59
 
                                                          const char *name);
60
 
        int (*mlme_setprotection)(void *ctx, const u8 *addr,
61
 
                                  int protection_type, int key_type);
62
 
        int (*update_ft_ies)(void *ctx, const u8 *md, const u8 *ies,
63
 
                             size_t ies_len);
64
 
        int (*send_ft_action)(void *ctx, u8 action, const u8 *target_ap,
65
 
                              const u8 *ies, size_t ies_len);
66
 
};
67
 
 
68
 
 
69
 
enum wpa_sm_conf_params {
70
 
        RSNA_PMK_LIFETIME /* dot11RSNAConfigPMKLifetime */,
71
 
        RSNA_PMK_REAUTH_THRESHOLD /* dot11RSNAConfigPMKReauthThreshold */,
72
 
        RSNA_SA_TIMEOUT /* dot11RSNAConfigSATimeout */,
73
 
        WPA_PARAM_PROTO,
74
 
        WPA_PARAM_PAIRWISE,
75
 
        WPA_PARAM_GROUP,
76
 
        WPA_PARAM_KEY_MGMT,
77
 
        WPA_PARAM_MGMT_GROUP,
78
 
        WPA_PARAM_RSN_ENABLED
79
 
};
80
 
 
81
 
#ifndef CONFIG_NO_WPA
82
 
 
83
 
struct wpa_sm * wpa_sm_init(struct wpa_sm_ctx *ctx);
84
 
void wpa_sm_deinit(struct wpa_sm *sm);
85
 
void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid);
86
 
void wpa_sm_notify_disassoc(struct wpa_sm *sm);
87
 
void wpa_sm_set_pmk(struct wpa_sm *sm, const u8 *pmk, size_t pmk_len);
88
 
void wpa_sm_set_pmk_from_pmksa(struct wpa_sm *sm);
89
 
void wpa_sm_set_fast_reauth(struct wpa_sm *sm, int fast_reauth);
90
 
void wpa_sm_set_scard_ctx(struct wpa_sm *sm, void *scard_ctx);
91
 
void wpa_sm_set_config(struct wpa_sm *sm, struct wpa_ssid *config);
92
 
void wpa_sm_set_own_addr(struct wpa_sm *sm, const u8 *addr);
93
 
void wpa_sm_set_ifname(struct wpa_sm *sm, const char *ifname,
94
 
                       const char *bridge_ifname);
95
 
void wpa_sm_set_eapol(struct wpa_sm *sm, struct eapol_sm *eapol);
96
 
int wpa_sm_set_assoc_wpa_ie(struct wpa_sm *sm, const u8 *ie, size_t len);
97
 
int wpa_sm_set_assoc_wpa_ie_default(struct wpa_sm *sm, u8 *wpa_ie,
98
 
                                    size_t *wpa_ie_len);
99
 
int wpa_sm_set_ap_wpa_ie(struct wpa_sm *sm, const u8 *ie, size_t len);
100
 
int wpa_sm_set_ap_rsn_ie(struct wpa_sm *sm, const u8 *ie, size_t len);
101
 
int wpa_sm_get_mib(struct wpa_sm *sm, char *buf, size_t buflen);
102
 
 
103
 
int wpa_sm_set_param(struct wpa_sm *sm, enum wpa_sm_conf_params param,
104
 
                     unsigned int value);
105
 
unsigned int wpa_sm_get_param(struct wpa_sm *sm,
106
 
                              enum wpa_sm_conf_params param);
107
 
 
108
 
int wpa_sm_get_status(struct wpa_sm *sm, char *buf, size_t buflen,
109
 
                      int verbose);
110
 
 
111
 
void wpa_sm_key_request(struct wpa_sm *sm, int error, int pairwise);
112
 
 
113
 
int wpa_parse_wpa_ie(const u8 *wpa_ie, size_t wpa_ie_len,
114
 
                     struct wpa_ie_data *data);
115
 
 
116
 
void wpa_sm_aborted_cached(struct wpa_sm *sm);
117
 
int wpa_sm_rx_eapol(struct wpa_sm *sm, const u8 *src_addr,
118
 
                    const u8 *buf, size_t len);
119
 
int wpa_sm_parse_own_wpa_ie(struct wpa_sm *sm, struct wpa_ie_data *data);
120
 
 
121
 
#else /* CONFIG_NO_WPA */
122
 
 
123
 
static inline struct wpa_sm * wpa_sm_init(struct wpa_sm_ctx *ctx)
124
 
{
125
 
        return (struct wpa_sm *) 1;
126
 
}
127
 
 
128
 
static inline void wpa_sm_deinit(struct wpa_sm *sm)
129
 
{
130
 
}
131
 
 
132
 
static inline void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
133
 
{
134
 
}
135
 
 
136
 
static inline void wpa_sm_notify_disassoc(struct wpa_sm *sm)
137
 
{
138
 
}
139
 
 
140
 
static inline void wpa_sm_set_pmk(struct wpa_sm *sm, const u8 *pmk,
141
 
                                  size_t pmk_len)
142
 
{
143
 
}
144
 
 
145
 
static inline void wpa_sm_set_pmk_from_pmksa(struct wpa_sm *sm)
146
 
{
147
 
}
148
 
 
149
 
static inline void wpa_sm_set_fast_reauth(struct wpa_sm *sm, int fast_reauth)
150
 
{
151
 
}
152
 
 
153
 
static inline void wpa_sm_set_scard_ctx(struct wpa_sm *sm, void *scard_ctx)
154
 
{
155
 
}
156
 
 
157
 
static inline void wpa_sm_set_config(struct wpa_sm *sm,
158
 
                                     struct wpa_ssid *config)
159
 
{
160
 
}
161
 
 
162
 
static inline void wpa_sm_set_own_addr(struct wpa_sm *sm, const u8 *addr)
163
 
{
164
 
}
165
 
 
166
 
static inline void wpa_sm_set_ifname(struct wpa_sm *sm, const char *ifname,
167
 
                                     const char *bridge_ifname)
168
 
{
169
 
}
170
 
 
171
 
static inline void wpa_sm_set_eapol(struct wpa_sm *sm, struct eapol_sm *eapol)
172
 
{
173
 
}
174
 
 
175
 
static inline int wpa_sm_set_assoc_wpa_ie(struct wpa_sm *sm, const u8 *ie,
176
 
                                          size_t len)
177
 
{
178
 
        return -1;
179
 
}
180
 
 
181
 
static inline int wpa_sm_set_assoc_wpa_ie_default(struct wpa_sm *sm,
182
 
                                                  u8 *wpa_ie,
183
 
                                                  size_t *wpa_ie_len)
184
 
{
185
 
        return -1;
186
 
}
187
 
 
188
 
static inline int wpa_sm_set_ap_wpa_ie(struct wpa_sm *sm, const u8 *ie,
189
 
                                       size_t len)
190
 
{
191
 
        return -1;
192
 
}
193
 
 
194
 
static inline int wpa_sm_set_ap_rsn_ie(struct wpa_sm *sm, const u8 *ie,
195
 
                                       size_t len)
196
 
{
197
 
        return -1;
198
 
}
199
 
 
200
 
static inline int wpa_sm_get_mib(struct wpa_sm *sm, char *buf, size_t buflen)
201
 
{
202
 
        return 0;
203
 
}
204
 
 
205
 
static inline int wpa_sm_set_param(struct wpa_sm *sm,
206
 
                                   enum wpa_sm_conf_params param,
207
 
                                   unsigned int value)
208
 
{
209
 
        return -1;
210
 
}
211
 
 
212
 
static inline unsigned int wpa_sm_get_param(struct wpa_sm *sm,
213
 
                                            enum wpa_sm_conf_params param)
214
 
{
215
 
        return 0;
216
 
}
217
 
 
218
 
static inline int wpa_sm_get_status(struct wpa_sm *sm, char *buf,
219
 
                                    size_t buflen, int verbose)
220
 
{
221
 
        return 0;
222
 
}
223
 
 
224
 
static inline void wpa_sm_key_request(struct wpa_sm *sm, int error,
225
 
                                      int pairwise)
226
 
{
227
 
}
228
 
 
229
 
static inline int wpa_parse_wpa_ie(const u8 *wpa_ie, size_t wpa_ie_len,
230
 
                                   struct wpa_ie_data *data)
231
 
{
232
 
        return -1;
233
 
}
234
 
 
235
 
static inline void wpa_sm_aborted_cached(struct wpa_sm *sm)
236
 
{
237
 
}
238
 
 
239
 
static inline int wpa_sm_rx_eapol(struct wpa_sm *sm, const u8 *src_addr,
240
 
                                  const u8 *buf, size_t len)
241
 
{
242
 
        return -1;
243
 
}
244
 
 
245
 
static inline int wpa_sm_parse_own_wpa_ie(struct wpa_sm *sm,
246
 
                                          struct wpa_ie_data *data)
247
 
{
248
 
        return -1;
249
 
}
250
 
 
251
 
#endif /* CONFIG_NO_WPA */
252
 
 
253
 
#ifdef CONFIG_PEERKEY
254
 
int wpa_sm_stkstart(struct wpa_sm *sm, const u8 *peer);
255
 
#else /* CONFIG_PEERKEY */
256
 
static inline int wpa_sm_stkstart(struct wpa_sm *sm, const u8 *peer)
257
 
{
258
 
        return -1;
259
 
}
260
 
#endif /* CONFIG_PEERKEY */
261
 
 
262
 
#ifdef CONFIG_IEEE80211R
263
 
 
264
 
int wpa_sm_set_ft_params(struct wpa_sm *sm, const u8 *mobility_domain,
265
 
                         const u8 *r0kh_id, size_t r0kh_id_len,
266
 
                         const u8 *r1kh_id);
267
 
int wpa_ft_prepare_auth_request(struct wpa_sm *sm);
268
 
int wpa_ft_process_response(struct wpa_sm *sm, const u8 *ies, size_t ies_len,
269
 
                            int ft_action, const u8 *target_ap);
270
 
int wpa_ft_is_completed(struct wpa_sm *sm);
271
 
int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
272
 
                                 size_t ies_len);
273
 
int wpa_ft_start_over_ds(struct wpa_sm *sm, const u8 *target_ap);
274
 
 
275
 
#else /* CONFIG_IEEE80211R */
276
 
 
277
 
static inline int
278
 
wpa_sm_set_ft_params(struct wpa_sm *sm, const u8 *mobility_domain,
279
 
                     const u8 *r0kh_id, const u8 *r1kh_id)
280
 
{
281
 
        return 0;
282
 
}
283
 
 
284
 
static inline int wpa_ft_prepare_auth_request(struct wpa_sm *sm)
285
 
{
286
 
        return 0;
287
 
}
288
 
 
289
 
static inline int
290
 
wpa_ft_process_response(struct wpa_sm *sm, const u8 *ies, size_t ies_len,
291
 
                        int ft_action, const u8 *target_ap)
292
 
{
293
 
        return 0;
294
 
}
295
 
 
296
 
static inline int wpa_ft_is_completed(struct wpa_sm *sm)
297
 
{
298
 
        return 0;
299
 
}
300
 
 
301
 
static inline int
302
 
wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, size_t ies_len)
303
 
{
304
 
        return -1;
305
 
}
306
 
 
307
 
#endif /* CONFIG_IEEE80211R */
308
 
 
309
 
#endif /* WPA_H */