1214501Srpaulo/* 2214501Srpaulo * wpa_supplicant - IBSS RSN 3214501Srpaulo * Copyright (c) 2009, Jouni Malinen <j@w1.fi> 4214501Srpaulo * 5252726Srpaulo * This software may be distributed under the terms of the BSD license. 6252726Srpaulo * See README for more details. 7214501Srpaulo */ 8214501Srpaulo 9214501Srpaulo#ifndef IBSS_RSN_H 10214501Srpaulo#define IBSS_RSN_H 11214501Srpaulo 12214501Srpaulostruct ibss_rsn; 13214501Srpaulo 14214501Srpaulostruct ibss_rsn_peer { 15214501Srpaulo struct ibss_rsn_peer *next; 16214501Srpaulo struct ibss_rsn *ibss_rsn; 17214501Srpaulo 18214501Srpaulo u8 addr[ETH_ALEN]; 19214501Srpaulo 20214501Srpaulo struct wpa_sm *supp; 21214501Srpaulo enum wpa_states supp_state; 22214501Srpaulo u8 supp_ie[80]; 23214501Srpaulo size_t supp_ie_len; 24214501Srpaulo 25214501Srpaulo struct wpa_state_machine *auth; 26214501Srpaulo}; 27214501Srpaulo 28214501Srpaulostruct ibss_rsn { 29214501Srpaulo struct wpa_supplicant *wpa_s; 30214501Srpaulo struct wpa_authenticator *auth_group; 31214501Srpaulo struct ibss_rsn_peer *peers; 32214501Srpaulo u8 psk[PMK_LEN]; 33214501Srpaulo}; 34214501Srpaulo 35214501Srpaulo 36214501Srpaulostruct ibss_rsn * ibss_rsn_init(struct wpa_supplicant *wpa_s); 37214501Srpaulovoid ibss_rsn_deinit(struct ibss_rsn *ibss_rsn); 38214501Srpauloint ibss_rsn_start(struct ibss_rsn *ibss_rsn, const u8 *addr); 39252726Srpaulovoid ibss_rsn_stop(struct ibss_rsn *ibss_rsn, const u8 *peermac); 40214501Srpauloint ibss_rsn_rx_eapol(struct ibss_rsn *ibss_rsn, const u8 *src_addr, 41214501Srpaulo const u8 *buf, size_t len); 42214501Srpaulovoid ibss_rsn_set_psk(struct ibss_rsn *ibss_rsn, const u8 *psk); 43214501Srpaulo 44214501Srpaulo#endif /* IBSS_RSN_H */ 45