summaryrefslogtreecommitdiffstats
path: root/knetworkmanager-0.9/src/knetworkmanager-connection_setting_wireless_security.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'knetworkmanager-0.9/src/knetworkmanager-connection_setting_wireless_security.cpp')
-rw-r--r--knetworkmanager-0.9/src/knetworkmanager-connection_setting_wireless_security.cpp451
1 files changed, 0 insertions, 451 deletions
diff --git a/knetworkmanager-0.9/src/knetworkmanager-connection_setting_wireless_security.cpp b/knetworkmanager-0.9/src/knetworkmanager-connection_setting_wireless_security.cpp
deleted file mode 100644
index a01f8f6..0000000
--- a/knetworkmanager-0.9/src/knetworkmanager-connection_setting_wireless_security.cpp
+++ /dev/null
@@ -1,451 +0,0 @@
-/**************************************************************************
- *
- * knetworkmanager-connection_setting_wireless_security.cpp - A NetworkManager frontend for KDE
- *
- * Copyright (C) 2005, 2006 Novell, Inc.
- *
- * Author: Helmut Schaa <[email protected]>, <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- **************************************************************************/
-
-/* qt headers */
-#include <tqhostaddress.h>
-#include <tqvariant.h>
-
-/* kde headers */
-#include <kdebug.h>
-#include <klocale.h>
-
-/* TQT_DBus headers*/
-#include <tqdbusdata.h>
-#include <tqdbusdatamap.h>
-
-/* knetworkmanager headers */
-#include "knetworkmanager.h"
-#include "knetworkmanager-connection_setting_wireless_security.h"
-#include "knetworkmanager-accesspoint.h"
-#include "knetworkmanager-connection_setting_wireless.h"
-#include "knetworkmanager-connection.h"
-#include "sha1.h"
-#include "md5.h"
-
-
-using namespace ConnectionSettings;
-
-/*
- class WirelessSecurity
-*/
-WirelessSecurity::WirelessSecurity(Connection* conn)
- : ConnectionSetting(conn, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME)
- , _keyMgmt(KEY_MGMT_NONE)
- , _wepTxKeyidx(0)
- , _authAlg(AUTH_ALG_NONE)
- , _proto(PROTO_NONE)
- , _pairwise(CIPHER_TKIP | CIPHER_CCMP)
- , _group(CIPHER_TKIP | CIPHER_CCMP)
-{
- // init key_mgmt map
- _keyMgmtMap[KEY_MGMT_NONE] = "none";
- _keyMgmtMap[KEY_MGMT_WPA_PSK] = "wpa-psk";
- _keyMgmtMap[KEY_MGMT_WPA_EAP] = "wpa-eap";
- _keyMgmtMap[KEY_MGMT_IEEE8021X] = "ieee8021x";
-
- // init auth_alg map
- _authAlgMap[AUTH_ALG_NONE] = TQString(); // do not include auth alg if none is needed
- _authAlgMap[AUTH_ALG_OPEN] = "open";
- _authAlgMap[AUTH_ALG_SHARED] = "shared";
- _authAlgMap[AUTH_ALG_LEAP] = "leap";
-
- // proto map
- _protoMap[PROTO_WPA] = "wpa";
- _protoMap[PROTO_RSN] = "rsn"; // Info: rsn is wpa2
-
- // cipher map
- _cipherMap[CIPHER_TKIP] = "tkip";
- _cipherMap[CIPHER_CCMP] = "ccmp";
- _cipherMap[CIPHER_WEP40] = "wep40";
- _cipherMap[CIPHER_WEP104] = "wep104";
-
-}
-
-bool WirelessSecurity::getEnabled() const
-{
- Connection* conn = getConnection();
- if (conn)
- {
- Wireless* wireless = dynamic_cast<Wireless*>(conn->getSetting(NM_SETTING_WIRELESS_SETTING_NAME));
- if (wireless && wireless->getSecurity() != getType())
- {
- kdDebug() << "WirelessSecurity::getEnabled false " << wireless->getSecurity().ascii() << endl;
- return false;
- }
- }
- return true;
-}
-
-int
-WirelessSecurity::getWepTxidx(void) const
-{
- return _wepTxKeyidx;
-}
-
-void
-WirelessSecurity::setWepTxidx(int idx)
-{
- if (idx >= 0 && idx < 4)
- _wepTxKeyidx = idx;
-}
-
-void
-WirelessSecurity::setWepKey(int idx, TQString key)
-{
- kdDebug() << "WirelessSecurity::setWepKey " << idx << " " << key.ascii() << endl;
- if (idx >= 0 && idx < 4)
- _wepKey[idx] = key;
-}
-
-TQString
-WirelessSecurity::getWepKey(int idx) const
-{
- if (idx >= 0 && idx < 4)
- return _wepKey[idx];
- return TQString();
-}
-
-uint32_t
-WirelessSecurity::getGroupCiphers(void) const
-{
- return _group;
-}
-
-void
-WirelessSecurity::setGroupCiphers(uint32_t ciphers)
-{
- _group= ciphers & (CIPHER_TKIP | CIPHER_CCMP | CIPHER_WEP40 | CIPHER_WEP104);
-}
-
-uint32_t
-WirelessSecurity::getPairwiseCiphers(void) const
-{
- return _pairwise;
-}
-
-void
-WirelessSecurity::setPairwiseCiphers(uint32_t ciphers)
-{
- // only tkip and ccmp allowed
- _pairwise = ciphers & (CIPHER_TKIP | CIPHER_CCMP);
-}
-
-uint32_t
-WirelessSecurity::getProto(void) const
-{
- return _proto;
-}
-
-void
-WirelessSecurity::setProto(uint32_t proto)
-{
- _proto = proto & (PROTO_WPA | PROTO_RSN);
-}
-
-void
-WirelessSecurity::addProto(uint32_t proto)
-{
- setProto(_proto | proto);
-}
-
-void
-WirelessSecurity::delProto(uint32_t proto)
-{
- setProto(_proto & ~proto);
-}
-
-TQString
-WirelessSecurity::getPSK(void) const
-{
- return _psk;
-}
-
-void
-WirelessSecurity::setPSK(const TQString& psk)
-{
- _psk = psk;
-}
-
-TQString
-WirelessSecurity::getLeapPassword(void) const
-{
- return _leapPassword;
-}
-
-void
-WirelessSecurity::setLeapPassword(const TQString& p)
-{
- _leapPassword = p;
-}
-
-TQString
-WirelessSecurity::getLeapUsername(void) const
-{
- return _leapUsername;
-}
-
-void
-WirelessSecurity::setLeapUsername(const TQString& u)
-{
- _leapUsername = u;
-}
-
-WirelessSecurity::KEY_MGMT
-WirelessSecurity::getKeyMgmt(void) const
-{
- return _keyMgmt;
-}
-
-void
-WirelessSecurity::setKeyMgmt(KEY_MGMT keyMgmt)
-{
- _keyMgmt = keyMgmt;
-}
-
-WirelessSecurity::AUTH_ALG
-WirelessSecurity::getAuthAlg(void) const
-{
- return _authAlg;
-}
-
-void
-WirelessSecurity::setAuthAlg(AUTH_ALG authAlg)
-{
- _authAlg = authAlg;
-}
-
-SettingsMap
-WirelessSecurity::toMap() const
-{
- SettingsMap map;
-
- // KEY MGMT
- map.insert(NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, TQT_DBusData::fromString(_keyMgmtMap[_keyMgmt]));
-
- // WEP TX KEYIDX is only needed if WEP is used
- if (_keyMgmt == KEY_MGMT_NONE && _wepTxKeyidx >= 0 && _wepTxKeyidx <= 3)
- {
- // WEP TX KEYIDX
- map.insert(NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, TQT_DBusData::fromInt32(_wepTxKeyidx));
- }
-
- // AUTH ALG
- if (_authAlg != AUTH_ALG_NONE)
- map.insert(NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, TQT_DBusData::fromString(_authAlgMap[_authAlg]));
-
- // PROTO is only needed for WPA connections
- if (_proto != PROTO_NONE && (_keyMgmt == KEY_MGMT_WPA_NONE || _keyMgmt == KEY_MGMT_WPA_PSK || _keyMgmt == KEY_MGMT_WPA_EAP))
- {
- TQValueList<TQT_DBusData> protos;
- for (TQMap<PROTO, TQString>::ConstIterator it = _protoMap.begin(); it != _protoMap.end(); ++it)
- if (_proto & it.key())
- protos.append(TQT_DBusData::fromString(it.data()));
- if (protos.size() > 0)
- map.insert(NM_SETTING_WIRELESS_SECURITY_PROTO, TQT_DBusData::fromTQValueList(protos));
- }
-
- // groupcipher
- if (_group != CIPHER_NONE)
- {
- TQValueList<TQT_DBusData> ciphers;
- for (TQMap<CIPHERS, TQString>::ConstIterator it = _cipherMap.begin(); it != _cipherMap.end(); ++it)
- if (_group & it.key())
- ciphers.append(TQT_DBusData::fromString(it.data()));
-
- if (ciphers.size() > 0)
- map.insert(NM_SETTING_WIRELESS_SECURITY_GROUP, TQT_DBusData::fromTQValueList(ciphers));
- }
-
- // pairwise cipher
- if (_pairwise != CIPHER_NONE)
- {
- TQValueList<TQT_DBusData> ciphers;
-
- for (TQMap<CIPHERS, TQString>::ConstIterator it = _cipherMap.begin(); it != _cipherMap.end(); ++it)
- if (_pairwise & it.key())
- ciphers.append(TQT_DBusData::fromString(it.data()));
-
- if (ciphers.size() > 0)
- map.insert(NM_SETTING_WIRELESS_SECURITY_PAIRWISE, TQT_DBusData::fromTQValueList(ciphers));
- }
-
- if (!_leapUsername.isEmpty())
- map.insert(NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, TQT_DBusData::fromString(_leapUsername));
-
- return map;
-}
-
-void
-WirelessSecurity::fromMap(const SettingsMap& map)
-{
- kdDebug() << "WirelessSecurity::fromMap" << endl;
-
- for (SettingsMap::ConstIterator it = map.begin(); it != map.end(); ++it)
- {
- if (it.key() == NM_SETTING_WIRELESS_SECURITY_KEY_MGMT)
- {
- TQBiDirectionalMap<KEY_MGMT, TQString>::Iterator it2;
- if (_keyMgmtMap.end() != (it2 = _keyMgmtMap.findData(it.data().toString())))
- setKeyMgmt(it2.key());
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX)
- {
- _wepTxKeyidx = it.data().toInt32();
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_AUTH_ALG)
- {
- TQBiDirectionalMap<AUTH_ALG, TQString>::Iterator it2;
- if (_authAlgMap.end() != (it2 = _authAlgMap.findData(it.data().toString())))
- setAuthAlg(it2.key());
- }
- else if(it.key() == NM_SETTING_WIRELESS_SECURITY_PROTO)
- {
- TQValueList<TQT_DBusData> proto_list = it.data().toTQValueList();
- uint32_t protos = PROTO_NONE;
- for (TQValueList<TQT_DBusData>::Iterator proto_it = proto_list.begin(); proto_it != proto_list.end(); ++proto_it)
- {
- TQBiDirectionalMap<PROTO, TQString>::Iterator it2;
- if (_protoMap.end() != (it2 = _protoMap.findData( (*proto_it).toString() )))
- protos |= it2.key();
- }
- setProto(protos);
- }
- else if(it.key() == NM_SETTING_WIRELESS_SECURITY_GROUP)
- {
- TQValueList<TQT_DBusData> cipher_list = it.data().toTQValueList();
- uint32_t ciphers = CIPHER_NONE;
- for (TQValueList<TQT_DBusData>::Iterator cipher_it = cipher_list.begin(); cipher_it != cipher_list.end(); ++cipher_it)
- {
- TQBiDirectionalMap<CIPHERS, TQString>::Iterator it2;
- if (_cipherMap.end() != (it2 = _cipherMap.findData( (*cipher_it).toString() )))
- ciphers |= it2.key();
- }
- setGroupCiphers(ciphers);
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_PAIRWISE)
- {
- TQValueList<TQT_DBusData> cipher_list = it.data().toTQValueList();
- uint32_t ciphers = CIPHER_NONE;
- for (TQValueList<TQT_DBusData>::Iterator cipher_it = cipher_list.begin(); cipher_it != cipher_list.end(); ++cipher_it)
- {
- TQBiDirectionalMap<CIPHERS, TQString>::Iterator it2;
- if (_cipherMap.end() != (it2 = _cipherMap.findData( (*cipher_it).toString() )))
- ciphers |= it2.key();
- }
- setPairwiseCiphers(ciphers);
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME)
- {
- _leapUsername = it.data().toString();
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD)
- {
- _leapPassword = it.data().toString();
- }
- else
- kdWarning() << k_funcinfo << " Unknown setting: " << it.key() << endl;
- }
-}
-
-SettingsMap
-WirelessSecurity::toSecretsMap(bool with_settings) const
-{
- SettingsMap map;
- kdDebug() << "WirelessSecurity::toSecretsMap" << endl;
- // first serialize the settings if needed
- if (with_settings)
- map = toMap();
-
- // add the hashed psk
- if (!_psk.isNull())
- {
- map.insert(NM_SETTING_WIRELESS_SECURITY_PSK, TQT_DBusData::fromString(_psk), TRUE);
- }
-
- // wep keys
- if (!_wepKey[0].isNull())
- {
- kdDebug() << "insert wep key0: " << _wepKey[0].ascii() << endl;
- map.insert(NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, TQT_DBusData::fromString(_wepKey[0]));
- }
-
- if (!_wepKey[1].isNull())
- {
- map.insert(NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, TQT_DBusData::fromString(_wepKey[1]));
- }
-
- if (!_wepKey[2].isNull())
- {
- map.insert(NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, TQT_DBusData::fromString(_wepKey[2]));
- }
-
- if (!_wepKey[3].isNull())
- {
- map.insert(NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, TQT_DBusData::fromString(_wepKey[3]));
- }
-
- if (!_leapPassword.isEmpty())
- map.insert(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, TQT_DBusData::fromString(_leapPassword));
-
- return map;
-}
-
-bool
-WirelessSecurity::fromSecretsMap(const SettingsMap& map)
-{
- kdDebug() << "WirelessSecurity::fromMap" << endl;
-
- for (SettingsMap::ConstIterator it = map.begin(); it != map.end(); ++it)
- {
- if (it.key() == NM_SETTING_WIRELESS_SECURITY_PSK)
- {
- _psk = it.data().toString();
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_WEP_KEY0)
- {
- _wepKey[0] = it.data().toString();
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_WEP_KEY1)
- {
- _wepKey[1] = it.data().toString();
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_WEP_KEY2)
- {
- _wepKey[2] = it.data().toString();
- }
- else if (it.key() == NM_SETTING_WIRELESS_SECURITY_WEP_KEY3)
- {
- _wepKey[3] = it.data().toString();
- }
- else
- kdWarning() << k_funcinfo << " Unknown setting: " << it.key() << endl;
- }
- return true;
-}
-
-bool
-WirelessSecurity::isValid() const
-{
- return true;
-}