1189251Ssam/* 2189251Ssam * WPA Supplicant - privilege separation commands 3189251Ssam * Copyright (c) 2007-2009, Jouni Malinen <j@w1.fi> 4189251Ssam * 5252726Srpaulo * This software may be distributed under the terms of the BSD license. 6252726Srpaulo * See README for more details. 7189251Ssam */ 8189251Ssam 9189251Ssam#ifndef PRIVSEP_COMMANDS_H 10189251Ssam#define PRIVSEP_COMMANDS_H 11189251Ssam 12346981Scy#include "drivers/driver.h" 13289549Srpaulo#include "common/ieee802_11_defs.h" 14289549Srpaulo 15189251Ssamenum privsep_cmd { 16189251Ssam PRIVSEP_CMD_REGISTER, 17189251Ssam PRIVSEP_CMD_UNREGISTER, 18189251Ssam PRIVSEP_CMD_SCAN, 19189251Ssam PRIVSEP_CMD_GET_SCAN_RESULTS, 20189251Ssam PRIVSEP_CMD_ASSOCIATE, 21189251Ssam PRIVSEP_CMD_GET_BSSID, 22189251Ssam PRIVSEP_CMD_GET_SSID, 23189251Ssam PRIVSEP_CMD_SET_KEY, 24189251Ssam PRIVSEP_CMD_GET_CAPA, 25189251Ssam PRIVSEP_CMD_L2_REGISTER, 26189251Ssam PRIVSEP_CMD_L2_UNREGISTER, 27189251Ssam PRIVSEP_CMD_L2_NOTIFY_AUTH_START, 28189251Ssam PRIVSEP_CMD_L2_SEND, 29189251Ssam PRIVSEP_CMD_SET_COUNTRY, 30289549Srpaulo PRIVSEP_CMD_AUTHENTICATE, 31189251Ssam}; 32189251Ssam 33346981Scy#define PRIVSEP_MAX_SCAN_FREQS 50 34346981Scy 35346981Scystruct privsep_cmd_scan { 36346981Scy unsigned int num_ssids; 37346981Scy u8 ssids[WPAS_MAX_SCAN_SSIDS][32]; 38346981Scy u8 ssid_lens[WPAS_MAX_SCAN_SSIDS]; 39346981Scy unsigned int num_freqs; 40346981Scy u16 freqs[PRIVSEP_MAX_SCAN_FREQS]; 41346981Scy}; 42346981Scy 43346981Scystruct privsep_cmd_authenticate { 44289549Srpaulo int freq; 45289549Srpaulo u8 bssid[ETH_ALEN]; 46289549Srpaulo u8 ssid[SSID_MAX_LEN]; 47289549Srpaulo size_t ssid_len; 48289549Srpaulo int auth_alg; 49289549Srpaulo size_t ie_len; 50289549Srpaulo u8 wep_key[4][16]; 51289549Srpaulo size_t wep_key_len[4]; 52289549Srpaulo int wep_tx_keyidx; 53289549Srpaulo int local_state_change; 54289549Srpaulo int p2p; 55346981Scy size_t auth_data_len; 56289549Srpaulo /* followed by ie_len bytes of ie */ 57346981Scy /* followed by auth_data_len bytes of auth_data */ 58289549Srpaulo}; 59289549Srpaulo 60346981Scystruct privsep_cmd_associate { 61189251Ssam u8 bssid[ETH_ALEN]; 62289549Srpaulo u8 ssid[SSID_MAX_LEN]; 63189251Ssam size_t ssid_len; 64281806Srpaulo int hwmode; 65189251Ssam int freq; 66281806Srpaulo int channel; 67189251Ssam int pairwise_suite; 68189251Ssam int group_suite; 69189251Ssam int key_mgmt_suite; 70189251Ssam int auth_alg; 71189251Ssam int mode; 72189251Ssam size_t wpa_ie_len; 73189251Ssam /* followed by wpa_ie_len bytes of wpa_ie */ 74189251Ssam}; 75189251Ssam 76346981Scystruct privsep_cmd_set_key { 77189251Ssam int alg; 78189251Ssam u8 addr[ETH_ALEN]; 79189251Ssam int key_idx; 80189251Ssam int set_tx; 81189251Ssam u8 seq[8]; 82189251Ssam size_t seq_len; 83189251Ssam u8 key[32]; 84189251Ssam size_t key_len; 85189251Ssam}; 86189251Ssam 87189251Ssamenum privsep_event { 88189251Ssam PRIVSEP_EVENT_SCAN_RESULTS, 89189251Ssam PRIVSEP_EVENT_ASSOC, 90189251Ssam PRIVSEP_EVENT_DISASSOC, 91189251Ssam PRIVSEP_EVENT_ASSOCINFO, 92189251Ssam PRIVSEP_EVENT_MICHAEL_MIC_FAILURE, 93189251Ssam PRIVSEP_EVENT_INTERFACE_STATUS, 94189251Ssam PRIVSEP_EVENT_PMKID_CANDIDATE, 95189251Ssam PRIVSEP_EVENT_FT_RESPONSE, 96189251Ssam PRIVSEP_EVENT_RX_EAPOL, 97289549Srpaulo PRIVSEP_EVENT_SCAN_STARTED, 98289549Srpaulo PRIVSEP_EVENT_AUTH, 99189251Ssam}; 100189251Ssam 101289549Srpaulostruct privsep_event_auth { 102289549Srpaulo u8 peer[ETH_ALEN]; 103289549Srpaulo u8 bssid[ETH_ALEN]; 104289549Srpaulo u16 auth_type; 105289549Srpaulo u16 auth_transaction; 106289549Srpaulo u16 status_code; 107289549Srpaulo size_t ies_len; 108289549Srpaulo /* followed by ies_len bytes of ies */ 109289549Srpaulo}; 110289549Srpaulo 111189251Ssam#endif /* PRIVSEP_COMMANDS_H */ 112