12 #include "common/defs.h" 13 #include "common/eapol_common.h" 14 #include "common/wpa_common.h" 15 #include "common/ieee802_11_defs.h" 17 #define MAX_OWN_IE_OVERRIDE 256 29 u8 ap_address[ETH_ALEN];
36 #define RSN_REMOTE_FRAME_TYPE_FT_RRB 1 38 #define FT_PACKET_REQUEST 0 39 #define FT_PACKET_RESPONSE 1 41 #define FT_PACKET_R0KH_R1KH_PULL 200 42 #define FT_PACKET_R0KH_R1KH_RESP 201 43 #define FT_PACKET_R0KH_R1KH_PUSH 202 45 #define FT_R0KH_R1KH_PULL_NONCE_LEN 16 46 #define FT_R0KH_R1KH_PULL_DATA_LEN (FT_R0KH_R1KH_PULL_NONCE_LEN + \ 47 WPA_PMK_NAME_LEN + FT_R1KH_ID_LEN + \ 49 #define FT_R0KH_R1KH_PULL_PAD_LEN ((8 - FT_R0KH_R1KH_PULL_DATA_LEN % 8) % 8) 55 u8 ap_address[ETH_ALEN];
57 u8 nonce[FT_R0KH_R1KH_PULL_NONCE_LEN];
58 u8 pmk_r0_name[WPA_PMK_NAME_LEN];
59 u8 r1kh_id[FT_R1KH_ID_LEN];
61 u8 pad[FT_R0KH_R1KH_PULL_PAD_LEN];
65 #define FT_R0KH_R1KH_RESP_DATA_LEN (FT_R0KH_R1KH_PULL_NONCE_LEN + \ 66 FT_R1KH_ID_LEN + ETH_ALEN + PMK_LEN + \ 68 #define FT_R0KH_R1KH_RESP_PAD_LEN ((8 - FT_R0KH_R1KH_RESP_DATA_LEN % 8) % 8) 73 u8 ap_address[ETH_ALEN];
75 u8 nonce[FT_R0KH_R1KH_PULL_NONCE_LEN];
76 u8 r1kh_id[FT_R1KH_ID_LEN];
79 u8 pmk_r1_name[WPA_PMK_NAME_LEN];
81 u8 pad[FT_R0KH_R1KH_RESP_PAD_LEN];
85 #define FT_R0KH_R1KH_PUSH_DATA_LEN (4 + FT_R1KH_ID_LEN + ETH_ALEN + \ 86 WPA_PMK_NAME_LEN + PMK_LEN + \ 88 #define FT_R0KH_R1KH_PUSH_PAD_LEN ((8 - FT_R0KH_R1KH_PUSH_DATA_LEN % 8) % 8) 93 u8 ap_address[ETH_ALEN];
98 u8 r1kh_id[FT_R1KH_ID_LEN];
100 u8 pmk_r0_name[WPA_PMK_NAME_LEN];
102 u8 pmk_r1_name[WPA_PMK_NAME_LEN];
104 u8 pad[FT_R0KH_R1KH_PUSH_PAD_LEN];
105 u8 key_wrap_extra[8];
124 u8
id[FT_R0KH_ID_MAX_LEN];
133 u8
id[FT_R1KH_ID_LEN];
144 int wpa_strict_rekey;
153 int disable_pmksa_caching;
156 #ifdef CONFIG_IEEE80211W 157 enum mfp_options ieee80211w;
158 int group_mgmt_cipher;
160 #ifdef CONFIG_IEEE80211R_AP 161 u8 ssid[SSID_MAX_LEN];
163 u8 mobility_domain[MOBILITY_DOMAIN_ID_LEN];
164 u8 r0_key_holder[FT_R0KH_ID_MAX_LEN];
165 size_t r0_key_holder_len;
166 u8 r1_key_holder[FT_R1KH_ID_LEN];
168 u32 reassociation_deadline;
173 int ft_psk_generate_local;
177 #ifdef CONFIG_TESTING_OPTIONS 178 double corrupt_gtk_rekey_mic_probability;
179 u8 own_ie_override[MAX_OWN_IE_OVERRIDE];
180 size_t own_ie_override_len;
191 LOGGER_DEBUG, LOGGER_INFO, LOGGER_WARNING
195 WPA_EAPOL_portEnabled, WPA_EAPOL_portValid, WPA_EAPOL_authorized,
196 WPA_EAPOL_portControl_Auto, WPA_EAPOL_keyRun, WPA_EAPOL_keyAvailable,
197 WPA_EAPOL_keyDone, WPA_EAPOL_inc_EapolFramesTx
198 } wpa_eapol_variable;
202 void (*logger)(
void *ctx,
const u8 *addr, logger_level level,
204 void (*disconnect)(
void *ctx,
const u8 *addr, u16 reason);
205 int (*mic_failure_report)(
void *ctx,
const u8 *addr);
206 void (*psk_failure_report)(
void *ctx,
const u8 *addr);
207 void (*set_eapol)(
void *ctx,
const u8 *addr, wpa_eapol_variable var,
209 int (*get_eapol)(
void *ctx,
const u8 *addr, wpa_eapol_variable var);
210 const u8 * (*get_psk)(
void *ctx,
const u8 *addr,
const u8 *p2p_dev_addr,
212 int (*get_msk)(
void *ctx,
const u8 *addr, u8 *msk,
size_t *len);
213 int (*set_key)(
void *ctx,
int vlan_id,
enum wpa_alg alg,
214 const u8 *addr,
int idx, u8 *key,
size_t key_len);
215 int (*get_seqnum)(
void *ctx,
const u8 *addr,
int idx, u8 *seq);
216 int (*send_eapol)(
void *ctx,
const u8 *addr,
const u8 *data,
217 size_t data_len,
int encrypt);
219 void *ctx),
void *cb_ctx);
221 void *ctx),
void *cb_ctx);
222 int (*send_ether)(
void *ctx,
const u8 *dst, u16 proto,
const u8 *data,
224 #ifdef CONFIG_IEEE80211R_AP 226 int (*send_ft_action)(
void *ctx,
const u8 *dst,
227 const u8 *data,
size_t data_len);
228 int (*add_tspec)(
void *ctx,
const u8 *sta_addr, u8 *tspec_ie,
232 int (*start_ampe)(
void *ctx,
const u8 *sta_addr);
245 WPA_IE_OK, WPA_INVALID_IE, WPA_INVALID_GROUP, WPA_INVALID_PAIRWISE,
246 WPA_INVALID_AKMP, WPA_NOT_ENABLED, WPA_ALLOC_FAIL,
247 WPA_MGMT_FRAME_PROTECTION_VIOLATION, WPA_INVALID_MGMT_GROUP_CIPHER,
248 WPA_INVALID_MDIE, WPA_INVALID_PROTO
253 const u8 *wpa_ie,
size_t wpa_ie_len,
254 const u8 *mdie,
size_t mdie_len);
257 const u8 *osen_ie,
size_t osen_ie_len);
261 const u8 *p2p_dev_addr);
268 u8 *data,
size_t data_len);
270 WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH,
271 WPA_REAUTH_EAPOL, WPA_ASSOC_FT
292 unsigned int pmk_len,
295 const u8 *pmk,
size_t len,
const u8 *sta_addr,
299 const u8 *pmk,
const u8 *pmkid);
316 #ifdef CONFIG_IEEE80211R_AP 318 size_t max_len,
int auth_alg,
319 const u8 *req_ies,
size_t req_ies_len);
321 u16 auth_transaction,
const u8 *ies,
size_t ies_len,
322 void (*cb)(
void *ctx,
const u8 *dst,
const u8 *bssid,
323 u16 auth_transaction, u16 resp,
324 const u8 *ies,
size_t ies_len),
330 const u8 *data,
size_t data_len);
352 size_t pmk_len,
const u8 *snonce,
const u8 *anonce);
355 u8 *pos,
size_t left);
357 size_t current_len,
size_t max_len);
Definition: wpa_auth.h:200
Definition: wpa_auth_i.h:24
Definition: wpa_auth.h:69
Definition: wpa_auth.h:25
struct eapol_state_machine - Per-Supplicant Authenticator state machines
Definition: eapol_auth_sm_i.h:39
Definition: wpa_auth.h:130
Definition: wpa_auth.h:121
Definition: ieee802_11_defs.h:770
Definition: wpa_auth_i.h:189
Definition: wpa_auth.h:138
struct rsn_pmksa_cache_entry - PMKSA cache entry
Definition: pmksa_cache_auth.h:17
Definition: wpa_auth.h:51
Definition: wpa_auth.h:89
Definition: wpa_auth_i.h:152
Definition: radius_das.h:21