wpa_ie.h revision 33e38bfa7159cef089d6ee0d904778e184c72c47
1fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com/*
2fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com * wpa_supplicant - WPA/RSN IE and KDE definitions
3fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
4fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com *
5fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com * This software may be distributed under the terms of the BSD license.
6fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com * See README for more details.
7b45a1b46ee25e9b19800b028bb1ca925212ac7b4caryclark@google.com */
8fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com
9fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com#ifndef WPA_IE_H
10fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com#define WPA_IE_H
11fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com
1215fa138f2276a77679530fb608463ff5b4133f7bcaryclark@google.comstruct wpa_sm;
1315fa138f2276a77679530fb608463ff5b4133f7bcaryclark@google.com
1415fa138f2276a77679530fb608463ff5b4133f7bcaryclark@google.comstruct wpa_eapol_ie_parse {
15b45a1b46ee25e9b19800b028bb1ca925212ac7b4caryclark@google.com	const u8 *wpa_ie;
16b45a1b46ee25e9b19800b028bb1ca925212ac7b4caryclark@google.com	size_t wpa_ie_len;
1715fa138f2276a77679530fb608463ff5b4133f7bcaryclark@google.com	const u8 *rsn_ie;
1815fa138f2276a77679530fb608463ff5b4133f7bcaryclark@google.com	size_t rsn_ie_len;
1915fa138f2276a77679530fb608463ff5b4133f7bcaryclark@google.com	const u8 *pmkid;
2047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *gtk;
2115fa138f2276a77679530fb608463ff5b4133f7bcaryclark@google.com	size_t gtk_len;
22fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com	const u8 *mac_addr;
2347580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	size_t mac_addr_len;
2447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com#ifdef CONFIG_PEERKEY
2547580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *smk;
2647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	size_t smk_len;
2747580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *nonce;
28a461ff0866526bc51dbd4c4f9f066a727ec21510caryclark@google.com	size_t nonce_len;
29a461ff0866526bc51dbd4c4f9f066a727ec21510caryclark@google.com	const u8 *lifetime;
3047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	size_t lifetime_len;
3147580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *error;
32a461ff0866526bc51dbd4c4f9f066a727ec21510caryclark@google.com	size_t error_len;
33fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com#endif /* CONFIG_PEERKEY */
3447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com#ifdef CONFIG_IEEE80211W
35fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com	const u8 *igtk;
3647580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	size_t igtk_len;
37fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com#endif /* CONFIG_IEEE80211W */
3847580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *mdie;
39c899ad9c7fa28234d99479ab09afb6866bbd8dc3caryclark@google.com	size_t mdie_len;
4047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *ftie;
418dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com	size_t ftie_len;
4247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *reassoc_deadline;
43a461ff0866526bc51dbd4c4f9f066a727ec21510caryclark@google.com	const u8 *key_lifetime;
4447580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *lnkid;
45afe56de6361a81eef537ddd8f6d5626c8546d4c7caryclark@google.com	size_t lnkid_len;
468dcf114db9762c02d217beba6e29dffa4e92d298caryclark@google.com	const u8 *ext_capab;
47fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com	size_t ext_capab_len;
48fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com	const u8 *supp_rates;
49fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com	size_t supp_rates_len;
5047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com	const u8 *ext_supp_rates;
51fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com	size_t ext_supp_rates_len;
52c91dfe417a51f73c28ecf2708df1e0bee942c6eacaryclark@google.com	const u8 *ht_capabilities;
536aea33f92c611d6fdc88bc2352c5c966168af83bcaryclark@google.com	size_t ht_capabilities_len;
546aea33f92c611d6fdc88bc2352c5c966168af83bcaryclark@google.com	const u8 *vht_capabilities;
553350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com	size_t vht_capabilities_len;
563350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com	u8 qosinfo;
57534aa5b9460639a09b9dc30d29e77782e44b8fffcaryclark@google.com};
583350c3c68ab75cd08721da3a938b8d2b10096d70caryclark@google.com
5965f9f0a1664a9cb38157ccfbcc3e0e936af0a58ecaryclark@google.comint wpa_supplicant_parse_ies(const u8 *buf, size_t len,
6047580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com			     struct wpa_eapol_ie_parse *ie);
61afe56de6361a81eef537ddd8f6d5626c8546d4c7caryclark@google.comint wpa_gen_wpa_ie(struct wpa_sm *sm, u8 *wpa_ie, size_t wpa_ie_len);
6247580694fbe974a065caf7c39c3d2075708c2018caryclark@google.com
63fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com#endif /* WPA_IE_H */
64fa0588ff672564af1c235a63589573829035a60bcaryclark@google.com