File indexing completed on 2024-04-21 04:00:14

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