wpa_ie.h revision 51b6ea882f234c14cd1fe1332a3840cf61fafcca
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * wpa_supplicant - WPA/RSN IE and KDE definitions 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This software may be distributed under the terms of the BSD license. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * See README for more details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef WPA_IE_H 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define WPA_IE_H 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct wpa_sm; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct wpa_eapol_ie_parse { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *wpa_ie; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t wpa_ie_len; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *rsn_ie; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t rsn_ie_len; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *pmkid; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *gtk; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t gtk_len; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *mac_addr; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t mac_addr_len; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef CONFIG_PEERKEY 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *smk; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t smk_len; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *nonce; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t nonce_len; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *lifetime; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t lifetime_len; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *error; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t error_len; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* CONFIG_PEERKEY */ 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef CONFIG_IEEE80211W 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *igtk; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t igtk_len; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* CONFIG_IEEE80211W */ 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *mdie; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t mdie_len; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *ftie; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t ftie_len; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *reassoc_deadline; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *key_lifetime; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *lnkid; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t lnkid_len; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *ext_capab; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t ext_capab_len; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *supp_rates; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t supp_rates_len; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *ext_supp_rates; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t ext_supp_rates_len; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *ht_capabilities; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t ht_capabilities_len; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const u8 *vht_capabilities; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t vht_capabilities_len; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) u8 qosinfo; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) u16 aid; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int wpa_supplicant_parse_ies(const u8 *buf, size_t len, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct wpa_eapol_ie_parse *ie); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int wpa_gen_wpa_ie(struct wpa_sm *sm, u8 *wpa_ie, size_t wpa_ie_len); 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* WPA_IE_H */ 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)