1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright 2020 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport @1.3::ISupplicantStaNetwork; 20*4d7e907cSAndroid Build Coastguard Workerimport ISupplicantStaNetworkCallback; 21*4d7e907cSAndroid Build Coastguard Worker 22*4d7e907cSAndroid Build Coastguard Worker/** 23*4d7e907cSAndroid Build Coastguard Worker * Interface exposed by the supplicant for each station mode network 24*4d7e907cSAndroid Build Coastguard Worker * configuration it controls. 25*4d7e907cSAndroid Build Coastguard Worker */ 26*4d7e907cSAndroid Build Coastguard Workerinterface ISupplicantStaNetwork extends @1.3::ISupplicantStaNetwork { 27*4d7e907cSAndroid Build Coastguard Worker /** 28*4d7e907cSAndroid Build Coastguard Worker * Possible mask of values for KeyMgmt param. 29*4d7e907cSAndroid Build Coastguard Worker */ 30*4d7e907cSAndroid Build Coastguard Worker enum KeyMgmtMask : @1.3::ISupplicantStaNetwork.KeyMgmtMask { 31*4d7e907cSAndroid Build Coastguard Worker /** 32*4d7e907cSAndroid Build Coastguard Worker * SAE PK mode 33*4d7e907cSAndroid Build Coastguard Worker */ 34*4d7e907cSAndroid Build Coastguard Worker SAE_PK, 35*4d7e907cSAndroid Build Coastguard Worker }; 36*4d7e907cSAndroid Build Coastguard Worker 37*4d7e907cSAndroid Build Coastguard Worker /** 38*4d7e907cSAndroid Build Coastguard Worker * Possible mask of values for PairwiseCipher param. 39*4d7e907cSAndroid Build Coastguard Worker */ 40*4d7e907cSAndroid Build Coastguard Worker enum PairwiseCipherMask : @1.3::ISupplicantStaNetwork.PairwiseCipherMask { 41*4d7e907cSAndroid Build Coastguard Worker /** 42*4d7e907cSAndroid Build Coastguard Worker * GCMP-128 Pairwise Cipher 43*4d7e907cSAndroid Build Coastguard Worker */ 44*4d7e907cSAndroid Build Coastguard Worker GCMP_128 = 1 << 6, 45*4d7e907cSAndroid Build Coastguard Worker }; 46*4d7e907cSAndroid Build Coastguard Worker 47*4d7e907cSAndroid Build Coastguard Worker /** 48*4d7e907cSAndroid Build Coastguard Worker * Possible mask of values for GroupCipher param. 49*4d7e907cSAndroid Build Coastguard Worker */ 50*4d7e907cSAndroid Build Coastguard Worker enum GroupCipherMask : @1.3::ISupplicantStaNetwork.GroupCipherMask { 51*4d7e907cSAndroid Build Coastguard Worker /** 52*4d7e907cSAndroid Build Coastguard Worker * GCMP-128 Group Cipher 53*4d7e907cSAndroid Build Coastguard Worker */ 54*4d7e907cSAndroid Build Coastguard Worker GCMP_128 = 1 << 6, 55*4d7e907cSAndroid Build Coastguard Worker }; 56*4d7e907cSAndroid Build Coastguard Worker 57*4d7e907cSAndroid Build Coastguard Worker /** 58*4d7e907cSAndroid Build Coastguard Worker * SAE Hash-to-Element mode. 59*4d7e907cSAndroid Build Coastguard Worker */ 60*4d7e907cSAndroid Build Coastguard Worker enum SaeH2eMode : uint8_t { 61*4d7e907cSAndroid Build Coastguard Worker /** 62*4d7e907cSAndroid Build Coastguard Worker * Hash-to-Element is disabled, only Hunting & Pecking is allowed. 63*4d7e907cSAndroid Build Coastguard Worker */ 64*4d7e907cSAndroid Build Coastguard Worker DISABLED, 65*4d7e907cSAndroid Build Coastguard Worker /** 66*4d7e907cSAndroid Build Coastguard Worker * Both Hash-to-Element and Hunting & Pecking are allowed. 67*4d7e907cSAndroid Build Coastguard Worker */ 68*4d7e907cSAndroid Build Coastguard Worker H2E_OPTIONAL, 69*4d7e907cSAndroid Build Coastguard Worker /** 70*4d7e907cSAndroid Build Coastguard Worker * Only Hash-to-Element is allowed. 71*4d7e907cSAndroid Build Coastguard Worker */ 72*4d7e907cSAndroid Build Coastguard Worker H2E_MANDATORY, 73*4d7e907cSAndroid Build Coastguard Worker }; 74*4d7e907cSAndroid Build Coastguard Worker 75*4d7e907cSAndroid Build Coastguard Worker /** 76*4d7e907cSAndroid Build Coastguard Worker * Set group cipher mask for the network. 77*4d7e907cSAndroid Build Coastguard Worker * 78*4d7e907cSAndroid Build Coastguard Worker * @param groupCipherMask value to set. 79*4d7e907cSAndroid Build Coastguard Worker * Combination of |ProtoMask| values. 80*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 81*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 82*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 83*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, 84*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, 85*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN| 86*4d7e907cSAndroid Build Coastguard Worker */ 87*4d7e907cSAndroid Build Coastguard Worker setGroupCipher_1_4(bitfield<GroupCipherMask> groupCipherMask) 88*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 89*4d7e907cSAndroid Build Coastguard Worker 90*4d7e907cSAndroid Build Coastguard Worker /** 91*4d7e907cSAndroid Build Coastguard Worker * Get the group cipher mask set for the network. 92*4d7e907cSAndroid Build Coastguard Worker * 93*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 94*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 95*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 96*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, 97*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN| 98*4d7e907cSAndroid Build Coastguard Worker * @return groupCipherMask Combination of |GroupCipherMask| values. 99*4d7e907cSAndroid Build Coastguard Worker */ 100*4d7e907cSAndroid Build Coastguard Worker getGroupCipher_1_4() 101*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status, bitfield<GroupCipherMask> groupCipherMask); 102*4d7e907cSAndroid Build Coastguard Worker 103*4d7e907cSAndroid Build Coastguard Worker /** 104*4d7e907cSAndroid Build Coastguard Worker * Set pairwise cipher mask for the network. 105*4d7e907cSAndroid Build Coastguard Worker * 106*4d7e907cSAndroid Build Coastguard Worker * @param pairwiseCipherMask value to set. 107*4d7e907cSAndroid Build Coastguard Worker * Combination of |ProtoMask| values. 108*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 109*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 110*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 111*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, 112*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, 113*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN| 114*4d7e907cSAndroid Build Coastguard Worker */ 115*4d7e907cSAndroid Build Coastguard Worker setPairwiseCipher_1_4(bitfield<PairwiseCipherMask> pairwiseCipherMask) 116*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 117*4d7e907cSAndroid Build Coastguard Worker 118*4d7e907cSAndroid Build Coastguard Worker /** 119*4d7e907cSAndroid Build Coastguard Worker * Get the pairwise cipher mask set for the network. 120*4d7e907cSAndroid Build Coastguard Worker * 121*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 122*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 123*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 124*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, 125*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN| 126*4d7e907cSAndroid Build Coastguard Worker * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values. 127*4d7e907cSAndroid Build Coastguard Worker */ 128*4d7e907cSAndroid Build Coastguard Worker getPairwiseCipher_1_4() 129*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status, bitfield<PairwiseCipherMask> pairwiseCipherMask); 130*4d7e907cSAndroid Build Coastguard Worker 131*4d7e907cSAndroid Build Coastguard Worker /** 132*4d7e907cSAndroid Build Coastguard Worker * Set whether to enable enhanced directional multi-gigabit (802.11ay EDMG). 133*4d7e907cSAndroid Build Coastguard Worker * Only allowed if hw mode is |HOSTAPD_MODE_IEEE80211AD| 134*4d7e907cSAndroid Build Coastguard Worker * 135*4d7e907cSAndroid Build Coastguard Worker * @param enable true to set, false otherwise. 136*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 137*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 138*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 139*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 140*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| 141*4d7e907cSAndroid Build Coastguard Worker */ 142*4d7e907cSAndroid Build Coastguard Worker setEdmg(bool enable) generates (SupplicantStatus status); 143*4d7e907cSAndroid Build Coastguard Worker 144*4d7e907cSAndroid Build Coastguard Worker /** 145*4d7e907cSAndroid Build Coastguard Worker * Get whether enhanced directional multi-gigabit (802.11ay EDMG) is enabled for this network. 146*4d7e907cSAndroid Build Coastguard Worker * 147*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 148*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 149*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 150*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| 151*4d7e907cSAndroid Build Coastguard Worker * @return enabled true if set, false otherwise. 152*4d7e907cSAndroid Build Coastguard Worker */ 153*4d7e907cSAndroid Build Coastguard Worker getEdmg() generates (SupplicantStatus status, bool enabled); 154*4d7e907cSAndroid Build Coastguard Worker 155*4d7e907cSAndroid Build Coastguard Worker /** 156*4d7e907cSAndroid Build Coastguard Worker * Register for callbacks from this network. 157*4d7e907cSAndroid Build Coastguard Worker * 158*4d7e907cSAndroid Build Coastguard Worker * These callbacks are invoked for events that are specific to this network. 159*4d7e907cSAndroid Build Coastguard Worker * Registration of multiple callback objects is supported. These objects must 160*4d7e907cSAndroid Build Coastguard Worker * be automatically deleted when the corresponding client process is dead or 161*4d7e907cSAndroid Build Coastguard Worker * if this network is removed. 162*4d7e907cSAndroid Build Coastguard Worker * 163*4d7e907cSAndroid Build Coastguard Worker * @param callback An instance of the |ISupplicantStaNetworkCallback| HIDL 164*4d7e907cSAndroid Build Coastguard Worker * interface object. 165*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 166*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 167*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 168*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 169*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| 170*4d7e907cSAndroid Build Coastguard Worker */ 171*4d7e907cSAndroid Build Coastguard Worker registerCallback_1_4(ISupplicantStaNetworkCallback callback) 172*4d7e907cSAndroid Build Coastguard Worker generates (SupplicantStatus status); 173*4d7e907cSAndroid Build Coastguard Worker 174*4d7e907cSAndroid Build Coastguard Worker /** 175*4d7e907cSAndroid Build Coastguard Worker * Set SAE H2E (Hash-to-Element) mode. 176*4d7e907cSAndroid Build Coastguard Worker * 177*4d7e907cSAndroid Build Coastguard Worker * @param mode SAE H2E supporting mode. 178*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 179*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 180*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 181*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 182*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| 183*4d7e907cSAndroid Build Coastguard Worker */ 184*4d7e907cSAndroid Build Coastguard Worker setSaeH2eMode(SaeH2eMode mode) generates (SupplicantStatus status); 185*4d7e907cSAndroid Build Coastguard Worker 186*4d7e907cSAndroid Build Coastguard Worker /** 187*4d7e907cSAndroid Build Coastguard Worker * Set whether to enable SAE PK (Public Key) only mode to enable public AP validation. 188*4d7e907cSAndroid Build Coastguard Worker * When enabled, only SAE PK network is allowed; otherwise PK is optional. 189*4d7e907cSAndroid Build Coastguard Worker * If this API is not called before connecting to an SAE 190*4d7e907cSAndroid Build Coastguard Worker * network, SAE PK mode depends on SAE PK config in wpa_supplicant configuration. 191*4d7e907cSAndroid Build Coastguard Worker * If SAE PK config of wpa_supplicant configuration is not set, 192*4d7e907cSAndroid Build Coastguard Worker * the default mode is optional (support for both PK and standard mode). 193*4d7e907cSAndroid Build Coastguard Worker * 194*4d7e907cSAndroid Build Coastguard Worker * @param enable true to set, false otherwise. 195*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the operation. 196*4d7e907cSAndroid Build Coastguard Worker * Possible status codes: 197*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.SUCCESS|, 198*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNKNOWN|, 199*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, 200*4d7e907cSAndroid Build Coastguard Worker * |SupplicantStatusCode.FAILURE_UNSUPPORTED| 201*4d7e907cSAndroid Build Coastguard Worker */ 202*4d7e907cSAndroid Build Coastguard Worker enableSaePkOnlyMode(bool enable) generates (SupplicantStatus status); 203*4d7e907cSAndroid Build Coastguard Worker}; 204