blob: 269d7efa42350abc08576fb66e758e8cead2999d [file] [log] [blame]
Roshan Pius39f588f2016-10-31 14:51:27 -07001/*
2 * Copyright 2016 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.0;
18
19import ISupplicantNetwork;
20import ISupplicantStaNetworkCallback;
21
22/**
Roshan Pius8c6a8772016-11-03 09:37:57 -070023 * Interface exposed by the supplicant for each station mode network
Roshan Pius39f588f2016-10-31 14:51:27 -070024 * configuration it controls.
25 */
26interface ISupplicantStaNetwork extends ISupplicantNetwork {
27 /**
28 * Size limits for some of the params used in this interface.
29 */
30 enum ParamSizeLimits : uint32_t {
31 /** Max length of SSID param. */
32 SSID_MAX_LEN_IN_BYTES = 32,
33
34 /** Min length of PSK passphrase param. */
35 PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8,
36
37 /** Max length of PSK passphrase param. */
38 PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63,
39
40 /** Max number of WEP keys param. */
41 WEP_KEYS_MAX_NUM = 4,
42
43 /** Length of each WEP40 keys param. */
44 WEP40_KEY_LEN_IN_BYTES = 5,
45 /** Length of each WEP104 keys param. */
46 WEP104_KEY_LEN_IN_BYTES = 13,
47 };
48
49 /** Possble mask of values for KeyMgmt param. */
50 enum KeyMgmtMask : uint32_t {
51 WPA_EAP = 1 << 0,
52 WPA_PSK = 1 << 1,
53 NONE = 1 << 2,
Roshan Pius2d50db92017-01-13 15:53:07 -080054 IEEE8021X = 1 << 3,
55 FT_EAP = 1 << 5,
56 FT_PSK = 1 << 6,
57 OSEN = 1 << 15
Roshan Pius39f588f2016-10-31 14:51:27 -070058 };
59
60 /** Possble mask of values for Proto param. */
61 enum ProtoMask : uint32_t {
62 WPA = 1 << 0,
63 RSN = 1 << 1,
64 /** Unused 1 << 2 */
65 OSEN = 1 << 3
66 };
67
68 /** Possble mask of values for AuthAlg param. */
69 enum AuthAlgMask : uint32_t {
70 OPEN = 1 << 0,
71 SHARED = 1 << 1,
72 LEAP = 1 << 2
73 };
74
75 /** Possble mask of values for GroupCipher param. */
76 enum GroupCipherMask : uint32_t {
77 WEP40 = 1 << 1,
78 WEP104 = 1 << 2,
79 TKIP = 1 << 3,
Roshan Pius2d50db92017-01-13 15:53:07 -080080 CCMP = 1 << 4,
81 GTK_NOT_USED = 1 << 14
Roshan Pius39f588f2016-10-31 14:51:27 -070082 };
83
84 /** Possble mask of values for PairwiseCipher param. */
85 enum PairwiseCipherMask : uint32_t {
86 NONE = 1 << 0,
87 TKIP = 1 << 3,
88 CCMP = 1 << 4
89 };
90
91 /** Possble values for EapMethod param. */
92 enum EapMethod : uint32_t {
93 PEAP = 0,
94 TLS = 1,
95 TTLS = 2,
96 PWD = 3,
97 SIM = 4,
98 AKA = 5,
99 AKA_PRIME = 6,
100 WFA_UNAUTH_TLS = 7
101 };
102
103 /** Possble values for Phase2Method param. */
104 enum EapPhase2Method : uint32_t {
105 NONE = 0,
106 PAP = 1,
107 MSPAP = 2,
108 MSPAPV2 = 3,
Roshan Pius72b5eb02017-02-13 13:19:38 -0800109 GTC = 4,
110 SIM = 5,
111 AKA = 6,
112 AKA_PRIME = 7
Roshan Pius39f588f2016-10-31 14:51:27 -0700113 };
114
115 /** Params of |sendNetworkEapSimGsmAuthResponse| request. (Refer RFC 4186) */
116 struct NetworkResponseEapSimGsmAuthParams {
117 uint8_t[8] kc;
118 uint8_t[4] sres;
119 };
120
121 /** Params of |sendNetworkEapSimUmtsAuthResponse| request. (Refer RFC 4187) */
122 struct NetworkResponseEapSimUmtsAuthParams {
123 vec<uint8_t> res;
124 uint8_t[16] ik;
125 uint8_t[16] ck;
126 };
127
128 /**
129 * Register for callbacks from this network.
130 *
131 * These callbacks are invoked for events that are specific to this network.
132 * Registration of multiple callback objects is supported. These objects must
133 * be automatically deleted when the corresponding client process is dead or
134 * if this network is removed.
135 *
136 * @param callback An instance of the |ISupplicantStaNetworkCallback| HIDL
137 * interface object.
138 * @return status Status of the operation.
139 * Possible status codes:
140 * |SupplicantStatusCode.SUCCESS|,
141 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
142 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
143 */
144 registerCallback(ISupplicantStaNetworkCallback callback)
145 generates (SupplicantStatus status);
146
147 /**
148 * Setters for the various network params.
149 * These correspond to elements of |wpa_sssid| struct used internally by
Roshan Pius8c6a8772016-11-03 09:37:57 -0700150 * the supplicant to represent each network.
Roshan Pius39f588f2016-10-31 14:51:27 -0700151 */
152 /**
153 * Set SSID for this network.
154 *
155 * @param ssid value to set.
156 * Max length of |ParamSizeLimits.SSID_MAX_LEN_IN_BYTES|.
157 * @return status Status of the operation.
158 * Possible status codes:
159 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800160 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700161 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
162 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
163 */
164 setSsid(Ssid ssid) generates (SupplicantStatus status);
165
166 /**
167 * Set the network to only connect to an AP with provided BSSID.
168 *
169 * @param bssid value to set.
170 * @return status Status of the operation.
171 * Possible status codes:
172 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800173 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700174 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
175 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
176 */
177 setBssid(Bssid bssid) generates (SupplicantStatus status);
178
179 /**
180 * Set whether to send probe requests for this network (hidden).
181 *
182 * @param enable true to set, false otherwise.
183 * @return status Status of the operation.
184 * Possible status codes:
185 * |SupplicantStatusCode.SUCCESS|,
186 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
187 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
188 */
189 setScanSsid(bool enable) generates (SupplicantStatus status);
190
191 /**
192 * Set key management mask for the network.
193 *
194 * @param keyMgmtMask value to set.
195 * Combination of |KeyMgmtMask| values.
196 * @return status Status of the operation.
197 * Possible status codes:
198 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800199 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700200 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
201 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
202 */
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800203 setKeyMgmt(bitfield<KeyMgmtMask> keyMgmtMask) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700204
205 /**
206 * Set proto mask for the network.
207 *
208 * @param protoMask value to set.
209 * Combination of |ProtoMask| values.
210 * @return status Status of the operation.
211 * Possible status codes:
212 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800213 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700214 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
215 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
216 */
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800217 setProto(bitfield<ProtoMask> protoMask) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700218
219 /**
220 * Set auth alg mask for the network.
221 *
222 * @param authAlgMask value to set.
223 * Combination of |ProtoMask| values.
224 * @return status Status of the operation.
225 * Possible status codes:
226 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800227 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700228 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
229 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
230 */
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800231 setAuthAlg(bitfield<AuthAlgMask> authAlgMask) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700232
233 /**
234 * Set group cipher mask for the network.
235 *
236 * @param groupCipherMask value to set.
237 * Combination of |ProtoMask| values.
238 * @return status Status of the operation.
239 * Possible status codes:
240 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800241 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700242 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
243 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
244 */
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800245 setGroupCipher(bitfield<GroupCipherMask> groupCipherMask)
Roshan Pius39f588f2016-10-31 14:51:27 -0700246 generates (SupplicantStatus status);
247
248 /**
249 * Set pairwise cipher mask for the network.
250 *
251 * @param pairwiseCipherMask value to set.
252 * Combination of |ProtoMask| values.
253 * @return status Status of the operation.
254 * Possible status codes:
255 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800256 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700257 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
258 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
259 */
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800260 setPairwiseCipher(bitfield<PairwiseCipherMask> pairwiseCipherMask)
Roshan Pius39f588f2016-10-31 14:51:27 -0700261 generates (SupplicantStatus status);
262
263 /**
264 * Set passphrase for WPA_PSK network.
265 *
266 * @param psk value to set.
267 * Length of value must be between
268 * |ParamSizeLimits.PSK_PASSPHRASE_MIN_LEN_IN_BYTES| and
269 * |ParamSizeLimits.PSK_PASSPHRASE_MAX_LEN_IN_BYTES|.
270 * @return status Status of the operation.
271 * Possible status codes:
Roshan Pius756ad992016-11-07 10:29:48 -0800272 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700273 * |SupplicantStatusCode.SUCCESS|,
274 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
275 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
276 */
277 setPskPassphrase(string psk) generates (SupplicantStatus status);
278
279 /**
Roshan Piuscbafd532017-03-07 08:27:30 -0800280 * Set raw psk for WPA_PSK network.
281 *
282 * @param psk value to set as specified in IEEE 802.11i-2004 standard.
283 * This is the calculated using 'wpa_passphrase <ssid> [passphrase]'
284 * @return status Status of the operation.
285 * Possible status codes:
286 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
287 * |SupplicantStatusCode.SUCCESS|,
288 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
289 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
290 */
291 setPsk(uint8_t[32] psk) generates (SupplicantStatus status);
292
293 /**
Roshan Pius39f588f2016-10-31 14:51:27 -0700294 * Set WEP key for WEP network.
295 *
296 * @param keyIdx Index of wep key to set.
297 * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
298 * @param wepKey value to set.
299 * Length of each key must be either
300 * |ParamSizeLimits.WEP40_KEY_LEN_IN_BYTES| or
301 * |ParamSizeLimits.WEP104_KEY_LEN_IN_BYTES|.
302 * @return status Status of the operation.
303 * Possible status codes:
304 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800305 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700306 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
307 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
308 */
309 setWepKey(uint32_t keyIdx, vec<uint8_t> wepKey)
310 generates (SupplicantStatus status);
311
312 /**
313 * Set default Tx key index for WEP network.
314 *
315 * @param KeyIdx value to set.
316 * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
317 * @return status Status of the operation.
318 * Possible status codes:
319 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800320 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700321 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
322 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
323 */
324 setWepTxKeyIdx(uint32_t keyIdx)
325 generates (SupplicantStatus status);
326
327 /**
328 * Set whether RequirePmf is enabled for this network.
329 *
330 * @param enable true to set, false otherwise.
331 * @return status Status of the operation.
332 * Possible status codes:
333 * |SupplicantStatusCode.SUCCESS|,
334 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
335 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
336 */
337 setRequirePmf(bool enable) generates (SupplicantStatus status);
338
339 /**
340 * Set EAP Method for this network.
341 *
342 * @param method value to be set.
343 * Must be one of |EapMethod| values.
344 * @return status Status of the operation.
345 * Possible status codes:
346 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800347 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700348 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
349 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
350 */
351 setEapMethod(EapMethod method)
352 generates (SupplicantStatus status);
353
354 /**
355 * Set EAP Phase2 Method for this network.
356 *
Ningyuan Wang94a07c42017-04-13 15:40:26 -0700357 * EAP method needs to be set for this to work.
358 *
Roshan Pius39f588f2016-10-31 14:51:27 -0700359 * @param method value to set.
360 * Must be one of |EapPhase2Method| values.
361 * @return status Status of the operation.
362 * Possible status codes:
363 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800364 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700365 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
366 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
367 */
368 setEapPhase2Method(EapPhase2Method method)
369 generates (SupplicantStatus status);
370
371 /**
372 * Set EAP Identity for this network.
373 *
374 * @param identity value to set.
375 * @return status Status of the operation.
376 * Possible status codes:
377 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800378 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700379 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
380 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
381 */
382 setEapIdentity(vec<uint8_t> identity)
383 generates (SupplicantStatus status);
384
385 /**
386 * Set EAP Anonymous Identity for this network.
387 *
388 * @param identity value to set.
389 * @return status Status of the operation.
390 * Possible status codes:
391 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800392 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700393 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
394 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
395 */
396 setEapAnonymousIdentity(vec<uint8_t> identity)
397 generates (SupplicantStatus status);
398
399 /**
400 * Set EAP Password for this network.
401 *
402 * @param password value to set.
403 * @return status Status of the operation.
404 * Possible status codes:
405 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800406 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700407 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
408 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
409 */
410 setEapPassword(vec<uint8_t> password)
411 generates (SupplicantStatus status);
412
413 /**
414 * Set EAP CA certificate file path for this network.
415 *
416 * @param path value to set.
417 * @return status Status of the operation.
418 * Possible status codes:
419 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800420 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700421 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
422 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
423 */
424 setEapCACert(string path) generates (SupplicantStatus status);
425
426 /**
427 * Set EAP CA certificate directory path for this network.
428 *
429 * @param path value to set.
430 * @return status Status of the operation.
431 * Possible status codes:
432 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800433 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700434 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
435 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
436 */
437 setEapCAPath(string path) generates (SupplicantStatus status);
438
439 /**
440 * Set EAP Client certificate file path for this network.
441 *
442 * @param path value to set.
443 * @return status Status of the operation.
444 * Possible status codes:
445 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800446 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700447 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
448 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
449 */
450 setEapClientCert(string path) generates (SupplicantStatus status);
451
452 /**
Roshan Piuse54bcae2017-02-22 08:56:23 -0800453 * Set EAP private key Id for this network.
454 * This is used if private key operations for EAP-TLS are performed
455 * using a smartcard.
Roshan Pius39f588f2016-10-31 14:51:27 -0700456 *
Roshan Piuse54bcae2017-02-22 08:56:23 -0800457 * @param id value to set.
Roshan Pius39f588f2016-10-31 14:51:27 -0700458 * @return status Status of the operation.
459 * Possible status codes:
460 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800461 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700462 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
463 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
464 */
Roshan Piuse54bcae2017-02-22 08:56:23 -0800465 setEapPrivateKeyId(string id) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700466
467 /**
468 * Set EAP subject match for this network.
469 *
470 * @param match value to set.
471 * @return status Status of the operation.
472 * Possible status codes:
473 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800474 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700475 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
476 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
477 */
478 setEapSubjectMatch(string match) generates (SupplicantStatus status);
479
480 /**
Roshan Pius118598a2016-12-13 13:39:27 -0800481 * Set EAP Alt subject match for this network.
Roshan Pius39f588f2016-10-31 14:51:27 -0700482 *
483 * @param match value to set.
484 * @return status Status of the operation.
485 * Possible status codes:
486 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800487 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700488 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
489 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
490 */
491 setEapAltSubjectMatch(string match)
492 generates (SupplicantStatus status);
493
494 /**
495 * Enable EAP Open SSL Engine for this network.
496 *
497 * @param enable true to set, false otherwise.
498 * @return status Status of the operation.
499 * Possible status codes:
500 * |SupplicantStatusCode.SUCCESS|,
501 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
502 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
503 */
504 setEapEngine(bool enable) generates (SupplicantStatus status);
505
506 /**
507 * Set EAP Open SSL Engine ID for this network.
508 *
509 * @param id value to set.
510 * @return status Status of the operation.
511 * Possible status codes:
512 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800513 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700514 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
515 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
516 */
517 setEapEngineID(string id) generates (SupplicantStatus status);
518
519 /**
520 * Set EAP Domain suffix match for this network.
521 *
522 * @param match value to set.
523 * @return status Status of the operation.
524 * Possible status codes:
525 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800526 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700527 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
528 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
529 */
530 setEapDomainSuffixMatch(string match)
531 generates (SupplicantStatus status);
Roshan Piusdbd09c62017-01-19 16:03:36 -0800532
Roshan Pius2d50db92017-01-13 15:53:07 -0800533 /**
Roshan Piusdbd09c62017-01-19 16:03:36 -0800534 * This field can be used to enable proactive key caching which is also
535 * known as opportunistic PMKSA caching for WPA2. This is disabled (0)
536 * by default unless default value is changed with the global okc=1
537 * parameter.
538 *
539 * Proactive key caching is used to make supplicant assume that the APs
540 * are using the same PMK and generate PMKSA cache entries without
541 * doing RSN pre-authentication. This requires support from the AP side
542 * and is normally used with wireless switches that co-locate the
543 * authenticator.
544 *
545 * @param enable true to set, false otherwise.
546 * @return status Status of the operation.
547 * Possible status codes:
548 * |SupplicantStatusCode.SUCCESS|,
549 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
550 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
551 */
552 setProactiveKeyCaching(bool enable) generates (SupplicantStatus status);
553
554 /**
555 * Set ID string for this network.
Roshan Pius2d50db92017-01-13 15:53:07 -0800556 * Network identifier string for external scripts.
557 *
558 * @return idStr ID string value to set.
559 * @return status Status of the operation.
560 * Possible status codes:
561 * |SupplicantStatusCode.SUCCESS|,
562 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
563 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
564 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
565 */
566 setIdStr(string idStr) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700567
568 /**
Roshan Piusdbd09c62017-01-19 16:03:36 -0800569 * Set PPS MO ID for this network.
570 * (Hotspot 2.0 PerProviderSubscription/UpdateIdentifier)
571 *
572 * @return id ID value to set.
573 * @return status Status of the operation.
574 * Possible status codes:
575 * |SupplicantStatusCode.SUCCESS|,
576 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
577 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
578 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
579 */
580 setUpdateIdentifier(uint32_t id) generates (SupplicantStatus status);
581
582 /**
Roshan Pius39f588f2016-10-31 14:51:27 -0700583 * Getters for the various network params.
584 */
585 /**
586 * Get SSID for this network.
587 *
588 * @return status Status of the operation.
589 * Possible status codes:
590 * |SupplicantStatusCode.SUCCESS|,
591 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
592 * @return ssid value set.
593 */
594 getSsid() generates (SupplicantStatus status, Ssid ssid);
595
596 /**
597 * Get the BSSID set for this network.
598 *
599 * @return status Status of the operation.
600 * Possible status codes:
601 * |SupplicantStatusCode.SUCCESS|,
602 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
603 * @return bssid value set.
604 */
605 getBssid() generates (SupplicantStatus status, Bssid bssid);
606
607 /**
608 * Get whether Probe Requests are being sent for this network (hidden).
609 *
610 * @return status Status of the operation.
611 * Possible status codes:
612 * |SupplicantStatusCode.SUCCESS|,
613 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
614 * @return enabled true if set, false otherwise.
615 */
616 getScanSsid() generates (SupplicantStatus status, bool enabled);
617
618 /**
619 * Get the key mgmt mask set for the network.
620 *
621 * @return status Status of the operation.
622 * Possible status codes:
623 * |SupplicantStatusCode.SUCCESS|,
624 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
625 * @return keyMgmtMask Combination of |KeyMgmtMask| values.
626 */
627 getKeyMgmt()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800628 generates (SupplicantStatus status, bitfield<KeyMgmtMask> keyMgmtMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700629
630 /**
631 * Get the proto mask set for the network.
632 *
633 * @return status Status of the operation.
634 * Possible status codes:
635 * |SupplicantStatusCode.SUCCESS|,
636 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
637 * @return protoMask Combination of |ProtoMask| values.
638 */
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800639 getProto() generates (SupplicantStatus status, bitfield<ProtoMask> protoMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700640
641 /**
642 * Get the auth alg mask set for the network.
643 *
644 * @return status Status of the operation.
645 * Possible status codes:
646 * |SupplicantStatusCode.SUCCESS|,
647 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
648 * @return authAlgMask Combination of |AuthAlgMask| values.
649 */
650 getAuthAlg()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800651 generates (SupplicantStatus status, bitfield<AuthAlgMask> authAlgMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700652
653 /**
654 * Get the group cipher mask set for the network.
655 *
656 * @return status Status of the operation.
657 * Possible status codes:
658 * |SupplicantStatusCode.SUCCESS|,
659 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
660 * @return groupCipherMask Combination of |GroupCipherMask| values.
661 */
662 getGroupCipher()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800663 generates (SupplicantStatus status,
664 bitfield<GroupCipherMask> groupCipherMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700665
666 /**
667 * Get the pairwise cipher mask set for the network.
668 *
669 * @return status Status of the operation.
670 * Possible status codes:
671 * |SupplicantStatusCode.SUCCESS|,
672 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
673 * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values.
674 */
675 getPairwiseCipher()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800676 generates (SupplicantStatus status,
677 bitfield<PairwiseCipherMask> pairwiseCipherMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700678
679 /**
680 * Get passphrase for WPA_PSK network.
Roshan Piuscbafd532017-03-07 08:27:30 -0800681 * Must return a failure if network has no passphrase set (use |getPsk| if
682 * network was configured with raw psk instead).
Roshan Pius39f588f2016-10-31 14:51:27 -0700683 *
684 * @return status Status of the operation.
685 * Possible status codes:
686 * |SupplicantStatusCode.SUCCESS|,
687 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
688 * @return psk value set.
689 */
690 getPskPassphrase() generates (SupplicantStatus status, string psk);
691
692 /**
Roshan Piuscbafd532017-03-07 08:27:30 -0800693 * Get raw psk for WPA_PSK network.
694 *
695 * @return status Status of the operation.
696 * Possible status codes:
697 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
698 * |SupplicantStatusCode.SUCCESS|,
699 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
700 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
701 * @param psk value set.
702 */
703 getPsk() generates (SupplicantStatus status, uint8_t[32] psk);
704
705 /**
Roshan Pius39f588f2016-10-31 14:51:27 -0700706 * Get WEP key for WEP network.
707 *
708 * @param keyIdx Index of wep key to be fetched.
709 * Max of |WEP_KEYS_MAX_NUM|.
710 * @return status Status of the operation.
711 * Possible status codes:
712 * |SupplicantStatusCode.SUCCESS|,
713 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
714 * @return wepKey value set.
715 */
716 getWepKey(uint32_t keyIdx)
717 generates (SupplicantStatus status, vec<uint8_t> wepKey);
718
719 /**
720 * Get default Tx key index for WEP network.
721 *
722 * @return status Status of the operation.
723 * Possible status codes:
724 * |SupplicantStatusCode.SUCCESS|,
725 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
726 * @return keyIdx value set.
727 */
728 getWepTxKeyIdx()
729 generates (SupplicantStatus status, uint32_t keyIdx);
730
731 /**
732 * Get whether RequirePmf is enabled for this network.
733 *
734 * @return status Status of the operation.
735 * Possible status codes:
736 * |SupplicantStatusCode.SUCCESS|,
737 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
738 * @return enabled true if set, false otherwise.
739 */
740 getRequirePmf() generates (SupplicantStatus status, bool enabled);
741
742 /**
Roshan Pius118598a2016-12-13 13:39:27 -0800743 * Get EAP Method set for this network.
744 *
745 * @return status Status of the operation.
746 * Possible status codes:
747 * |SupplicantStatusCode.SUCCESS|,
748 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
749 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
750 * @return method value set.
751 * Must be one of |EapMethod| values.
752 */
753 getEapMethod()
754 generates (SupplicantStatus status, EapMethod method);
755
756 /**
757 * Get EAP Phase2 Method set for this network.
758 *
759 * @return status Status of the operation.
760 * Possible status codes:
761 * |SupplicantStatusCode.SUCCESS|,
762 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
763 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
764 * @return method value set.
765 * Must be one of |EapPhase2Method| values.
766 */
767 getEapPhase2Method()
768 generates (SupplicantStatus status, EapPhase2Method method);
769
770 /**
771 * Get EAP Identity set for this network.
772 *
773 * @return status Status of the operation.
774 * Possible status codes:
775 * |SupplicantStatusCode.SUCCESS|,
776 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
777 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
778 * @return identity value set.
779 */
780 getEapIdentity()
781 generates (SupplicantStatus status, vec<uint8_t> identity);
782
783 /**
784 * Get EAP Anonymous Identity set for this network.
785 *
786 * @return status Status of the operation.
787 * Possible status codes:
788 * |SupplicantStatusCode.SUCCESS|,
789 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
790 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
791 * @return identity value set.
792 */
793 getEapAnonymousIdentity()
794 generates (SupplicantStatus status, vec<uint8_t> identity);
795
796 /**
797 * Get EAP Password set for this network.
798 *
799 * @return status Status of the operation.
800 * Possible status codes:
801 * |SupplicantStatusCode.SUCCESS|,
802 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
803 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
804 * @return password value set.
805 */
806 getEapPassword()
807 generates (SupplicantStatus status, vec<uint8_t> password);
808
809 /**
810 * Get EAP CA certificate file path set for this network.
811 *
812 * @return status Status of the operation.
813 * Possible status codes:
814 * |SupplicantStatusCode.SUCCESS|,
815 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
816 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
817 * @return path value set.
818 */
819 getEapCACert() generates (SupplicantStatus status, string path);
820
821 /**
822 * Get EAP CA certificate directory path set for this network.
823 *
824 * @return status Status of the operation.
825 * Possible status codes:
826 * |SupplicantStatusCode.SUCCESS|,
827 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
828 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
829 * @return path value set.
830 */
831 getEapCAPath() generates (SupplicantStatus status, string path);
832
833 /**
834 * Get EAP Client certificate file path set for this network.
835 *
836 * @return status Status of the operation.
837 * Possible status codes:
838 * |SupplicantStatusCode.SUCCESS|,
839 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
840 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
841 * @return path value set.
842 */
843 getEapClientCert() generates (SupplicantStatus status, string path);
844
845 /**
Roshan Piuse54bcae2017-02-22 08:56:23 -0800846 * Get EAP private key Id set for this network.
Roshan Pius118598a2016-12-13 13:39:27 -0800847 *
848 * @return status Status of the operation.
849 * Possible status codes:
850 * |SupplicantStatusCode.SUCCESS|,
851 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
852 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
Roshan Piuse54bcae2017-02-22 08:56:23 -0800853 * @return id value set.
Roshan Pius118598a2016-12-13 13:39:27 -0800854 */
Roshan Piuse54bcae2017-02-22 08:56:23 -0800855 getEapPrivateKeyId() generates (SupplicantStatus status, string id);
Roshan Pius118598a2016-12-13 13:39:27 -0800856
857 /**
858 * Get EAP subject match set for this network.
859 *
860 * @return status Status of the operation.
861 * Possible status codes:
862 * |SupplicantStatusCode.SUCCESS|,
863 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
864 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
865 * @return match value set.
866 */
867 getEapSubjectMatch() generates (SupplicantStatus status, string match);
868
869 /**
870 * Get EAP Alt subject match set for this network.
871 *
872 * @return status Status of the operation.
873 * Possible status codes:
874 * |SupplicantStatusCode.SUCCESS|,
875 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
876 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
877 * @return match value set.
878 */
879 getEapAltSubjectMatch()
880 generates (SupplicantStatus status, string match);
881
882 /**
883 * Get if EAP Open SSL Engine is enabled for this network.
884 *
885 * @return status Status of the operation.
886 * Possible status codes:
887 * |SupplicantStatusCode.SUCCESS|,
888 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
889 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
890 * @return enabled true if set, false otherwise.
891 */
892 getEapEngine() generates (SupplicantStatus status, bool enabled);
893
894 /**
895 * Get EAP Open SSL Engine ID set for this network.
896 *
897 * @return status Status of the operation.
898 * Possible status codes:
899 * |SupplicantStatusCode.SUCCESS|,
900 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
901 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
902 * @return id value set.
903 */
904 getEapEngineID() generates (SupplicantStatus status, string id);
905
906 /**
907 * Get EAP Domain suffix match set for this network.
908 *
909 * @return status Status of the operation.
910 * Possible status codes:
911 * |SupplicantStatusCode.SUCCESS|,
912 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
913 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
914 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
915 * @return match value set.
916 */
917 getEapDomainSuffixMatch()
918 generates (SupplicantStatus status, string match);
919
920 /**
Roshan Pius2d50db92017-01-13 15:53:07 -0800921 * Get ID string set for this network.
922 * Network identifier string for external scripts.
923 *
924 * @return status Status of the operation.
925 * Possible status codes:
926 * |SupplicantStatusCode.SUCCESS|,
927 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
928 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
929 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
930 * @return idStr ID string set.
931 */
932 getIdStr() generates (SupplicantStatus status, string idStr);
933
934 /**
Roshan Pius72b5eb02017-02-13 13:19:38 -0800935 * Retrieves a WPS-NFC configuration token for this network.
936 *
937 * @return status Status of the operation.
938 * Possible status codes:
939 * |SupplicantStatusCode.SUCCESS|,
940 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
941 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
942 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
943 * @return token Bytes representing WPS-NFC configuration token.
944 * This is a dump of all the WPS atrributes of the AP configuration
945 * as specified in the Wi-Fi Protected Setup Specification.
946 */
947 getWpsNfcConfigurationToken()
948 generates (SupplicantStatus status, vec<uint8_t> token);
949
950 /**
Roshan Pius39f588f2016-10-31 14:51:27 -0700951 * Enable the network for connection purposes.
952 *
953 * This must trigger a connection to the network if:
954 * a) |noConnect| is false, and
955 * b) This is the only network configured, and
956 * c) Is visible in the current scan results.
957 *
958 * @param noConnect Only enable the network, dont trigger a connect.
959 * @return status Status of the operation.
960 * Possible status codes:
961 * |SupplicantStatusCode.SUCCESS|,
962 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
963 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
964 */
965 enable(bool noConnect) generates (SupplicantStatus status);
966
967 /**
968 * Disable the network for connection purposes.
969 *
970 * This must trigger a disconnection from the network, if currently
971 * connected to this one.
972 *
973 * @return status Status of the operation.
974 * Possible status codes:
975 * |SupplicantStatusCode.SUCCESS|,
976 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
977 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
978 */
979 disable() generates (SupplicantStatus status);
980
981 /**
982 * Initiate connection to this network.
983 *
984 * @return status Status of the operation.
985 * Possible status codes:
986 * |SupplicantStatusCode.SUCCESS|,
987 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
988 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
989 */
990 select() generates (SupplicantStatus status);
991
992 /**
993 * Used to send a response to the
994 * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request.
995 *
996 * @param params Params to be used for EAP GSM authentication.
997 * @return status Status of the operation.
998 * Possible status codes:
999 * |SupplicantStatusCode.SUCCESS|,
1000 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1001 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1002 */
Roshan Piusdbd09c62017-01-19 16:03:36 -08001003 sendNetworkEapSimGsmAuthResponse(vec<NetworkResponseEapSimGsmAuthParams> params)
Roshan Pius39f588f2016-10-31 14:51:27 -07001004 generates (SupplicantStatus status);
1005
1006 /**
1007 * Used to send a response to the
Roshan Piusdbd09c62017-01-19 16:03:36 -08001008 * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request.
1009 *
1010 * @return status Status of the operation.
1011 * Possible status codes:
1012 * |SupplicantStatusCode.SUCCESS|,
1013 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1014 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1015 */
1016 sendNetworkEapSimGsmAuthFailure() generates (SupplicantStatus status);
1017
1018 /**
1019 * Used to send a response to the
Roshan Pius39f588f2016-10-31 14:51:27 -07001020 * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
1021 *
1022 * @param params Params to be used for EAP UMTS authentication.
1023 * @return status Status of the operation.
1024 * Possible status codes:
1025 * |SupplicantStatusCode.SUCCESS|,
1026 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1027 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1028 */
1029 sendNetworkEapSimUmtsAuthResponse(NetworkResponseEapSimUmtsAuthParams params)
1030 generates (SupplicantStatus status);
1031
1032 /**
1033 * Used to send a response to the
Roshan Piusdbd09c62017-01-19 16:03:36 -08001034 * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
1035 *
1036 * @param auts Params to be used for EAP UMTS authentication.
1037 * @return status Status of the operation.
1038 * Possible status codes:
1039 * |SupplicantStatusCode.SUCCESS|,
1040 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1041 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1042 */
1043 sendNetworkEapSimUmtsAutsResponse(uint8_t[14] auts)
1044 generates (SupplicantStatus status);
1045
1046 /**
1047 * Used to send a response to the
1048 * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
1049 *
1050 * @return status Status of the operation.
1051 * Possible status codes:
1052 * |SupplicantStatusCode.SUCCESS|,
1053 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1054 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1055 */
1056 sendNetworkEapSimUmtsAuthFailure() generates (SupplicantStatus status);
1057
1058 /**
1059 * Used to send a response to the
Roshan Pius39f588f2016-10-31 14:51:27 -07001060 * |ISupplicantNetworkCallback.onNetworkEapIdentityRequest| request.
1061 *
1062 * @param identity Identity to be used for the network.
1063 * @return status Status of the operation.
1064 * Possible status codes:
1065 * |SupplicantStatusCode.SUCCESS|,
1066 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1067 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1068 */
1069 sendNetworkEapIdentityResponse(vec<uint8_t> identity)
1070 generates (SupplicantStatus status);
1071};