139beb93cSSam Leffler /* 239beb93cSSam Leffler * WPA Supplicant - privilege separation commands 339beb93cSSam Leffler * Copyright (c) 2007-2009, Jouni Malinen <j@w1.fi> 439beb93cSSam Leffler * 5f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6f05cddf9SRui Paulo * See README for more details. 739beb93cSSam Leffler */ 839beb93cSSam Leffler 939beb93cSSam Leffler #ifndef PRIVSEP_COMMANDS_H 1039beb93cSSam Leffler #define PRIVSEP_COMMANDS_H 1139beb93cSSam Leffler 12*325151a3SRui Paulo #include "common/ieee802_11_defs.h" 13*325151a3SRui Paulo 1439beb93cSSam Leffler enum privsep_cmd { 1539beb93cSSam Leffler PRIVSEP_CMD_REGISTER, 1639beb93cSSam Leffler PRIVSEP_CMD_UNREGISTER, 1739beb93cSSam Leffler PRIVSEP_CMD_SCAN, 1839beb93cSSam Leffler PRIVSEP_CMD_GET_SCAN_RESULTS, 1939beb93cSSam Leffler PRIVSEP_CMD_ASSOCIATE, 2039beb93cSSam Leffler PRIVSEP_CMD_GET_BSSID, 2139beb93cSSam Leffler PRIVSEP_CMD_GET_SSID, 2239beb93cSSam Leffler PRIVSEP_CMD_SET_KEY, 2339beb93cSSam Leffler PRIVSEP_CMD_GET_CAPA, 2439beb93cSSam Leffler PRIVSEP_CMD_L2_REGISTER, 2539beb93cSSam Leffler PRIVSEP_CMD_L2_UNREGISTER, 2639beb93cSSam Leffler PRIVSEP_CMD_L2_NOTIFY_AUTH_START, 2739beb93cSSam Leffler PRIVSEP_CMD_L2_SEND, 2839beb93cSSam Leffler PRIVSEP_CMD_SET_COUNTRY, 29*325151a3SRui Paulo PRIVSEP_CMD_AUTHENTICATE, 30*325151a3SRui Paulo }; 31*325151a3SRui Paulo 32*325151a3SRui Paulo struct privsep_cmd_authenticate 33*325151a3SRui Paulo { 34*325151a3SRui Paulo int freq; 35*325151a3SRui Paulo u8 bssid[ETH_ALEN]; 36*325151a3SRui Paulo u8 ssid[SSID_MAX_LEN]; 37*325151a3SRui Paulo size_t ssid_len; 38*325151a3SRui Paulo int auth_alg; 39*325151a3SRui Paulo size_t ie_len; 40*325151a3SRui Paulo u8 wep_key[4][16]; 41*325151a3SRui Paulo size_t wep_key_len[4]; 42*325151a3SRui Paulo int wep_tx_keyidx; 43*325151a3SRui Paulo int local_state_change; 44*325151a3SRui Paulo int p2p; 45*325151a3SRui Paulo size_t sae_data_len; 46*325151a3SRui Paulo /* followed by ie_len bytes of ie */ 47*325151a3SRui Paulo /* followed by sae_data_len bytes of sae_data */ 4839beb93cSSam Leffler }; 4939beb93cSSam Leffler 5039beb93cSSam Leffler struct privsep_cmd_associate 5139beb93cSSam Leffler { 5239beb93cSSam Leffler u8 bssid[ETH_ALEN]; 53*325151a3SRui Paulo u8 ssid[SSID_MAX_LEN]; 5439beb93cSSam Leffler size_t ssid_len; 555b9c547cSRui Paulo int hwmode; 5639beb93cSSam Leffler int freq; 575b9c547cSRui Paulo int channel; 5839beb93cSSam Leffler int pairwise_suite; 5939beb93cSSam Leffler int group_suite; 6039beb93cSSam Leffler int key_mgmt_suite; 6139beb93cSSam Leffler int auth_alg; 6239beb93cSSam Leffler int mode; 6339beb93cSSam Leffler size_t wpa_ie_len; 6439beb93cSSam Leffler /* followed by wpa_ie_len bytes of wpa_ie */ 6539beb93cSSam Leffler }; 6639beb93cSSam Leffler 6739beb93cSSam Leffler struct privsep_cmd_set_key 6839beb93cSSam Leffler { 6939beb93cSSam Leffler int alg; 7039beb93cSSam Leffler u8 addr[ETH_ALEN]; 7139beb93cSSam Leffler int key_idx; 7239beb93cSSam Leffler int set_tx; 7339beb93cSSam Leffler u8 seq[8]; 7439beb93cSSam Leffler size_t seq_len; 7539beb93cSSam Leffler u8 key[32]; 7639beb93cSSam Leffler size_t key_len; 7739beb93cSSam Leffler }; 7839beb93cSSam Leffler 7939beb93cSSam Leffler enum privsep_event { 8039beb93cSSam Leffler PRIVSEP_EVENT_SCAN_RESULTS, 8139beb93cSSam Leffler PRIVSEP_EVENT_ASSOC, 8239beb93cSSam Leffler PRIVSEP_EVENT_DISASSOC, 8339beb93cSSam Leffler PRIVSEP_EVENT_ASSOCINFO, 8439beb93cSSam Leffler PRIVSEP_EVENT_MICHAEL_MIC_FAILURE, 8539beb93cSSam Leffler PRIVSEP_EVENT_INTERFACE_STATUS, 8639beb93cSSam Leffler PRIVSEP_EVENT_PMKID_CANDIDATE, 8739beb93cSSam Leffler PRIVSEP_EVENT_STKSTART, 8839beb93cSSam Leffler PRIVSEP_EVENT_FT_RESPONSE, 8939beb93cSSam Leffler PRIVSEP_EVENT_RX_EAPOL, 90*325151a3SRui Paulo PRIVSEP_EVENT_SCAN_STARTED, 91*325151a3SRui Paulo PRIVSEP_EVENT_AUTH, 92*325151a3SRui Paulo }; 93*325151a3SRui Paulo 94*325151a3SRui Paulo struct privsep_event_auth { 95*325151a3SRui Paulo u8 peer[ETH_ALEN]; 96*325151a3SRui Paulo u8 bssid[ETH_ALEN]; 97*325151a3SRui Paulo u16 auth_type; 98*325151a3SRui Paulo u16 auth_transaction; 99*325151a3SRui Paulo u16 status_code; 100*325151a3SRui Paulo size_t ies_len; 101*325151a3SRui Paulo /* followed by ies_len bytes of ies */ 10239beb93cSSam Leffler }; 10339beb93cSSam Leffler 10439beb93cSSam Leffler #endif /* PRIVSEP_COMMANDS_H */ 105