blob: 7d5159ab117cd5d6bc987554eea0dcb73e578572 [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 *
357 * @param method value to set.
358 * Must be one of |EapPhase2Method| values.
359 * @return status Status of the operation.
360 * Possible status codes:
361 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800362 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700363 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
364 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
365 */
366 setEapPhase2Method(EapPhase2Method method)
367 generates (SupplicantStatus status);
368
369 /**
370 * Set EAP Identity for this network.
371 *
372 * @param identity value to set.
373 * @return status Status of the operation.
374 * Possible status codes:
375 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800376 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700377 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
378 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
379 */
380 setEapIdentity(vec<uint8_t> identity)
381 generates (SupplicantStatus status);
382
383 /**
384 * Set EAP Anonymous Identity for this network.
385 *
386 * @param identity value to set.
387 * @return status Status of the operation.
388 * Possible status codes:
389 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800390 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700391 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
392 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
393 */
394 setEapAnonymousIdentity(vec<uint8_t> identity)
395 generates (SupplicantStatus status);
396
397 /**
398 * Set EAP Password for this network.
399 *
400 * @param password value to set.
401 * @return status Status of the operation.
402 * Possible status codes:
403 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800404 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700405 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
406 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
407 */
408 setEapPassword(vec<uint8_t> password)
409 generates (SupplicantStatus status);
410
411 /**
412 * Set EAP CA certificate file path for this network.
413 *
414 * @param path value to set.
415 * @return status Status of the operation.
416 * Possible status codes:
417 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800418 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700419 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
420 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
421 */
422 setEapCACert(string path) generates (SupplicantStatus status);
423
424 /**
425 * Set EAP CA certificate directory path for this network.
426 *
427 * @param path value to set.
428 * @return status Status of the operation.
429 * Possible status codes:
430 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800431 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700432 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
433 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
434 */
435 setEapCAPath(string path) generates (SupplicantStatus status);
436
437 /**
438 * Set EAP Client certificate file path for this network.
439 *
440 * @param path value to set.
441 * @return status Status of the operation.
442 * Possible status codes:
443 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800444 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700445 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
446 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
447 */
448 setEapClientCert(string path) generates (SupplicantStatus status);
449
450 /**
Roshan Piuse54bcae2017-02-22 08:56:23 -0800451 * Set EAP private key Id for this network.
452 * This is used if private key operations for EAP-TLS are performed
453 * using a smartcard.
Roshan Pius39f588f2016-10-31 14:51:27 -0700454 *
Roshan Piuse54bcae2017-02-22 08:56:23 -0800455 * @param id value to set.
Roshan Pius39f588f2016-10-31 14:51:27 -0700456 * @return status Status of the operation.
457 * Possible status codes:
458 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800459 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700460 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
461 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
462 */
Roshan Piuse54bcae2017-02-22 08:56:23 -0800463 setEapPrivateKeyId(string id) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700464
465 /**
466 * Set EAP subject match for this network.
467 *
468 * @param match value to set.
469 * @return status Status of the operation.
470 * Possible status codes:
471 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800472 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700473 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
474 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
475 */
476 setEapSubjectMatch(string match) generates (SupplicantStatus status);
477
478 /**
Roshan Pius118598a2016-12-13 13:39:27 -0800479 * Set EAP Alt subject match for this network.
Roshan Pius39f588f2016-10-31 14:51:27 -0700480 *
481 * @param match value to set.
482 * @return status Status of the operation.
483 * Possible status codes:
484 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800485 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700486 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
487 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
488 */
489 setEapAltSubjectMatch(string match)
490 generates (SupplicantStatus status);
491
492 /**
493 * Enable EAP Open SSL Engine for this network.
494 *
495 * @param enable true to set, false otherwise.
496 * @return status Status of the operation.
497 * Possible status codes:
498 * |SupplicantStatusCode.SUCCESS|,
499 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
500 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
501 */
502 setEapEngine(bool enable) generates (SupplicantStatus status);
503
504 /**
505 * Set EAP Open SSL Engine ID for this network.
506 *
507 * @param id value to set.
508 * @return status Status of the operation.
509 * Possible status codes:
510 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800511 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700512 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
513 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
514 */
515 setEapEngineID(string id) generates (SupplicantStatus status);
516
517 /**
518 * Set EAP Domain suffix match for this network.
519 *
520 * @param match value to set.
521 * @return status Status of the operation.
522 * Possible status codes:
523 * |SupplicantStatusCode.SUCCESS|,
Roshan Pius756ad992016-11-07 10:29:48 -0800524 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
Roshan Pius39f588f2016-10-31 14:51:27 -0700525 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
526 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
527 */
528 setEapDomainSuffixMatch(string match)
529 generates (SupplicantStatus status);
Roshan Piusdbd09c62017-01-19 16:03:36 -0800530
Roshan Pius2d50db92017-01-13 15:53:07 -0800531 /**
Roshan Piusdbd09c62017-01-19 16:03:36 -0800532 * This field can be used to enable proactive key caching which is also
533 * known as opportunistic PMKSA caching for WPA2. This is disabled (0)
534 * by default unless default value is changed with the global okc=1
535 * parameter.
536 *
537 * Proactive key caching is used to make supplicant assume that the APs
538 * are using the same PMK and generate PMKSA cache entries without
539 * doing RSN pre-authentication. This requires support from the AP side
540 * and is normally used with wireless switches that co-locate the
541 * authenticator.
542 *
543 * @param enable true to set, false otherwise.
544 * @return status Status of the operation.
545 * Possible status codes:
546 * |SupplicantStatusCode.SUCCESS|,
547 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
548 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
549 */
550 setProactiveKeyCaching(bool enable) generates (SupplicantStatus status);
551
552 /**
553 * Set ID string for this network.
Roshan Pius2d50db92017-01-13 15:53:07 -0800554 * Network identifier string for external scripts.
555 *
556 * @return idStr ID string value to set.
557 * @return status Status of the operation.
558 * Possible status codes:
559 * |SupplicantStatusCode.SUCCESS|,
560 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
561 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
562 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
563 */
564 setIdStr(string idStr) generates (SupplicantStatus status);
Roshan Pius39f588f2016-10-31 14:51:27 -0700565
566 /**
Roshan Piusdbd09c62017-01-19 16:03:36 -0800567 * Set PPS MO ID for this network.
568 * (Hotspot 2.0 PerProviderSubscription/UpdateIdentifier)
569 *
570 * @return id ID value to set.
571 * @return status Status of the operation.
572 * Possible status codes:
573 * |SupplicantStatusCode.SUCCESS|,
574 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
575 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
576 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
577 */
578 setUpdateIdentifier(uint32_t id) generates (SupplicantStatus status);
579
580 /**
Roshan Pius39f588f2016-10-31 14:51:27 -0700581 * Getters for the various network params.
582 */
583 /**
584 * Get SSID for this network.
585 *
586 * @return status Status of the operation.
587 * Possible status codes:
588 * |SupplicantStatusCode.SUCCESS|,
589 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
590 * @return ssid value set.
591 */
592 getSsid() generates (SupplicantStatus status, Ssid ssid);
593
594 /**
595 * Get the BSSID set for this network.
596 *
597 * @return status Status of the operation.
598 * Possible status codes:
599 * |SupplicantStatusCode.SUCCESS|,
600 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
601 * @return bssid value set.
602 */
603 getBssid() generates (SupplicantStatus status, Bssid bssid);
604
605 /**
606 * Get whether Probe Requests are being sent for this network (hidden).
607 *
608 * @return status Status of the operation.
609 * Possible status codes:
610 * |SupplicantStatusCode.SUCCESS|,
611 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
612 * @return enabled true if set, false otherwise.
613 */
614 getScanSsid() generates (SupplicantStatus status, bool enabled);
615
616 /**
617 * Get the key mgmt mask set for the network.
618 *
619 * @return status Status of the operation.
620 * Possible status codes:
621 * |SupplicantStatusCode.SUCCESS|,
622 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
623 * @return keyMgmtMask Combination of |KeyMgmtMask| values.
624 */
625 getKeyMgmt()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800626 generates (SupplicantStatus status, bitfield<KeyMgmtMask> keyMgmtMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700627
628 /**
629 * Get the proto mask set for the network.
630 *
631 * @return status Status of the operation.
632 * Possible status codes:
633 * |SupplicantStatusCode.SUCCESS|,
634 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
635 * @return protoMask Combination of |ProtoMask| values.
636 */
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800637 getProto() generates (SupplicantStatus status, bitfield<ProtoMask> protoMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700638
639 /**
640 * Get the auth alg mask set for the network.
641 *
642 * @return status Status of the operation.
643 * Possible status codes:
644 * |SupplicantStatusCode.SUCCESS|,
645 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
646 * @return authAlgMask Combination of |AuthAlgMask| values.
647 */
648 getAuthAlg()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800649 generates (SupplicantStatus status, bitfield<AuthAlgMask> authAlgMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700650
651 /**
652 * Get the group cipher mask set for the network.
653 *
654 * @return status Status of the operation.
655 * Possible status codes:
656 * |SupplicantStatusCode.SUCCESS|,
657 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
658 * @return groupCipherMask Combination of |GroupCipherMask| values.
659 */
660 getGroupCipher()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800661 generates (SupplicantStatus status,
662 bitfield<GroupCipherMask> groupCipherMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700663
664 /**
665 * Get the pairwise cipher mask set for the network.
666 *
667 * @return status Status of the operation.
668 * Possible status codes:
669 * |SupplicantStatusCode.SUCCESS|,
670 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
671 * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values.
672 */
673 getPairwiseCipher()
Roshan Pius5c3a0d92017-01-18 09:23:18 -0800674 generates (SupplicantStatus status,
675 bitfield<PairwiseCipherMask> pairwiseCipherMask);
Roshan Pius39f588f2016-10-31 14:51:27 -0700676
677 /**
678 * Get passphrase for WPA_PSK network.
Roshan Piuscbafd532017-03-07 08:27:30 -0800679 * Must return a failure if network has no passphrase set (use |getPsk| if
680 * network was configured with raw psk instead).
Roshan Pius39f588f2016-10-31 14:51:27 -0700681 *
682 * @return status Status of the operation.
683 * Possible status codes:
684 * |SupplicantStatusCode.SUCCESS|,
685 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
686 * @return psk value set.
687 */
688 getPskPassphrase() generates (SupplicantStatus status, string psk);
689
690 /**
Roshan Piuscbafd532017-03-07 08:27:30 -0800691 * Get raw psk for WPA_PSK network.
692 *
693 * @return status Status of the operation.
694 * Possible status codes:
695 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
696 * |SupplicantStatusCode.SUCCESS|,
697 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
698 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
699 * @param psk value set.
700 */
701 getPsk() generates (SupplicantStatus status, uint8_t[32] psk);
702
703 /**
Roshan Pius39f588f2016-10-31 14:51:27 -0700704 * Get WEP key for WEP network.
705 *
706 * @param keyIdx Index of wep key to be fetched.
707 * Max of |WEP_KEYS_MAX_NUM|.
708 * @return status Status of the operation.
709 * Possible status codes:
710 * |SupplicantStatusCode.SUCCESS|,
711 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
712 * @return wepKey value set.
713 */
714 getWepKey(uint32_t keyIdx)
715 generates (SupplicantStatus status, vec<uint8_t> wepKey);
716
717 /**
718 * Get default Tx key index for WEP network.
719 *
720 * @return status Status of the operation.
721 * Possible status codes:
722 * |SupplicantStatusCode.SUCCESS|,
723 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
724 * @return keyIdx value set.
725 */
726 getWepTxKeyIdx()
727 generates (SupplicantStatus status, uint32_t keyIdx);
728
729 /**
730 * Get whether RequirePmf is enabled for this network.
731 *
732 * @return status Status of the operation.
733 * Possible status codes:
734 * |SupplicantStatusCode.SUCCESS|,
735 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
736 * @return enabled true if set, false otherwise.
737 */
738 getRequirePmf() generates (SupplicantStatus status, bool enabled);
739
740 /**
Roshan Pius118598a2016-12-13 13:39:27 -0800741 * Get EAP Method set for this network.
742 *
743 * @return status Status of the operation.
744 * Possible status codes:
745 * |SupplicantStatusCode.SUCCESS|,
746 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
747 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
748 * @return method value set.
749 * Must be one of |EapMethod| values.
750 */
751 getEapMethod()
752 generates (SupplicantStatus status, EapMethod method);
753
754 /**
755 * Get EAP Phase2 Method set for this network.
756 *
757 * @return status Status of the operation.
758 * Possible status codes:
759 * |SupplicantStatusCode.SUCCESS|,
760 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
761 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
762 * @return method value set.
763 * Must be one of |EapPhase2Method| values.
764 */
765 getEapPhase2Method()
766 generates (SupplicantStatus status, EapPhase2Method method);
767
768 /**
769 * Get EAP Identity set for this network.
770 *
771 * @return status Status of the operation.
772 * Possible status codes:
773 * |SupplicantStatusCode.SUCCESS|,
774 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
775 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
776 * @return identity value set.
777 */
778 getEapIdentity()
779 generates (SupplicantStatus status, vec<uint8_t> identity);
780
781 /**
782 * Get EAP Anonymous Identity set for this network.
783 *
784 * @return status Status of the operation.
785 * Possible status codes:
786 * |SupplicantStatusCode.SUCCESS|,
787 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
788 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
789 * @return identity value set.
790 */
791 getEapAnonymousIdentity()
792 generates (SupplicantStatus status, vec<uint8_t> identity);
793
794 /**
795 * Get EAP Password set for this network.
796 *
797 * @return status Status of the operation.
798 * Possible status codes:
799 * |SupplicantStatusCode.SUCCESS|,
800 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
801 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
802 * @return password value set.
803 */
804 getEapPassword()
805 generates (SupplicantStatus status, vec<uint8_t> password);
806
807 /**
808 * Get EAP CA certificate file path set for this network.
809 *
810 * @return status Status of the operation.
811 * Possible status codes:
812 * |SupplicantStatusCode.SUCCESS|,
813 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
814 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
815 * @return path value set.
816 */
817 getEapCACert() generates (SupplicantStatus status, string path);
818
819 /**
820 * Get EAP CA certificate directory path set for this network.
821 *
822 * @return status Status of the operation.
823 * Possible status codes:
824 * |SupplicantStatusCode.SUCCESS|,
825 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
826 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
827 * @return path value set.
828 */
829 getEapCAPath() generates (SupplicantStatus status, string path);
830
831 /**
832 * Get EAP Client certificate file path set for this network.
833 *
834 * @return status Status of the operation.
835 * Possible status codes:
836 * |SupplicantStatusCode.SUCCESS|,
837 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
838 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
839 * @return path value set.
840 */
841 getEapClientCert() generates (SupplicantStatus status, string path);
842
843 /**
Roshan Piuse54bcae2017-02-22 08:56:23 -0800844 * Get EAP private key Id set for this network.
Roshan Pius118598a2016-12-13 13:39:27 -0800845 *
846 * @return status Status of the operation.
847 * Possible status codes:
848 * |SupplicantStatusCode.SUCCESS|,
849 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
850 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
Roshan Piuse54bcae2017-02-22 08:56:23 -0800851 * @return id value set.
Roshan Pius118598a2016-12-13 13:39:27 -0800852 */
Roshan Piuse54bcae2017-02-22 08:56:23 -0800853 getEapPrivateKeyId() generates (SupplicantStatus status, string id);
Roshan Pius118598a2016-12-13 13:39:27 -0800854
855 /**
856 * Get EAP subject match set for this network.
857 *
858 * @return status Status of the operation.
859 * Possible status codes:
860 * |SupplicantStatusCode.SUCCESS|,
861 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
862 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
863 * @return match value set.
864 */
865 getEapSubjectMatch() generates (SupplicantStatus status, string match);
866
867 /**
868 * Get EAP Alt subject match set for this network.
869 *
870 * @return status Status of the operation.
871 * Possible status codes:
872 * |SupplicantStatusCode.SUCCESS|,
873 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
874 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
875 * @return match value set.
876 */
877 getEapAltSubjectMatch()
878 generates (SupplicantStatus status, string match);
879
880 /**
881 * Get if EAP Open SSL Engine is enabled for this network.
882 *
883 * @return status Status of the operation.
884 * Possible status codes:
885 * |SupplicantStatusCode.SUCCESS|,
886 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
887 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
888 * @return enabled true if set, false otherwise.
889 */
890 getEapEngine() generates (SupplicantStatus status, bool enabled);
891
892 /**
893 * Get EAP Open SSL Engine ID set for this network.
894 *
895 * @return status Status of the operation.
896 * Possible status codes:
897 * |SupplicantStatusCode.SUCCESS|,
898 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
899 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
900 * @return id value set.
901 */
902 getEapEngineID() generates (SupplicantStatus status, string id);
903
904 /**
905 * Get EAP Domain suffix match set for this network.
906 *
907 * @return status Status of the operation.
908 * Possible status codes:
909 * |SupplicantStatusCode.SUCCESS|,
910 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
911 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
912 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
913 * @return match value set.
914 */
915 getEapDomainSuffixMatch()
916 generates (SupplicantStatus status, string match);
917
918 /**
Roshan Pius2d50db92017-01-13 15:53:07 -0800919 * Get ID string set for this network.
920 * Network identifier string for external scripts.
921 *
922 * @return status Status of the operation.
923 * Possible status codes:
924 * |SupplicantStatusCode.SUCCESS|,
925 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
926 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
927 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
928 * @return idStr ID string set.
929 */
930 getIdStr() generates (SupplicantStatus status, string idStr);
931
932 /**
Roshan Pius72b5eb02017-02-13 13:19:38 -0800933 * Retrieves a WPS-NFC configuration token for this network.
934 *
935 * @return status Status of the operation.
936 * Possible status codes:
937 * |SupplicantStatusCode.SUCCESS|,
938 * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
939 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
940 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
941 * @return token Bytes representing WPS-NFC configuration token.
942 * This is a dump of all the WPS atrributes of the AP configuration
943 * as specified in the Wi-Fi Protected Setup Specification.
944 */
945 getWpsNfcConfigurationToken()
946 generates (SupplicantStatus status, vec<uint8_t> token);
947
948 /**
Roshan Pius39f588f2016-10-31 14:51:27 -0700949 * Enable the network for connection purposes.
950 *
951 * This must trigger a connection to the network if:
952 * a) |noConnect| is false, and
953 * b) This is the only network configured, and
954 * c) Is visible in the current scan results.
955 *
956 * @param noConnect Only enable the network, dont trigger a connect.
957 * @return status Status of the operation.
958 * Possible status codes:
959 * |SupplicantStatusCode.SUCCESS|,
960 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
961 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
962 */
963 enable(bool noConnect) generates (SupplicantStatus status);
964
965 /**
966 * Disable the network for connection purposes.
967 *
968 * This must trigger a disconnection from the network, if currently
969 * connected to this one.
970 *
971 * @return status Status of the operation.
972 * Possible status codes:
973 * |SupplicantStatusCode.SUCCESS|,
974 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
975 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
976 */
977 disable() generates (SupplicantStatus status);
978
979 /**
980 * Initiate connection to this network.
981 *
982 * @return status Status of the operation.
983 * Possible status codes:
984 * |SupplicantStatusCode.SUCCESS|,
985 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
986 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
987 */
988 select() generates (SupplicantStatus status);
989
990 /**
991 * Used to send a response to the
992 * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request.
993 *
994 * @param params Params to be used for EAP GSM authentication.
995 * @return status Status of the operation.
996 * Possible status codes:
997 * |SupplicantStatusCode.SUCCESS|,
998 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
999 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1000 */
Roshan Piusdbd09c62017-01-19 16:03:36 -08001001 sendNetworkEapSimGsmAuthResponse(vec<NetworkResponseEapSimGsmAuthParams> params)
Roshan Pius39f588f2016-10-31 14:51:27 -07001002 generates (SupplicantStatus status);
1003
1004 /**
1005 * Used to send a response to the
Roshan Piusdbd09c62017-01-19 16:03:36 -08001006 * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request.
1007 *
1008 * @return status Status of the operation.
1009 * Possible status codes:
1010 * |SupplicantStatusCode.SUCCESS|,
1011 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1012 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1013 */
1014 sendNetworkEapSimGsmAuthFailure() generates (SupplicantStatus status);
1015
1016 /**
1017 * Used to send a response to the
Roshan Pius39f588f2016-10-31 14:51:27 -07001018 * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
1019 *
1020 * @param params Params to be used for EAP UMTS authentication.
1021 * @return status Status of the operation.
1022 * Possible status codes:
1023 * |SupplicantStatusCode.SUCCESS|,
1024 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1025 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1026 */
1027 sendNetworkEapSimUmtsAuthResponse(NetworkResponseEapSimUmtsAuthParams params)
1028 generates (SupplicantStatus status);
1029
1030 /**
1031 * Used to send a response to the
Roshan Piusdbd09c62017-01-19 16:03:36 -08001032 * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
1033 *
1034 * @param auts Params to be used for EAP UMTS authentication.
1035 * @return status Status of the operation.
1036 * Possible status codes:
1037 * |SupplicantStatusCode.SUCCESS|,
1038 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1039 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1040 */
1041 sendNetworkEapSimUmtsAutsResponse(uint8_t[14] auts)
1042 generates (SupplicantStatus status);
1043
1044 /**
1045 * Used to send a response to the
1046 * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
1047 *
1048 * @return status Status of the operation.
1049 * Possible status codes:
1050 * |SupplicantStatusCode.SUCCESS|,
1051 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1052 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1053 */
1054 sendNetworkEapSimUmtsAuthFailure() generates (SupplicantStatus status);
1055
1056 /**
1057 * Used to send a response to the
Roshan Pius39f588f2016-10-31 14:51:27 -07001058 * |ISupplicantNetworkCallback.onNetworkEapIdentityRequest| request.
1059 *
1060 * @param identity Identity to be used for the network.
1061 * @return status Status of the operation.
1062 * Possible status codes:
1063 * |SupplicantStatusCode.SUCCESS|,
1064 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
1065 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
1066 */
1067 sendNetworkEapIdentityResponse(vec<uint8_t> identity)
1068 generates (SupplicantStatus status);
1069};