wpa_auth_ie.h revision 8d520ff1dc2da35cdca849e982051b86468016d8
18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * hostapd - WPA/RSN IE and KDE definitions
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This program is free software; you can redistribute it and/or modify
68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * it under the terms of the GNU General Public License version 2 as
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * published by the Free Software Foundation.
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * license.
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * See README and COPYING for more details.
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef WPA_AUTH_IE_H
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define WPA_AUTH_IE_H
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpa_eapol_ie_parse {
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *wpa_ie;
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t wpa_ie_len;
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *rsn_ie;
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t rsn_ie_len;
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *pmkid;
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *gtk;
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t gtk_len;
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *mac_addr;
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t mac_addr_len;
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_PEERKEY
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *smk;
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t smk_len;
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *nonce;
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t nonce_len;
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *lifetime;
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t lifetime_len;
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *error;
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t error_len;
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_PEERKEY */
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_IEEE80211W
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *igtk;
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t igtk_len;
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_IEEE80211W */
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_IEEE80211R
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *mdie;
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t mdie_len;
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	const u8 *ftie;
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	size_t ftie_len;
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_IEEE80211R */
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint wpa_parse_kde_ies(const u8 *buf, size_t len,
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		      struct wpa_eapol_ie_parse *ie);
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtu8 * wpa_add_kde(u8 *pos, u32 kde, const u8 *data, size_t data_len,
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		 const u8 *data2, size_t data2_len);
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint wpa_auth_gen_wpa_ie(struct wpa_authenticator *wpa_auth);
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* WPA_AUTH_IE_H */
57