00001 /* 00002 * wpa_supplicant - IBSS RSN 00003 * Copyright (c) 2009, 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 IBSS_RSN_H 00016 #define IBSS_RSN_H 00017 00018 struct ibss_rsn; 00019 00020 struct ibss_rsn_peer { 00021 struct ibss_rsn_peer *next; 00022 struct ibss_rsn *ibss_rsn; 00023 00024 u8 addr[ETH_ALEN]; 00025 00026 struct wpa_sm *supp; 00027 enum wpa_states supp_state; 00028 u8 supp_ie[80]; 00029 size_t supp_ie_len; 00030 00031 struct wpa_state_machine *auth; 00032 }; 00033 00034 struct ibss_rsn { 00035 struct wpa_supplicant *wpa_s; 00036 struct wpa_authenticator *auth_group; 00037 struct ibss_rsn_peer *peers; 00038 u8 psk[PMK_LEN]; 00039 }; 00040 00041 00042 struct ibss_rsn * ibss_rsn_init(struct wpa_supplicant *wpa_s); 00043 void ibss_rsn_deinit(struct ibss_rsn *ibss_rsn); 00044 int ibss_rsn_start(struct ibss_rsn *ibss_rsn, const u8 *addr); 00045 int ibss_rsn_rx_eapol(struct ibss_rsn *ibss_rsn, const u8 *src_addr, 00046 const u8 *buf, size_t len); 00047 void ibss_rsn_set_psk(struct ibss_rsn *ibss_rsn, const u8 *psk); 00048 00049 #endif /* IBSS_RSN_H */