2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Runtime.InteropServices;
19 using Tizen.Network.WiFi;
20 using Tizen.Network.Connection;
22 internal static partial class Interop
24 internal static partial class WiFi
26 //Callback for async method
27 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
28 internal delegate void VoidCallback(int result, IntPtr userData);
29 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
30 internal delegate bool HandleCallback(IntPtr handle, IntPtr userData);
33 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
34 internal delegate void DeviceStateChangedCallback(int deviceState, IntPtr userData);
35 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
36 internal delegate void ConnectionStateChangedCallback(int connectionState, IntPtr ap, IntPtr userData);
37 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
38 internal delegate void RssiLevelChangedCallback(int level, IntPtr userData);
40 //capi-network-wifi-1.0.65-19.23.armv7l
41 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_initialize_cs")]
42 internal static extern int Initialize(int tid, out SafeWiFiManagerHandle wifi);
43 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_deinitialize_cs")]
44 internal static extern int Deinitialize(int tid, IntPtr wifi);
47 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_activate")]
48 internal static extern int Activate(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
49 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_activate_with_wifi_picker_tested")]
50 internal static extern int ActivateWithWiFiPickerTested(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
51 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_deactivate")]
52 internal static extern int Deactivate(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
53 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_is_activated")]
54 internal static extern int IsActive(SafeWiFiManagerHandle wifi, out bool activated);
55 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_mac_address")]
56 internal static extern int GetMacAddress(SafeWiFiManagerHandle wifi, out string macAddress);
57 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_network_interface_name")]
58 internal static extern int GetNetworkInterfaceName(SafeWiFiManagerHandle wifi, out string interfaceName);
59 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_scan")]
60 internal static extern int Scan(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
61 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_scan_specific_ap")]
62 internal static extern int ScanSpecificAP(SafeWiFiManagerHandle wifi, string essid, VoidCallback callback, IntPtr userData);
63 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_bssid_scan")]
64 internal static extern int BssidScan(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
65 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_connected_ap")]
66 internal static extern int GetConnectedAP(SafeWiFiManagerHandle wifi, out IntPtr ap);
67 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_ap")]
68 internal static extern int GetForeachFoundAPs(SafeWiFiManagerHandle wifi, HandleCallback callback, IntPtr userData);
69 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_specific_ap")]
70 internal static extern int GetForeachFoundSpecificAPs(SafeWiFiManagerHandle wifi, HandleCallback callback, IntPtr userData);
71 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_bssid_ap")]
72 internal static extern int GetForeachFoundBssids(SafeWiFiManagerHandle wifi, HandleCallback callback, IntPtr userData);
73 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect")]
74 internal static extern int Connect(SafeWiFiManagerHandle wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
75 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_disconnect")]
76 internal static extern int Disconnect(SafeWiFiManagerHandle wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
77 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pbc")]
78 internal static extern int ConnectByWpsPbc(SafeWiFiManagerHandle wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
79 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pin")]
80 internal static extern int ConnectByWpsPin(SafeWiFiManagerHandle wifi, IntPtr ap, string pin, VoidCallback callback, IntPtr userData);
81 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pbc_without_ssid")]
82 internal static extern int ConnectByWpsPbcWithoutSsid(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
83 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pin_without_ssid")]
84 internal static extern int ConnectByWpsPinWithoutSsid(SafeWiFiManagerHandle wifi, string pin, VoidCallback callback, IntPtr userData);
85 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_cancel_wps")]
86 internal static extern int CancelWps(SafeWiFiManagerHandle wifi);
87 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_forget_ap")]
88 internal static extern int RemoveAP(SafeWiFiManagerHandle wifi, IntPtr ap);
89 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_update_ap")]
90 internal static extern int UpdateAP(SafeWiFiManagerHandle wifi, IntPtr ap);
93 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_connection_state")]
94 internal static extern int GetConnectionState(SafeWiFiManagerHandle wifi, out int connectionState);
95 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_device_state_changed_cb")]
96 internal static extern int SetDeviceStateChangedCallback(SafeWiFiManagerHandle wifi, DeviceStateChangedCallback callback, IntPtr userData);
97 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_device_state_changed_cb")]
98 internal static extern int UnsetDeviceStateChangedCallback(SafeWiFiManagerHandle wifi);
99 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_background_scan_cb")]
100 internal static extern int SetBackgroundScanCallback(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
101 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_background_scan_cb")]
102 internal static extern int UnsetBackgroundScanCallback(SafeWiFiManagerHandle wifi);
103 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_connection_state_changed_cb")]
104 internal static extern int SetConnectionStateChangedCallback(SafeWiFiManagerHandle wifi, ConnectionStateChangedCallback callback, IntPtr userData);
105 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_connection_state_changed_cb")]
106 internal static extern int UnsetConnectionStateChangedCallback(SafeWiFiManagerHandle wifi);
107 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_rssi_level_changed_cb")]
108 internal static extern int SetRssiLevelchangedCallback(SafeWiFiManagerHandle wifi, RssiLevelChangedCallback callback, IntPtr userData);
109 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_rssi_level_changed_cb")]
110 internal static extern int UnsetRssiLevelchangedCallback(SafeWiFiManagerHandle wifi);
112 internal static class AP
114 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
115 internal delegate bool FoundBssidCallback(string bssid, int rssi, int freq, IntPtr userData);
117 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_create")]
118 internal static extern int Create(SafeWiFiManagerHandle wifi, string essid, out IntPtr ap);
119 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_hidden_create")]
120 internal static extern int CreateHiddenAP(SafeWiFiManagerHandle wifi, string essid, out IntPtr ap);
121 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_destroy")]
122 internal static extern int Destroy(IntPtr ap);
123 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_clone")]
124 internal static extern int Clone(out IntPtr cloned, IntPtr original);
125 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_refresh")]
126 internal static extern int Refresh(IntPtr ap);
128 ////Network Information
129 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_essid")]
130 internal static extern int GetEssid(SafeWiFiAPHandle ap, out IntPtr essid);
131 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_raw_essid")]
132 internal static extern int GetRawSsid(SafeWiFiAPHandle ap, out IntPtr raw_ssid, out int length);
133 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_bssid")]
134 internal static extern int GetBssid(SafeWiFiAPHandle ap, out IntPtr bssid);
135 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_bssid")]
136 internal static extern int GetBssids(SafeWiFiAPHandle ap, FoundBssidCallback callback, IntPtr userData);
137 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_rssi")]
138 internal static extern int GetRssi(SafeWiFiAPHandle ap, out int rssi);
139 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_rssi_level")]
140 internal static extern int GetRssiLevel(SafeWiFiAPHandle ap, out int rssi_level);
141 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_frequency")]
142 internal static extern int GetFrequency(SafeWiFiAPHandle ap, out int frequency);
143 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_max_speed")]
144 internal static extern int GetMaxSpeed(SafeWiFiAPHandle ap, out int maxSpeed);
145 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_favorite")]
146 internal static extern int IsFavorite(SafeWiFiAPHandle ap, out bool isFavorite);
147 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_passpoint")]
148 internal static extern int IsPasspoint(SafeWiFiAPHandle ap, out bool isPasspoint);
149 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_connection_state")]
150 internal static extern int GetConnectionState(SafeWiFiAPHandle ap, out int connectionState);
151 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_ip_config_type")]
152 internal static extern int GetIPConfigType(SafeWiFiAPHandle ap, int addressFamily, out int ipConfigType);
153 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_ip_config_type")]
154 internal static extern int SetIPConfigType(SafeWiFiAPHandle ap, int addressFamily, int ipConfigType);
155 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_ip_address")]
156 internal static extern int GetIPAddress(SafeWiFiAPHandle ap, int addressFamily, out IntPtr ipAddress);
157 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_foreach_ipv6_address")]
158 internal static extern int GetAllIPv6Addresses(SafeWiFiAPHandle ap, HandleCallback callback, IntPtr userData);
159 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_countrycode")]
160 internal static extern int GetCountryCode(SafeWiFiAPHandle ap, out IntPtr code);
161 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_ip_address")]
162 internal static extern int SetIPAddress(SafeWiFiAPHandle ap, int addressFamily, string ipAddress);
163 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_subnet_mask")]
164 internal static extern int GetSubnetMask(SafeWiFiAPHandle ap, int addressFamily, out IntPtr subnetMask);
165 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_subnet_mask")]
166 internal static extern int SetSubnetMask(SafeWiFiAPHandle ap, int addressFamily, string subnetMask);
167 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_gateway_address")]
168 internal static extern int GetGatewayAddress(SafeWiFiAPHandle ap, int addressFamily, out IntPtr gatewayAddress);
169 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_gateway_address")]
170 internal static extern int SetGatewayAddress(SafeWiFiAPHandle ap, int addressFamily, string gatewayAddress);
171 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_dhcp_server_address")]
172 internal static extern int GetDhcpServerAddress(SafeWiFiAPHandle ap, AddressFamily addressFamily, out string dhcpServer);
173 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_proxy_address")]
174 internal static extern int GetProxyAddress(SafeWiFiAPHandle ap, int addressFamily, out IntPtr proxyAddress);
175 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_proxy_address")]
176 internal static extern int SetProxyAddress(SafeWiFiAPHandle ap, int addressFamily, string proxyAddress);
177 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_proxy_type")]
178 internal static extern int GetProxyType(SafeWiFiAPHandle ap, out int proxyType);
179 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_proxy_type")]
180 internal static extern int SetProxyType(SafeWiFiAPHandle ap, int proxyType);
181 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_dns_address")]
182 internal static extern int GetDnsAddress(SafeWiFiAPHandle ap, int order, int addressFamily, out IntPtr dnsAddress);
183 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_dns_address")]
184 internal static extern int SetDnsAddress(SafeWiFiAPHandle ap, int order, int addressFamily, string dnsAddress);
185 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_prefix_length")]
186 internal static extern int GetPrefixLength(SafeWiFiAPHandle ap, int addressFamily, out int length);
187 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_prefix_length")]
188 internal static extern int SetPrefixLength(SafeWiFiAPHandle ap, int addressFamily, int length);
189 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_dns_config_type")]
190 internal static extern int GetDnsConfigType(SafeWiFiAPHandle ap, int addressFamily, out int type);
191 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_dns_config_type")]
192 internal static extern int SetDnsConfigType(SafeWiFiAPHandle ap, int addressFamily, int type);
194 ////Security Information
195 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_security_type")]
196 internal static extern int GetSecurityType(SafeWiFiAPHandle ap, out int securityType);
197 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_security_type")]
198 internal static extern int SetSecurityType(SafeWiFiAPHandle ap, int securityType);
199 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_encryption_type")]
200 internal static extern int GetEncryptionType(SafeWiFiAPHandle ap, out int encryptionType);
201 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_encryption_type")]
202 internal static extern int SetEncryptionType(SafeWiFiAPHandle ap, int encryptionType);
203 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_passphrase_required")]
204 internal static extern int IsPassphraseRequired(SafeWiFiAPHandle ap, out bool required);
205 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_passphrase")]
206 internal static extern int SetPassphrase(SafeWiFiAPHandle ap, string passphrase);
207 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_wps_supported")]
208 internal static extern int IsWpsSupported(SafeWiFiAPHandle ap, out bool supported);
211 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_passphrase")]
212 internal static extern int SetEapPassphrase(SafeWiFiAPHandle ap, string userName, string password);
213 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_passphrase")]
214 internal static extern int GetEapPassphrase(SafeWiFiAPHandle ap, out IntPtr userName, out bool isPasswordSet);
215 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_ca_cert_file")]
216 internal static extern int GetEapCaCertFile(SafeWiFiAPHandle ap, out IntPtr file);
217 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_ca_cert_file")]
218 internal static extern int SetEapCaCertFile(SafeWiFiAPHandle ap, string file);
219 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_client_cert_file")]
220 internal static extern int GetEapClientCertFile(SafeWiFiAPHandle ap, out IntPtr file);
221 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_client_cert_file")]
222 internal static extern int SetEapClientCertFile(SafeWiFiAPHandle ap, string file);
223 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_private_key_file")]
224 internal static extern int GetEapPrivateKeyFile(SafeWiFiAPHandle ap, out IntPtr file);
225 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_private_key_info")]
226 internal static extern int SetEapPrivateKeyFile(SafeWiFiAPHandle ap, string file, string password);
227 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_type")]
228 internal static extern int GetEapType(SafeWiFiAPHandle ap, out int eapType);
229 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_type")]
230 internal static extern int SetEapType(SafeWiFiAPHandle ap, int eapType);
231 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_auth_type")]
232 internal static extern int GetEapAuthType(SafeWiFiAPHandle ap, out int file);
233 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_auth_type")]
234 internal static extern int SetEapAuthType(SafeWiFiAPHandle ap, int file);
237 internal static class Config
239 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_create")]
240 internal static extern int Create(SafeWiFiManagerHandle wifi, string name, string passPhrase, int securityType, out IntPtr config);
241 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_clone")]
242 internal static extern int Clone(IntPtr origin, out IntPtr cloned);
243 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_destroy")]
244 internal static extern int Destroy(IntPtr config);
245 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_save")]
246 internal static extern int SaveConfiguration(SafeWiFiManagerHandle wifi, IntPtr config);
247 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_foreach_configuration")]
248 internal static extern int GetForeachConfiguration(SafeWiFiManagerHandle wifi, HandleCallback callback, IntPtr userData);
249 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_name")]
250 internal static extern int GetName(IntPtr config, out IntPtr name);
251 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_security_type")]
252 internal static extern int GetSecurityType(IntPtr config, out int securityType);
253 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_proxy_address")]
254 internal static extern int SetProxyAddress(IntPtr config, int addressFamily, string proxyAddress);
255 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_proxy_address")]
256 internal static extern int GetProxyAddress(IntPtr config, out int addressFamily, out IntPtr proxyAddress);
257 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_hidden_ap_property")]
258 internal static extern int SetHiddenAPProperty(IntPtr config, bool isHidden);
259 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_hidden_ap_property")]
260 internal static extern int GetHiddenAPProperty(IntPtr config, out bool isHidden);
261 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_anonymous_identity")]
262 internal static extern int GetEapAnonymousIdentity(SafeWiFiConfigHandle config, out IntPtr anonymousIdentify);
263 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_anonymous_identity")]
264 internal static extern int SetEapAnonymousIdentity(SafeWiFiConfigHandle config, string anonymousIdentify);
265 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_ca_cert_file")]
266 internal static extern int GetEapCaCertFile(SafeWiFiConfigHandle config, out IntPtr caCert);
267 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_ca_cert_file")]
268 internal static extern int SetEapCaCertFile(SafeWiFiConfigHandle config, string caCert);
269 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_client_cert_file")]
270 internal static extern int GetEapClientCertFile(SafeWiFiConfigHandle config, out IntPtr clientCert);
271 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_client_cert_file")]
272 internal static extern int SetEapClientCertFile(SafeWiFiConfigHandle config, string privateKey, string clientCert);
273 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_identity")]
274 internal static extern int GetEapIdentity(SafeWiFiConfigHandle config, out IntPtr identify);
275 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_identity")]
276 internal static extern int SetEapIdentity(SafeWiFiConfigHandle config, string identify);
277 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_type")]
278 internal static extern int GetEapType(SafeWiFiConfigHandle config, out int eapType);
279 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_type")]
280 internal static extern int SetEapType(SafeWiFiConfigHandle config, int eapType);
281 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_auth_type")]
282 internal static extern int GetEapAuthType(SafeWiFiConfigHandle config, out int eapAuthType);
283 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_auth_type")]
284 internal static extern int SetEapAuthType(SafeWiFiConfigHandle config, int eapAuthType);
285 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_subject_match")]
286 internal static extern int GetEapSubjectMatch(SafeWiFiConfigHandle config, out IntPtr subjectMatch);
287 [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_subject_match")]
288 internal static extern int SetEapSubjectMatch(SafeWiFiConfigHandle config, string subjectMatch);
291 internal sealed class SafeWiFiAPHandle : SafeHandle
293 public SafeWiFiAPHandle() : base(IntPtr.Zero, true)
297 public SafeWiFiAPHandle(IntPtr handle) : base(handle, true)
301 public override bool IsInvalid
305 return this.handle == IntPtr.Zero;
309 protected override bool ReleaseHandle()
311 this.SetHandle(IntPtr.Zero);
316 internal sealed class SafeWiFiConfigHandle : SafeHandle
318 public SafeWiFiConfigHandle() : base(IntPtr.Zero, true)
322 public SafeWiFiConfigHandle(IntPtr handle) : base(handle, true)
326 public override bool IsInvalid
330 return this.handle == IntPtr.Zero;
334 protected override bool ReleaseHandle()
336 WiFi.Config.Destroy(this.handle);
337 this.SetHandle(IntPtr.Zero);
344 internal static partial class Libc
346 [DllImport(Libraries.Libc, EntryPoint = "free")]
347 public static extern void Free(IntPtr userData);