00001 /* 00002 * hostapd - WPA/RSN IE and KDE definitions 00003 * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License version 2 as 00007 * published by the Free Software Foundation. 00008 * 00009 * Alternatively, this software may be distributed under the terms of BSD 00010 * license. 00011 * 00012 * See README and COPYING for more details. 00013 */ 00014 00015 #ifndef WPA_AUTH_IE_H 00016 #define WPA_AUTH_IE_H 00017 00018 struct wpa_eapol_ie_parse { 00019 const u8 *wpa_ie; 00020 size_t wpa_ie_len; 00021 const u8 *rsn_ie; 00022 size_t rsn_ie_len; 00023 const u8 *pmkid; 00024 const u8 *gtk; 00025 size_t gtk_len; 00026 const u8 *mac_addr; 00027 size_t mac_addr_len; 00028 #ifdef CONFIG_PEERKEY 00029 const u8 *smk; 00030 size_t smk_len; 00031 const u8 *nonce; 00032 size_t nonce_len; 00033 const u8 *lifetime; 00034 size_t lifetime_len; 00035 const u8 *error; 00036 size_t error_len; 00037 #endif /* CONFIG_PEERKEY */ 00038 #ifdef CONFIG_IEEE80211W 00039 const u8 *igtk; 00040 size_t igtk_len; 00041 #endif /* CONFIG_IEEE80211W */ 00042 #ifdef CONFIG_IEEE80211R 00043 const u8 *mdie; 00044 size_t mdie_len; 00045 const u8 *ftie; 00046 size_t ftie_len; 00047 #endif /* CONFIG_IEEE80211R */ 00048 }; 00049 00050 int wpa_parse_kde_ies(const u8 *buf, size_t len, 00051 struct wpa_eapol_ie_parse *ie); 00052 u8 * wpa_add_kde(u8 *pos, u32 kde, const u8 *data, size_t data_len, 00053 const u8 *data2, size_t data2_len); 00054 int wpa_auth_gen_wpa_ie(struct wpa_authenticator *wpa_auth); 00055 00056 #endif /* WPA_AUTH_IE_H */