blob: fce3c5dcfdefdbbd85a4eb005f63f05d41cd46c9 [file] [log] [blame]
Roshan Pius9a3a84f2016-09-15 13:02:25 -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
Roshan Pius22ab8b22016-09-28 13:35:42 -070017package android.hardware.wifi.supplicant@1.0;
Roshan Pius9a3a84f2016-09-15 13:02:25 -070018
19import ISupplicantNetworkCallback;
20
21/**
22 * Interface exposed by wpa_supplicant for each network configuration it
23 * controls.
24 * A network is wpa_supplicant's way of representing the configuration
25 * parameters of a Wifi service set. Service sets are identified by their
26 * service set identitifier (SSID). The parameters for a network includes the
27 * credentials, bssid, etc.
28 */
29interface ISupplicantNetwork {
30 /**
31 * Size limits for some of the params used in this interface.
32 */
33 enum ParamSizeLimits : uint32_t {
34 /** Max length of SSID param. */
35 SSID_MAX_LEN_IN_BYTES = 32,
36
37 /** Min length of PSK passphrase param. */
38 PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8,
39
40 /** Max length of PSK passphrase param. */
41 PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63,
42
43 /** Max number of WEP keys param. */
44 WEP_KEYS_MAX_NUM = 4,
45
46 /** Length of each WEP40 keys param. */
47 WEP40_KEY_LEN_IN_BYTES = 5,
48 /** Length of each WEP104 keys param. */
49 WEP104_KEY_LEN_IN_BYTES = 13,
50 };
51
52 /** Possble mask of values for KeyMgmt param. */
53 enum KeyMgmtMask : uint32_t {
54 WPA_EAP = 1 << 0,
55 WPA_PSK = 1 << 1,
56 NONE = 1 << 2,
57 IEEE8021X = 1 << 3
58 };
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,
80 CCMP = 1 << 4
81 };
82
83 /** Possble mask of values for PairwiseCipher param. */
84 enum PairwiseCipherMask : uint32_t {
85 NONE = 1 << 0,
86 TKIP = 1 << 3,
87 CCMP = 1 << 4
88 };
89
90 /** Possble values for EapMethod param. */
91 enum EapMethod : uint32_t {
92 PEAP = 0,
93 TLS = 1,
94 TTLS = 2,
95 PWD = 3,
96 SIM = 4,
97 AKA = 5,
98 AKA_PRIME = 6,
99 WFA_UNAUTH_TLS = 7
100 };
101
102 /** Possble values for Phase2Method param. */
103 enum EapPhase2Method : uint32_t {
104 NONE = 0,
105 PAP = 1,
106 MSPAP = 2,
107 MSPAPV2 = 3,
108 GTC = 4
109 };
110
111 /** Params of |sendNetworkEapSimGsmAuthResponse| request. (Refer RFC 4186) */
112 struct NetworkResponseEapSimGsmAuthParams {
113 uint8_t[8] kc;
114 uint8_t[4] sres;
115 };
116
117 /** Params of |sendNetworkEapSimUmtsAuthResponse| request. (Refer RFC 4187) */
118 struct NetworkResponseEapSimUmtsAuthParams {
119 vec<uint8_t> res;
120 uint8_t[16] ik;
121 uint8_t[16] ck;
122 };
123
124 /**
125 * Retrieves the ID allocated to this network by wpa_supplicant.
126 *
127 * This is not the |SSID| of the network, but an internal identifier for
128 * this network used by wpa_supplicant.
129 *
130 * @return status Status of the operation.
131 * Possible status codes:
132 * |SupplicantStatusCode.SUCCESS|,
133 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
134 * @return id Network ID.
135 */
136 getId() generates (SupplicantStatus status, SupplicantNetworkId id);
137
138 /**
139 * Retrieves the name of the interface this network belongs to.
140 *
141 * @return status Status of the operation.
142 * Possible status codes:
143 * |SupplicantStatusCode.SUCCESS|,
144 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
145 * @return Name of the network interface, e.g., wlan0
146 */
147 getInterfaceName() generates (SupplicantStatus status, string name);
148
149 /**
150 * Register for callbacks from this network.
151 *
152 * These callbacks are invoked for events that are specific to this network.
153 * Registration of multiple callback objects is supported. These objects must
154 * be automatically deleted when the corresponding client process is dead or
155 * if this network is removed.
156 *
157 * @param callback An instance of the |ISupplicantNetworkCallback| HIDL
158 * interface object.
159 * @return status Status of the operation.
160 * Possible status codes:
161 * |SupplicantStatusCode.SUCCESS|,
162 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
163 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
164 */
165 registerCallback(ISupplicantNetworkCallback callback)
166 generates (SupplicantStatus status);
167
168 /**
169 * Setters for the various network params.
170 * These correspond to elements of |wpa_sssid| struct used internally by
171 * wpa_supplicant to represent each network.
172 */
173 /**
174 * Set SSID for this network.
175 *
176 * @param ssid value to set.
177 * Max length of |ParamSizeLimits.SSID_MAX_LEN_IN_BYTES|.
178 * @return status Status of the operation.
179 * Possible status codes:
180 * |SupplicantStatusCode.SUCCESS|,
181 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
182 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
183 */
184 setSsid(Ssid ssid) generates (SupplicantStatus status);
185
186 /**
187 * Set the network to only connect to an AP with provided BSSID.
188 *
189 * @param bssid value to set.
190 * @return status Status of the operation.
191 * Possible status codes:
192 * |SupplicantStatusCode.SUCCESS|,
193 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
194 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
195 */
196 setBssid(Bssid bssid) generates (SupplicantStatus status);
197
198 /**
199 * Set whether to send probe requests for this network (hidden).
200 *
201 * @param enable true to set, false otherwise.
202 * @return status Status of the operation.
203 * Possible status codes:
204 * |SupplicantStatusCode.SUCCESS|,
205 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
206 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
207 */
208 setScanSsid(bool enable) generates (SupplicantStatus status);
209
210 /**
211 * Set key management mask for the network.
212 *
213 * @param keyMgmtMask value to set.
214 * Combination of |KeyMgmtMask| values.
215 * @return status Status of the operation.
216 * Possible status codes:
217 * |SupplicantStatusCode.SUCCESS|,
218 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
219 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
220 */
221 setKeyMgmt(uint32_t keyMgmtMask) generates (SupplicantStatus status);
222
223 /**
224 * Set proto mask for the network.
225 *
226 * @param protoMask value to set.
227 * Combination of |ProtoMask| values.
228 * @return status Status of the operation.
229 * Possible status codes:
230 * |SupplicantStatusCode.SUCCESS|,
231 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
232 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
233 */
234 setProto(uint32_t protoMask) generates (SupplicantStatus status);
235
236 /**
237 * Set auth alg mask for the network.
238 *
239 * @param authAlgMask value to set.
240 * Combination of |ProtoMask| values.
241 * @return status Status of the operation.
242 * Possible status codes:
243 * |SupplicantStatusCode.SUCCESS|,
244 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
245 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
246 */
247 setAuthAlg(uint32_t authAlgMask) generates (SupplicantStatus status);
248
249 /**
250 * Set group cipher mask for the network.
251 *
252 * @param groupCipherMask value to set.
253 * Combination of |ProtoMask| values.
254 * @return status Status of the operation.
255 * Possible status codes:
256 * |SupplicantStatusCode.SUCCESS|,
257 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
258 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
259 */
260 setGroupCipher(uint32_t groupCipherMask)
261 generates (SupplicantStatus status);
262
263 /**
264 * Set pairwise cipher mask for the network.
265 *
266 * @param pairwiseCipherMask value to set.
267 * Combination of |ProtoMask| values.
268 * @return status Status of the operation.
269 * Possible status codes:
270 * |SupplicantStatusCode.SUCCESS|,
271 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
272 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
273 */
274 setPairwiseCipher(uint32_t pairwiseCipherMask)
275 generates (SupplicantStatus status);
276
277 /**
278 * Set passphrase for WPA_PSK network.
279 *
280 * @param psk value to set.
281 * Length of value must be between
282 * |ParamSizeLimits.PSK_PASSPHRASE_MIN_LEN_IN_BYTES| and
283 * |ParamSizeLimits.PSK_PASSPHRASE_MAX_LEN_IN_BYTES|.
284 * @return status Status of the operation.
285 * Possible status codes:
286 * |SupplicantStatusCode.SUCCESS|,
287 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
288 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
289 */
290 setPskPassphrase(string psk) generates (SupplicantStatus status);
291
292 /**
293 * Set WEP key for WEP network.
294 *
295 * @param keyIdx Index of wep key to set.
296 * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
297 * @param wepKey value to set.
298 * Length of each key must be either
299 * |ParamSizeLimits.WEP40_KEY_LEN_IN_BYTES| or
300 * |ParamSizeLimits.WEP104_KEY_LEN_IN_BYTES|.
301 * @return status Status of the operation.
302 * Possible status codes:
303 * |SupplicantStatusCode.SUCCESS|,
304 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
305 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
306 */
307 setWepKey(uint32_t keyIdx, vec<uint8_t> wepKey)
308 generates (SupplicantStatus status);
309
310 /**
311 * Set default Tx key index for WEP network.
312 *
313 * @param KeyIdx value to set.
314 * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
315 * @return status Status of the operation.
316 * Possible status codes:
317 * |SupplicantStatusCode.SUCCESS|,
318 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
319 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
320 */
321 setWepTxKeyIdx(uint32_t keyIdx)
322 generates (SupplicantStatus status);
323
324 /**
325 * Set whether RequirePmf is enabled for this network.
326 *
327 * @param enable true to set, false otherwise.
328 * @return status Status of the operation.
329 * Possible status codes:
330 * |SupplicantStatusCode.SUCCESS|,
331 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
332 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
333 */
334 setRequirePmf(bool enable) generates (SupplicantStatus status);
335
336 /**
337 * Set EAP Method for this network.
338 *
339 * @param method value to be set.
340 * Must be one of |EapMethod| values.
341 * @return status Status of the operation.
342 * Possible status codes:
343 * |SupplicantStatusCode.SUCCESS|,
344 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
345 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
346 */
347 setEapMethod(EapMethod method)
348 generates (SupplicantStatus status);
349
350 /**
351 * Set EAP Phase2 Method for this network.
352 *
353 * @param method value to set.
354 * Must be one of |EapPhase2Method| values.
355 * @return status Status of the operation.
356 * Possible status codes:
357 * |SupplicantStatusCode.SUCCESS|,
358 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
359 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
360 */
361 setEapPhase2Method(EapPhase2Method method)
362 generates (SupplicantStatus status);
363
364 /**
365 * Set EAP Identity for this network.
366 *
367 * @param identity value to set.
368 * @return status Status of the operation.
369 * Possible status codes:
370 * |SupplicantStatusCode.SUCCESS|,
371 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
372 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
373 */
374 setEapIdentity(vec<uint8_t> identity)
375 generates (SupplicantStatus status);
376
377 /**
378 * Set EAP Anonymous Identity for this network.
379 *
380 * @param identity value to set.
381 * @return status Status of the operation.
382 * Possible status codes:
383 * |SupplicantStatusCode.SUCCESS|,
384 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
385 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
386 */
387 setEapAnonymousIdentity(vec<uint8_t> identity)
388 generates (SupplicantStatus status);
389
390 /**
391 * Set EAP Password for this network.
392 *
393 * @param password value to set.
394 * @return status Status of the operation.
395 * Possible status codes:
396 * |SupplicantStatusCode.SUCCESS|,
397 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
398 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
399 */
400 setEapPassword(vec<uint8_t> password)
401 generates (SupplicantStatus status);
402
403 /**
404 * Set EAP CA certificate file path for this network.
405 *
406 * @param path value to set.
407 * @return status Status of the operation.
408 * Possible status codes:
409 * |SupplicantStatusCode.SUCCESS|,
410 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
411 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
412 */
413 setEapCACert(string path) generates (SupplicantStatus status);
414
415 /**
416 * Set EAP CA certificate directory path for this network.
417 *
418 * @param path value to set.
419 * @return status Status of the operation.
420 * Possible status codes:
421 * |SupplicantStatusCode.SUCCESS|,
422 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
423 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
424 */
425 setEapCAPath(string path) generates (SupplicantStatus status);
426
427 /**
428 * Set EAP Client certificate file path for this network.
429 *
430 * @param path value to set.
431 * @return status Status of the operation.
432 * Possible status codes:
433 * |SupplicantStatusCode.SUCCESS|,
434 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
435 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
436 */
437 setEapClientCert(string path) generates (SupplicantStatus status);
438
439 /**
440 * Set EAP private key 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|,
446 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
447 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
448 */
449 setEapPrivateKey(string path) generates (SupplicantStatus status);
450
451 /**
452 * Set EAP subject match for this network.
453 *
454 * @param match value to set.
455 * @return status Status of the operation.
456 * Possible status codes:
457 * |SupplicantStatusCode.SUCCESS|,
458 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
459 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
460 */
461 setEapSubjectMatch(string match) generates (SupplicantStatus status);
462
463 /**
464 * Set EAP Altsubject match for this network.
465 *
466 * @param match value to set.
467 * @return status Status of the operation.
468 * Possible status codes:
469 * |SupplicantStatusCode.SUCCESS|,
470 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
471 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
472 */
473 setEapAltSubjectMatch(string match)
474 generates (SupplicantStatus status);
475
476 /**
477 * Enable EAP Open SSL Engine for this network.
478 *
479 * @param enable true to set, false otherwise.
480 * @return status Status of the operation.
481 * Possible status codes:
482 * |SupplicantStatusCode.SUCCESS|,
483 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
484 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
485 */
486 setEapEngine(bool enable) generates (SupplicantStatus status);
487
488 /**
489 * Set EAP Open SSL Engine ID for this network.
490 *
491 * @param id value to set.
492 * @return status Status of the operation.
493 * Possible status codes:
494 * |SupplicantStatusCode.SUCCESS|,
495 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
496 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
497 */
498 setEapEngineID(string id) generates (SupplicantStatus status);
499
500 /**
501 * Set EAP Domain suffix match for this network.
502 *
503 * @param match value to set.
504 * @return status Status of the operation.
505 * Possible status codes:
506 * |SupplicantStatusCode.SUCCESS|,
507 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
508 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
509 */
510 setEapDomainSuffixMatch(string match)
511 generates (SupplicantStatus status);
512
513 /**
514 * Getters for the various network params.
515 */
516 /**
517 * Get SSID for this network.
518 *
519 * @return status Status of the operation.
520 * Possible status codes:
521 * |SupplicantStatusCode.SUCCESS|,
522 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
523 * @return ssid value set.
524 */
525 getSsid() generates (SupplicantStatus status, Ssid ssid);
526
527 /**
528 * Get the BSSID set for this network.
529 *
530 * @return status Status of the operation.
531 * Possible status codes:
532 * |SupplicantStatusCode.SUCCESS|,
533 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
534 * @return bssid value set.
535 */
536 getBssid() generates (SupplicantStatus status, Bssid bssid);
537
538 /**
539 * Get whether Probe Requests are being sent for this network (hidden).
540 *
541 * @return status Status of the operation.
542 * Possible status codes:
543 * |SupplicantStatusCode.SUCCESS|,
544 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
545 * @return enabled true if set, false otherwise.
546 */
547 getScanSsid() generates (SupplicantStatus status, bool enabled);
548
549 /**
550 * Get the key mgmt mask set for the network.
551 *
552 * @return status Status of the operation.
553 * Possible status codes:
554 * |SupplicantStatusCode.SUCCESS|,
555 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
556 * @return keyMgmtMask Combination of |KeyMgmtMask| values.
557 */
558 getKeyMgmt()
559 generates (SupplicantStatus status, uint32_t keyMgmtMask);
560
561 /**
562 * Get the proto mask set for the network.
563 *
564 * @return status Status of the operation.
565 * Possible status codes:
566 * |SupplicantStatusCode.SUCCESS|,
567 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
568 * @return protoMask Combination of |ProtoMask| values.
569 */
570 getProto() generates (SupplicantStatus status, uint32_t protoMask);
571
572 /**
573 * Get the auth alg mask set for the network.
574 *
575 * @return status Status of the operation.
576 * Possible status codes:
577 * |SupplicantStatusCode.SUCCESS|,
578 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
579 * @return authAlgMask Combination of |AuthAlgMask| values.
580 */
581 getAuthAlg()
582 generates (SupplicantStatus status, uint32_t authAlgMask);
583
584 /**
585 * Get the group cipher mask set for the network.
586 *
587 * @return status Status of the operation.
588 * Possible status codes:
589 * |SupplicantStatusCode.SUCCESS|,
590 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
591 * @return groupCipherMask Combination of |GroupCipherMask| values.
592 */
593 getGroupCipher()
594 generates (SupplicantStatus status, uint32_t groupCipherMask);
595
596 /**
597 * Get the pairwise cipher mask set for the network.
598 *
599 * @return status Status of the operation.
600 * Possible status codes:
601 * |SupplicantStatusCode.SUCCESS|,
602 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
603 * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values.
604 */
605 getPairwiseCipher()
606 generates (SupplicantStatus status, uint32_t pairwiseCipherMask);
607
608 /**
609 * Get passphrase for WPA_PSK network.
610 *
611 * @return status Status of the operation.
612 * Possible status codes:
613 * |SupplicantStatusCode.SUCCESS|,
614 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
615 * @return psk value set.
616 */
617 getPskPassphrase() generates (SupplicantStatus status, string psk);
618
619 /**
620 * Get WEP key for WEP network.
621 *
622 * @param keyIdx Index of wep key to be fetched.
623 * Max of |WEP_KEYS_MAX_NUM|.
624 * @return status Status of the operation.
625 * Possible status codes:
626 * |SupplicantStatusCode.SUCCESS|,
627 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
628 * @return wepKey value set.
629 */
630 getWepKey(uint32_t keyIdx)
631 generates (SupplicantStatus status, vec<uint8_t> wepKey);
632
633 /**
634 * Get default Tx key index for WEP network.
635 *
636 * @return status Status of the operation.
637 * Possible status codes:
638 * |SupplicantStatusCode.SUCCESS|,
639 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
640 * @return keyIdx value set.
641 */
642 getWepTxKeyIdx()
643 generates (SupplicantStatus status, uint32_t keyIdx);
644
645 /**
646 * Get whether RequirePmf is enabled for this network.
647 *
648 * @return status Status of the operation.
649 * Possible status codes:
650 * |SupplicantStatusCode.SUCCESS|,
651 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
652 * @return enabled true if set, false otherwise.
653 */
654 getRequirePmf() generates (SupplicantStatus status, bool enabled);
655
656 /**
657 * Enable the network for connection purposes.
658 *
659 * This must trigger a connection to the network if:
660 * a) |noConnect| is false, and
661 * b) This is the only network configured, and
662 * c) Is visible in the current scan results.
663 *
664 * @param noConnect Only enable the network, dont trigger a connect.
665 * @return status Status of the operation.
666 * Possible status codes:
667 * |SupplicantStatusCode.SUCCESS|,
668 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
669 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
670 */
671 enable(bool noConnect) generates (SupplicantStatus status);
672
673 /**
674 * Disable the network for connection purposes.
675 *
676 * This must trigger a disconnection from the network, if currently
677 * connected to this one.
678 *
679 * @return status Status of the operation.
680 * Possible status codes:
681 * |SupplicantStatusCode.SUCCESS|,
682 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
683 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
684 */
685 disable() generates (SupplicantStatus status);
686
687 /**
688 * Initiate connection to this network.
689 *
690 * @return status Status of the operation.
691 * Possible status codes:
692 * |SupplicantStatusCode.SUCCESS|,
693 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
694 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
695 */
696 select() generates (SupplicantStatus status);
697
698 /**
699 * Used to send a response to the
700 * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request.
701 *
702 * @param params Params to be used for EAP GSM authentication.
703 * @return status Status of the operation.
704 * Possible status codes:
705 * |SupplicantStatusCode.SUCCESS|,
706 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
707 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
708 */
709 sendNetworkEapSimGsmAuthResponse(NetworkResponseEapSimGsmAuthParams params)
710 generates (SupplicantStatus status);
711
712 /**
713 * Used to send a response to the
714 * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
715 *
716 * @param params Params to be used for EAP UMTS authentication.
717 * @return status Status of the operation.
718 * Possible status codes:
719 * |SupplicantStatusCode.SUCCESS|,
720 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
721 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
722 */
723 sendNetworkEapSimUmtsAuthResponse(NetworkResponseEapSimUmtsAuthParams params)
724 generates (SupplicantStatus status);
725
726 /**
727 * Used to send a response to the
728 * |ISupplicantNetworkCallback.onNetworkEapIdentityRequest| request.
729 *
730 * @param identity Identity to be used for the network.
731 * @return status Status of the operation.
732 * Possible status codes:
733 * |SupplicantStatusCode.SUCCESS|,
734 * |SupplicantStatusCode.FAILURE_UNKNOWN|,
735 * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
736 */
737 sendNetworkEapIdentityResponse(vec<uint8_t> identity)
738 generates (SupplicantStatus status);
739};