blob: 0bba0962aea1a3378635785126999592da2fe3ba [file] [log] [blame]
Hai Shalomfcc8fa02018-10-15 15:36:04 -07001/*
2 * Copyright 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.wifi.supplicant@1.2;
18
19import @1.0::ISupplicantStaNetworkCallback;
20import @1.0::ISupplicantStaNetwork;
21import @1.0::SupplicantStatus;
22import @1.1::ISupplicantStaNetwork;
23
24/**
25 * Interface exposed by the supplicant for each station mode network
26 * configuration it controls.
27 */
28interface ISupplicantStaNetwork extends @1.1::ISupplicantStaNetwork {
29 /** Possble mask of values for KeyMgmt param. */
30 enum KeyMgmtMask : @1.0::ISupplicantStaNetwork.KeyMgmtMask {
31 /** WPA3-Personal SAE Key management */
32 SAE = 1 << 10,
33
34 /** WPA3-Enterprise Suite-B Key management */
35 SUITE_B_192 = 1 << 17,
36
37 /** Enhacned Open (OWE) Key management */
38 OWE = 1 << 22,
39 };
40
41 /** Possble mask of values for PairwiseCipher param. */
42 enum PairwiseCipherMask : @1.0::ISupplicantStaNetwork.PairwiseCipherMask {
43 /** GCMP-256 Pairwise Cipher */
44 GCMP_256 = 1 << 8,
45 };
46
47 /** Possble mask of values for GroupCipher param. */
48 enum GroupCipherMask : @1.0::ISupplicantStaNetwork.GroupCipherMask {
49 /** GCMP-256 Group Cipher */
50 GCMP_256 = 1 << 8,
51 };
52
53 /**
54 * Set key management mask for the network.
55 *
56 * @param keyMgmtMask value to set.
57 * Combination of |KeyMgmtMask| values.
58 * @return status Status of the operation.
59 * Possible status codes:
60 * |SupplicantStatusCode.SUCCESS|,
61 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
62 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
63 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
64 */
65 setKeyMgmt_1_2(bitfield<KeyMgmtMask> keyMgmtMask) generates (SupplicantStatus status);
66
67 /**
68 * Get the key mgmt mask set for the network.
69 *
70 * @return status Status of the operation.
71 * Possible status codes:
72 * |SupplicantStatusCode.SUCCESS|,
73 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
74 * @return keyMgmtMask Combination of |KeyMgmtMask| values.
75 */
76 getKeyMgmt_1_2()
77 generates (SupplicantStatus status, bitfield<KeyMgmtMask> keyMgmtMask);
78
79 /**
80 * Set pairwise cipher mask for the network.
81 *
82 * @param pairwiseCipherMask value to set.
83 * Combination of |PairwiseCipherMask| values.
84 * @return status Status of the operation.
85 * Possible status codes:
86 * |SupplicantStatusCode.SUCCESS|,
87 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
88 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
89 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
90 */
91 setPairwiseCipher_1_2(bitfield<PairwiseCipherMask> pairwiseCipherMask)
92 generates (SupplicantStatus status);
93
94 /**
95 * Get the pairwise cipher mask set for the network.
96 *
97 * @return status Status of the operation.
98 * Possible status codes:
99 * |SupplicantStatusCode.SUCCESS|,
100 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
101 * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values.
102 */
103 getPairwiseCipher_1_2()
104 generates (SupplicantStatus status,
105 bitfield<PairwiseCipherMask> pairwiseCipherMask);
106
107 /**
108 * Set group cipher mask for the network.
109 *
110 * @param groupCipherMask value to set.
111 * Combination of |GroupCipherMask| values.
112 * @return status Status of the operation.
113 * Possible status codes:
114 * |SupplicantStatusCode.SUCCESS|,
115 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
116 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
117 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
118 */
119 setGroupCipher_1_2(bitfield<GroupCipherMask> groupCipherMask)
120 generates (SupplicantStatus status);
121
122 /**
123 * Get the group cipher mask set for the network.
124 *
125 * @return status Status of the operation.
126 * Possible status codes:
127 * |SupplicantStatusCode.SUCCESS|,
128 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
129 * @return groupCipherMask Combination of |GroupCipherMask| values.
130 */
131 getGroupCipher_1_2()
132 generates (SupplicantStatus status,
133 bitfield<GroupCipherMask> groupCipherMask);
134
135 /**
136 * Enable TLS Suite-B in EAP Phase1
137 *
138 * @param enable Set to true to enable TLS Suite-B in EAP phase1
139 *
140 * @return status Status of the operation.
141 * Possible status codes:
142 * |SupplicantStatusCode.SUCCESS|,
143 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
144 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
145 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
146 */
147 enableTlsSuiteBEapPhase1Param(bool enable)
148 generates (SupplicantStatus status);
149
150 /**
151 * Set EAP OpenSSL Suite-B-192 ciphers for WPA3-Enterprise
152 * Supported option:
153 *
154 * @return status Status of the operation.
155 * Possible status codes:
156 * |SupplicantStatusCode.SUCCESS|,
157 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
158 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
159 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
160 */
161 enableSuiteBEapOpenSslCiphers()
162 generates (SupplicantStatus status);
163
164 /**
165 * Get SAE password for WPA3-Personal
166 *
167 * @return status Status of the operation, and a string.
168 * Possible status codes:
169 * |SupplicantStatusCode.SUCCESS|,
170 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
171 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
172 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
173 */
174 getSaePassword()
175 generates (SupplicantStatus status, string saePassword);
176
177 /**
178 * Get SAE password ID for WPA3-Personal
179 *
180 * @return status Status of the operation, and a string.
181 * Possible status codes:
182 * |SupplicantStatusCode.SUCCESS|,
183 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
184 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
185 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
186 */
187 getSaePasswordId()
188 generates (SupplicantStatus status, string saePasswordId);
189
190 /**
191 * Set SAE password for WPA3-Personal
192 *
193 * @param saePassword string with the above option
194 *
195 * @return status Status of the operation.
196 * Possible status codes:
197 * |SupplicantStatusCode.SUCCESS|,
198 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
199 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
200 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
201 */
202 setSaePassword(string saePassword)
203 generates (SupplicantStatus status);
204
205 /**
206 * Set SAE password ID for WPA3-Personal
207 *
208 * @param sae_password_id string with the above option
209 *
210 * @return status Status of the operation.
211 * Possible status codes:
212 * |SupplicantStatusCode.SUCCESS|,
213 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
214 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
215 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
216 */
217 setSaePasswordId(string saePasswordId)
218 generates (SupplicantStatus status);
219
220 /**
221 * Get Key management capabilities of the device
222 *
223 * @return status Status of the operation, and a string.
224 * Possible status codes:
225 * |SupplicantStatusCode.SUCCESS|,
226 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
227 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
228 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
229 */
230 getKeyMgmtCapabilities()
231 generates (SupplicantStatus status, bitfield<KeyMgmtMask> keyMgmtMask);
232};