xref: /freebsd/contrib/wpa/src/common/privsep_commands.h (revision 325151a32e114f02699a301c1e74080e7c1f1a26)
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