18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wpa_supplicant - WPA/RSN IE and KDE definitions
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef WPA_IE_H
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define WPA_IE_H
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpa_sm;
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpa_eapol_ie_parse {
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *wpa_ie;
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t wpa_ie_len;
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *rsn_ie;
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t rsn_ie_len;
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *pmkid;
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *gtk;
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t gtk_len;
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *mac_addr;
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t mac_addr_len;
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_PEERKEY
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *smk;
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t smk_len;
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *nonce;
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t nonce_len;
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *lifetime;
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t lifetime_len;
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *error;
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t error_len;
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_PEERKEY */
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_IEEE80211W
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *igtk;
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t igtk_len;
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_IEEE80211W */
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *mdie;
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t mdie_len;
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *ftie;
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t ftie_len;
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *reassoc_deadline;
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *key_lifetime;
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *lnkid;
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t lnkid_len;
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *ext_capab;
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t ext_capab_len;
481f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt	const u8 *supp_rates;
491f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt	size_t supp_rates_len;
501f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt	const u8 *ext_supp_rates;
511f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt	size_t ext_supp_rates_len;
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint wpa_supplicant_parse_ies(const u8 *buf, size_t len,
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			     struct wpa_eapol_ie_parse *ie);
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint wpa_gen_wpa_ie(struct wpa_sm *sm, u8 *wpa_ie, size_t wpa_ie_len);
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* WPA_IE_H */
59