1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_WIFI_NATIVE_STRUCT_H 17 #define OHOS_WIFI_NATIVE_STRUCT_H 18 19 #include <string> 20 #include <vector> 21 #include "wifi_native_define.h" 22 23 namespace OHOS { 24 namespace Wifi { 25 struct WifiHalEapConfig { 26 std::string eap; /* EAP authentication mode:PEAP/TLS/TTLS/PWD/SIM/AKA/AKA' */ 27 int phase2Method; /* Second stage authentication method */ 28 std::string identity; /* Identity information */ 29 std::string anonymousIdentity; /* Anonymous identity information */ 30 char password[HAL_PASSWORD_LEN]; /* EAP mode password */ 31 32 std::string caCertPath; /* CA certificate path */ 33 std::string caCertAlias; /* CA certificate alias */ 34 std::vector<uint8_t> certEntry; /* CA certificate entry */ 35 36 std::string clientCert; /* Client certificate */ 37 char certPassword[HAL_PASSWORD_LEN]; /* Certificate password */ 38 std::string privateKey; /* Client certificate private key */ 39 40 std::string altSubjectMatch; /* Alternative topic matching */ 41 std::string domainSuffixMatch; /* Domain suffix matching */ 42 std::string realm; /* The field of passport credentials */ 43 std::string plmn; /* PLMN */ 44 int eapSubId; /* Sub ID of SIM card */ WifiHalEapConfigWifiHalEapConfig45 WifiHalEapConfig() : phase2Method(0), password{0}, certPassword{0}, eapSubId(-1) 46 {} 47 ~WifiHalEapConfigWifiHalEapConfig48 ~WifiHalEapConfig() 49 {} 50 }; 51 52 struct WifiHalDeviceConfig { 53 int networkId; 54 int priority; 55 int scanSsid; 56 int authAlgorithms; /* WifiDeviceConfig.allowedAuthAlgorithms */ 57 int wepKeyIdx; 58 std::string wepKeys[HAL_MAX_WEPKEYS_SIZE]; /* max set 4 wepkeys */ 59 std::string ssid; 60 std::string psk; 61 std::string keyMgmt; 62 WifiHalEapConfig eapConfig; 63 std::string bssid; 64 bool isRequirePmf; 65 int allowedProtocols; 66 int allowedPairwiseCiphers; 67 int allowedGroupCiphers; 68 int allowedGroupMgmtCiphers; 69 int wapiPskType; 70 std::string wapiAsCertData; 71 std::string wapiUserCertData; WifiHalDeviceConfigWifiHalDeviceConfig72 WifiHalDeviceConfig() : networkId(-1), priority(-1), scanSsid(-1), authAlgorithms(-1), wepKeyIdx(-1), 73 isRequirePmf(false), allowedProtocols(-1), allowedPairwiseCiphers(-1), 74 allowedGroupCiphers(-1), allowedGroupMgmtCiphers(-1), wapiPskType(-1) 75 {} 76 ~WifiHalDeviceConfigWifiHalDeviceConfig77 ~WifiHalDeviceConfig() 78 {} 79 }; 80 81 struct WifiHalGetDeviceConfig { 82 int networkId; 83 std::string param; 84 std::string value; 85 WifiHalGetDeviceConfigWifiHalGetDeviceConfig86 WifiHalGetDeviceConfig() : networkId(-1) 87 {} 88 ~WifiHalGetDeviceConfigWifiHalGetDeviceConfig89 ~WifiHalGetDeviceConfig() 90 {} 91 }; 92 93 struct WifiHalWpsConfig { 94 int anyFlag; 95 int multiAp; 96 std::string bssid; 97 std::string pinCode; 98 WifiHalWpsConfigWifiHalWpsConfig99 WifiHalWpsConfig() : anyFlag(-1), multiAp(-1) 100 {} 101 ~WifiHalWpsConfigWifiHalWpsConfig102 ~WifiHalWpsConfig() 103 {} 104 }; 105 106 struct WifiHalWpaSignalInfo { 107 int signal; 108 int txrate; 109 int rxrate; 110 int noise; 111 int frequency; 112 int txPackets; 113 int rxPackets; 114 int snr; 115 int chload; 116 int ulDelay; 117 int txBytes; 118 int rxBytes; 119 int txFailed; 120 int chloadSelf; 121 int c0Rssi; 122 int c1Rssi; 123 WifiHalWpaSignalInfoWifiHalWpaSignalInfo124 WifiHalWpaSignalInfo() : signal(0), txrate(0), rxrate(0), noise(0), frequency(0), 125 txPackets(0), rxPackets(0), snr(0), chload(0), ulDelay(0), txBytes(0), rxBytes(0), 126 txFailed(0), chloadSelf(0), c0Rssi(0), c1Rssi(0) 127 {} 128 ~WifiHalWpaSignalInfoWifiHalWpaSignalInfo129 ~WifiHalWpaSignalInfo() 130 {} 131 }; 132 133 struct WifiHalRoamCapability { 134 int maxBlocklistSize; 135 int maxTrustlistSize; 136 WifiHalRoamCapabilityWifiHalRoamCapability137 WifiHalRoamCapability() : maxBlocklistSize(0), maxTrustlistSize(0) 138 {} 139 ~WifiHalRoamCapabilityWifiHalRoamCapability140 ~WifiHalRoamCapability() 141 {} 142 }; 143 144 struct WifiHalRoamConfig { 145 std::vector<std::string> blocklistBssids; 146 std::vector<std::string> trustlistBssids; 147 }; 148 149 struct WifiHalWpaNetworkInfo { 150 int id; 151 std::string ssid; 152 std::string bssid; 153 std::string flag; 154 WifiHalWpaNetworkInfoWifiHalWpaNetworkInfo155 WifiHalWpaNetworkInfo() : id(0) 156 {} 157 ~WifiHalWpaNetworkInfoWifiHalWpaNetworkInfo158 ~WifiHalWpaNetworkInfo() 159 {} 160 }; 161 162 struct HalP2pDeviceFound { 163 std::string srcAddress; 164 std::string p2pDeviceAddress; 165 std::string primaryDeviceType; 166 std::string deviceName; 167 int configMethods; 168 int deviceCapabilities; 169 int groupCapabilities; 170 std::vector<char> wfdDeviceInfo; 171 HalP2pDeviceFoundHalP2pDeviceFound172 HalP2pDeviceFound() : configMethods(0), deviceCapabilities(0), groupCapabilities(0) 173 {} 174 ~HalP2pDeviceFoundHalP2pDeviceFound175 ~HalP2pDeviceFound() 176 {} 177 }; 178 179 struct HalP2pInvitationInfo { 180 int type; /* 0:Received, 1:Accepted */ 181 int persistentNetworkId; 182 int operatingFrequency; 183 std::string srcAddress; 184 std::string goDeviceAddress; 185 std::string bssid; 186 HalP2pInvitationInfoHalP2pInvitationInfo187 HalP2pInvitationInfo() : type(0), persistentNetworkId(0), operatingFrequency(0) 188 {} 189 ~HalP2pInvitationInfoHalP2pInvitationInfo190 ~HalP2pInvitationInfo() 191 {} 192 }; 193 194 struct HalP2pGroupInfo { 195 int isGo; 196 int isPersistent; 197 int frequency; 198 std::string groupName; 199 std::string ssid; 200 std::string psk; 201 std::string passphrase; 202 std::string goDeviceAddress; 203 std::string goRandomAddress; 204 HalP2pGroupInfoHalP2pGroupInfo205 HalP2pGroupInfo() : isGo(0), isPersistent(0), frequency(0) 206 {} 207 ~HalP2pGroupInfoHalP2pGroupInfo208 ~HalP2pGroupInfo() 209 {} 210 }; 211 212 struct HalP2pServDiscReqInfo { 213 int freq; 214 int dialogToken; 215 int updateIndic; 216 std::string mac; 217 std::vector<unsigned char> tlvList; 218 HalP2pServDiscReqInfoHalP2pServDiscReqInfo219 HalP2pServDiscReqInfo() : freq(0), dialogToken(0), updateIndic(0) 220 {} 221 ~HalP2pServDiscReqInfoHalP2pServDiscReqInfo222 ~HalP2pServDiscReqInfo() 223 {} 224 }; 225 226 struct HalP2pGroupConfig { 227 std::string ssid; 228 std::string bssid; 229 std::string psk; 230 std::string proto; 231 std::string keyMgmt; 232 std::string pairwise; 233 std::string authAlg; 234 int mode; 235 int disabled; 236 HalP2pGroupConfigHalP2pGroupConfig237 HalP2pGroupConfig() 238 : bssid("00:00:00:00:00:00"), 239 proto("RSN"), 240 keyMgmt("WPA-PSK"), 241 pairwise("CCMP"), 242 authAlg("OPEN"), 243 mode(0), 244 disabled(0) 245 {} 246 ~HalP2pGroupConfigHalP2pGroupConfig247 ~HalP2pGroupConfig() 248 {} 249 }; 250 251 struct WifiHalScanParam { 252 std::vector<std::string> hiddenNetworkSsid; /* Hiding Network SSIDs */ 253 std::vector<int> scanFreqs; /* Scan frequency */ 254 int scanStyle; WifiHalScanParamWifiHalScanParam255 WifiHalScanParam() 256 { 257 scanStyle = 0; 258 } 259 }; 260 261 struct WifiHalPnoScanParam { 262 int scanInterval; /* PNO Scan Interval */ 263 std::vector<int> scanFreqs; /* Scanning frequency */ 264 std::vector<std::string> hiddenSsid; /* Network name of hidden network */ 265 std::vector<std::string> savedSsid; /* Network name of saved network */ 266 int minRssi2Dot4Ghz; /* Minimum 2.4 GHz network signal strength */ 267 int minRssi5Ghz; /* Minimum 5 GHz network signal strength */ 268 WifiHalPnoScanParamWifiHalPnoScanParam269 WifiHalPnoScanParam() 270 { 271 scanFreqs.clear(); 272 hiddenSsid.clear(); 273 savedSsid.clear(); 274 275 scanInterval = 0; 276 minRssi2Dot4Ghz = 0; 277 minRssi5Ghz = 0; 278 } 279 ~WifiHalPnoScanParamWifiHalPnoScanParam280 ~WifiHalPnoScanParam() 281 { 282 scanFreqs.clear(); 283 hiddenSsid.clear(); 284 savedSsid.clear(); 285 } 286 }; 287 288 struct WifiHalApConnectionNofify { 289 int type; 290 std::string mac; 291 WifiHalApConnectionNofifyWifiHalApConnectionNofify292 WifiHalApConnectionNofify() : type(0) 293 {} 294 ~WifiHalApConnectionNofifyWifiHalApConnectionNofify295 ~WifiHalApConnectionNofify() 296 {} 297 }; 298 299 } // namespace Wifi 300 } // namespace OHOS 301 #endif