File indexing completed on 2025-03-16 12:58:26
0001 /* 0002 SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef NETWORKMANAGERQT_UTILS_H 0008 #define NETWORKMANAGERQT_UTILS_H 0009 0010 #include <QHostAddress> 0011 #include <QPair> 0012 0013 #include "wirelessdevice.h" 0014 #include "wirelesssecuritysetting.h" 0015 #include "wirelesssetting.h" 0016 #include <networkmanagerqt/networkmanagerqt_export.h> 0017 0018 namespace NetworkManager 0019 { 0020 enum WirelessSecurityType { 0021 UnknownSecurity = -1, 0022 NoneSecurity, 0023 StaticWep, 0024 DynamicWep, 0025 Leap, 0026 WpaPsk, 0027 WpaEap, 0028 Wpa2Psk, 0029 Wpa2Eap, 0030 SAE, 0031 Wpa3SuiteB192, 0032 }; 0033 0034 /** 0035 * @return QHostAddress representation of an ipv6 address 0036 * @param address byte array containing the binary representation of the address 0037 */ 0038 NETWORKMANAGERQT_EXPORT QHostAddress ipv6AddressAsHostAddress(const QByteArray &address); 0039 0040 /** 0041 * @return binary representation of an ipv6 address 0042 * @param address qhostaddress containing the address 0043 */ 0044 NETWORKMANAGERQT_EXPORT QByteArray ipv6AddressFromHostAddress(const QHostAddress &address); 0045 0046 /** 0047 * @return String representation of a mac address. 0048 * @param ba byte array containing the binary repesentation of the address 0049 */ 0050 NETWORKMANAGERQT_EXPORT QString macAddressAsString(const QByteArray &ba); 0051 0052 /** 0053 * @return binary repesentation of a mac address. 0054 * @param s string representation of the address 0055 */ 0056 NETWORKMANAGERQT_EXPORT QByteArray macAddressFromString(const QString &s); 0057 0058 NETWORKMANAGERQT_EXPORT bool macAddressIsValid(const QString &macAddress); 0059 NETWORKMANAGERQT_EXPORT bool macAddressIsValid(const QByteArray &macAddress); 0060 0061 /** 0062 * @param freq frequency of a wireless network 0063 * @return The frequency channel. 0064 */ 0065 NETWORKMANAGERQT_EXPORT int findChannel(int freq); 0066 0067 NETWORKMANAGERQT_EXPORT NetworkManager::WirelessSetting::FrequencyBand findFrequencyBand(int freq); 0068 0069 NETWORKMANAGERQT_EXPORT bool 0070 deviceSupportsApCiphers(NetworkManager::WirelessDevice::Capabilities, NetworkManager::AccessPoint::WpaFlags ciphers, WirelessSecurityType type); 0071 0072 NETWORKMANAGERQT_EXPORT bool securityIsValid(WirelessSecurityType type, 0073 NetworkManager::WirelessDevice::Capabilities interfaceCaps, 0074 bool haveAp, 0075 bool adHoc, 0076 NetworkManager::AccessPoint::Capabilities apCaps, 0077 NetworkManager::AccessPoint::WpaFlags apWpa, 0078 NetworkManager::AccessPoint::WpaFlags apRsn); 0079 0080 NETWORKMANAGERQT_EXPORT WirelessSecurityType findBestWirelessSecurity(NetworkManager::WirelessDevice::Capabilities, 0081 bool haveAp, 0082 bool adHoc, 0083 NetworkManager::AccessPoint::Capabilities apCaps, 0084 NetworkManager::AccessPoint::WpaFlags apWpa, 0085 NetworkManager::AccessPoint::WpaFlags apRsn); 0086 0087 NETWORKMANAGERQT_EXPORT bool wepKeyIsValid(const QString &key, NetworkManager::WirelessSecuritySetting::WepKeyType type); 0088 0089 NETWORKMANAGERQT_EXPORT bool wpaPskIsValid(const QString &psk); 0090 0091 NETWORKMANAGERQT_EXPORT WirelessSecurityType securityTypeFromConnectionSetting(const NetworkManager::ConnectionSettings::Ptr &settings); 0092 0093 NETWORKMANAGERQT_EXPORT QList<QPair<int, int>> getBFreqs(); 0094 NETWORKMANAGERQT_EXPORT QList<QPair<int, int>> getAFreqs(); 0095 0096 NETWORKMANAGERQT_EXPORT QDateTime clockBootTimeToDateTime(qlonglong clockBootime); 0097 } 0098 0099 #endif // NETWORKMANAGERQT_UTILS_H