1 /*
2  * WPA Supplicant - privilege separation commands
3  * Copyright (c) 2007-2009, Jouni Malinen <j@w1.fi>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  *
9  * Alternatively, this software may be distributed under the terms of BSD
10  * license.
11  *
12  * See README and COPYING for more details.
13  */
14 
15 #ifndef PRIVSEP_COMMANDS_H
16 #define PRIVSEP_COMMANDS_H
17 
18 enum privsep_cmd {
19 	PRIVSEP_CMD_REGISTER,
20 	PRIVSEP_CMD_UNREGISTER,
21 	PRIVSEP_CMD_SET_WPA,
22 	PRIVSEP_CMD_SCAN,
23 	PRIVSEP_CMD_GET_SCAN_RESULTS,
24 	PRIVSEP_CMD_ASSOCIATE,
25 	PRIVSEP_CMD_GET_BSSID,
26 	PRIVSEP_CMD_GET_SSID,
27 	PRIVSEP_CMD_SET_KEY,
28 	PRIVSEP_CMD_GET_CAPA,
29 	PRIVSEP_CMD_L2_REGISTER,
30 	PRIVSEP_CMD_L2_UNREGISTER,
31 	PRIVSEP_CMD_L2_NOTIFY_AUTH_START,
32 	PRIVSEP_CMD_L2_SEND,
33 	PRIVSEP_CMD_SET_MODE,
34 	PRIVSEP_CMD_SET_COUNTRY,
35 };
36 
37 struct privsep_cmd_associate
38 {
39 	u8 bssid[ETH_ALEN];
40 	u8 ssid[32];
41 	size_t ssid_len;
42 	int freq;
43 	int pairwise_suite;
44 	int group_suite;
45 	int key_mgmt_suite;
46 	int auth_alg;
47 	int mode;
48 	size_t wpa_ie_len;
49 	/* followed by wpa_ie_len bytes of wpa_ie */
50 };
51 
52 struct privsep_cmd_set_key
53 {
54 	int alg;
55 	u8 addr[ETH_ALEN];
56 	int key_idx;
57 	int set_tx;
58 	u8 seq[8];
59 	size_t seq_len;
60 	u8 key[32];
61 	size_t key_len;
62 };
63 
64 enum privsep_event {
65 	PRIVSEP_EVENT_SCAN_RESULTS,
66 	PRIVSEP_EVENT_ASSOC,
67 	PRIVSEP_EVENT_DISASSOC,
68 	PRIVSEP_EVENT_ASSOCINFO,
69 	PRIVSEP_EVENT_MICHAEL_MIC_FAILURE,
70 	PRIVSEP_EVENT_INTERFACE_STATUS,
71 	PRIVSEP_EVENT_PMKID_CANDIDATE,
72 	PRIVSEP_EVENT_STKSTART,
73 	PRIVSEP_EVENT_FT_RESPONSE,
74 	PRIVSEP_EVENT_RX_EAPOL,
75 	PRIVSEP_EVENT_STA_RX,
76 };
77 
78 #endif /* PRIVSEP_COMMANDS_H */
79