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