[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [networkmanagement/nm09] /: add support for vpnc hybrid auth
From: Ilia Kats <ilia-kats () gmx ! net>
Date: 2011-07-16 17:03:24
Message-ID: 20110716170324.131F9A60A6 () git ! kde ! org
[Download RAW message or body]
Git commit ad93e757a74a159e59bbb5d54c39b63b3224a7cc by Ilia Kats.
Committed on 16/07/2011 at 18:36.
Pushed by iliakats into branch 'nm09'.
add support for vpnc hybrid auth
This was finally introduced upstream in network-manager-vpnc commit
efd8ae88aa8d4e91168645f57233ce10bd36cc9f
BUG: 219118
M +15 -1 vpnplugins/vpnc/vpnc.cpp
M +1 -1 plasma_nm_version.h
M +11 -0 vpnplugins/vpnc/vpncwidget.cpp
M +81 -34 vpnplugins/vpnc/vpncprop.ui
M +2 -0 vpnplugins/vpnc/nm-vpnc-service.h
http://commits.kde.org/networkmanagement/ad93e757a74a159e59bbb5d54c39b63b3224a7cc
diff --git a/plasma_nm_version.h b/plasma_nm_version.h
index a48263c..8fc4a54 100644
--- a/plasma_nm_version.h
+++ b/plasma_nm_version.h
@@ -1,4 +1,4 @@
#ifndef PLASMA_NM_VERSION_H
#define PLASMA_NM_VERSION_H
-static const char * plasmaNmVersion = "nm09-20110712";
+static const char * plasmaNmVersion = "nm09-20110716";
#endif
diff --git a/vpnplugins/vpnc/nm-vpnc-service.h b/vpnplugins/vpnc/nm-vpnc-service.h
index e68e1ce..1680e3f 100644
--- a/vpnplugins/vpnc/nm-vpnc-service.h
+++ b/vpnplugins/vpnc/nm-vpnc-service.h
@@ -44,6 +44,8 @@
#define NM_VPNC_KEY_DPD_IDLE_TIMEOUT "DPD idle timeout (our side)"
#define NM_VPNC_KEY_CISCO_UDP_ENCAPS_PORT "Cisco UDP Encapsulation Port"
#define NM_VPNC_KEY_LOCAL_PORT "Local Port"
+#define NM_VPNC_KEY_AUTHMODE "IKE Authmode"
+#define NM_VPNC_KEY_CA_FILE "CA-File"
#define NM_VPNC_NATT_MODE_NATT "natt"
#define NM_VPNC_NATT_MODE_NONE "none"
diff --git a/vpnplugins/vpnc/vpnc.cpp b/vpnplugins/vpnc/vpnc.cpp
index e0561cb..58c72ed 100644
--- a/vpnplugins/vpnc/vpnc.cpp
+++ b/vpnplugins/vpnc/vpnc.cpp
@@ -120,6 +120,12 @@ QVariantList VpncUiPlugin::importConnectionSettings(const QString &fileName)
// Setup cisco-decrypt binary to decrypt the passwords
QStringList decrArgs;
QString ciscoDecryptBinary = KStandardDirs::findExe("cisco-decrypt");
+ // at least on Debian, cisco-decrypt is in /usr/lib/vpnc
+ if (ciscoDecryptBinary.isEmpty()) {
+ QFileInfo suspectedBinary(QLatin1String("/usr/lib/vpnc/cisco-decrypt"));
+ if (suspectedBinary.exists() && suspectedBinary.isExecutable())
+ ciscoDecryptBinary = QLatin1String("/usr/lib/vpnc/cisco-decrypt");
+ }
decrPlugin = new VpncUiPluginPrivate();
decrPlugin->ciscoDecrypt = new KProcess(this);
@@ -185,6 +191,11 @@ QVariantList VpncUiPlugin::importConnectionSettings(const QString &fileName)
}
delete decrPlugin;
+ // Auth Type
+ if (!cg.readEntry("AuthType").isEmpty() && cg.readEntry("AuthType").toInt() == 5) {
+ data.insert(NM_VPNC_KEY_AUTHMODE, QLatin1String("hybrid"));
+ }
+
// Optional settings
// username
if (!cg.readEntry("Username").isEmpty()) {
@@ -267,7 +278,10 @@ void VpncUiPlugin::exportConnectionSettings(Knm::Connection * connection, const
cg.writeEntry("Description", connection->name());
cg.writeEntry("Host", data.value(NM_VPNC_KEY_GATEWAY));
- cg.writeEntry("AuthType", "1");
+ if (data.value(NM_VPNC_KEY_AUTHMODE) == QLatin1String("hybrid"))
+ cg.writeEntry("AuthType", "5");
+ else
+ cg.writeEntry("AuthType", "1");
cg.writeEntry("GroupName", data.value(NM_VPNC_KEY_ID));
//cg.writeEntry("GroupPwd", secretData.value(NM_VPNC_KEY_SECRET));
//cg.writeEntry("UserPassword", secretData.value(NM_VPNC_KEY_XAUTH_PASSWORD));
diff --git a/vpnplugins/vpnc/vpncprop.ui b/vpnplugins/vpnc/vpncprop.ui
index 2c8d5a9..6eb6d12 100644
--- a/vpnplugins/vpnc/vpncprop.ui
+++ b/vpnplugins/vpnc/vpncprop.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>402</width>
- <height>401</height>
+ <height>421</height>
</rect>
</property>
<property name="windowTitle">
@@ -36,22 +36,6 @@
<item row="0" column="1">
<widget class="KLineEdit" name="leGateway"/>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="labelGroup">
- <property name="text">
- <string>Group name:</string>
- </property>
- <property name="wordWrap">
- <bool>false</bool>
- </property>
- <property name="buddy">
- <cstring>leGroupName</cstring>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="KLineEdit" name="leGroupName"/>
- </item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
@@ -95,7 +79,7 @@
</item>
</layout>
</item>
- <item row="3" column="0">
+ <item row="4" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>&Group Password:</string>
@@ -105,7 +89,7 @@
</property>
</widget>
</item>
- <item row="3" column="1">
+ <item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="KLineEdit" name="leGroupPassword">
@@ -138,7 +122,7 @@
</item>
</layout>
</item>
- <item row="4" column="1">
+ <item row="5" column="1">
<widget class="QCheckBox" name="cbShowPasswords">
<property name="text">
<string>&Hide passwords</string>
@@ -148,16 +132,41 @@
</property>
</widget>
</item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2">
- <property name="title">
- <string>Optional</string>
- </property>
- <layout class="QFormLayout" name="formLayout_2">
- <item row="0" column="0">
+ <item row="6" column="0" colspan="2">
+ <widget class="QCheckBox" name="cbUseHybridAuth">
+ <property name="text">
+ <string>Use hybrid authentication</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>CA File:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="1">
+ <widget class="KUrlRequester" name="leCaCertPath">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="labelGroup">
+ <property name="text">
+ <string>Group name:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="buddy">
+ <cstring>leGroupName</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>&Username:</string>
@@ -167,9 +176,24 @@
</property>
</widget>
</item>
- <item row="0" column="1">
+ <item row="3" column="1">
+ <widget class="KLineEdit" name="leGroupName"/>
+ </item>
+ <item row="1" column="1">
<widget class="KLineEdit" name="leUserName"/>
</item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Optional</string>
+ </property>
+ <layout class="QFormLayout" name="formLayout_2">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::ExpandingFieldsGrow</enum>
+ </property>
<item row="1" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
@@ -324,6 +348,11 @@
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
+ <class>KUrlRequester</class>
+ <extends>QFrame</extends>
+ <header>kurlrequester.h</header>
+ </customwidget>
+ <customwidget>
<class>KLineEdit</class>
<extends>QLineEdit</extends>
<header>klineedit.h</header>
@@ -331,18 +360,20 @@
</customwidgets>
<tabstops>
<tabstop>leGateway</tabstop>
- <tabstop>leGroupName</tabstop>
+ <tabstop>leUserName</tabstop>
<tabstop>leUserPassword</tabstop>
<tabstop>cboUserPassOptions</tabstop>
+ <tabstop>leGroupName</tabstop>
<tabstop>leGroupPassword</tabstop>
<tabstop>cboGroupPassOptions</tabstop>
- <tabstop>cbShowPasswords</tabstop>
- <tabstop>leUserName</tabstop>
+ <tabstop>cbUseHybridAuth</tabstop>
+ <tabstop>leCaCertPath</tabstop>
<tabstop>leDomain</tabstop>
<tabstop>cboEncryptionMethod</tabstop>
<tabstop>cboNatTraversal</tabstop>
<tabstop>cboDHGroup</tabstop>
<tabstop>chkDeadPeerDetection</tabstop>
+ <tabstop>cbShowPasswords</tabstop>
</tabstops>
<resources/>
<connections>
@@ -378,5 +409,21 @@
</hint>
</hints>
</connection>
+ <connection>
+ <sender>cbUseHybridAuth</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>leCaCertPath</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>200</x>
+ <y>161</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>252</x>
+ <y>185</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
</ui>
diff --git a/vpnplugins/vpnc/vpncwidget.cpp b/vpnplugins/vpnc/vpncwidget.cpp
index ef7d773..10b62a3 100644
--- a/vpnplugins/vpnc/vpncwidget.cpp
+++ b/vpnplugins/vpnc/vpncwidget.cpp
@@ -79,6 +79,11 @@ void VpncSettingWidget::readConfig()
if (!group.isEmpty()) {
d->ui.leGroupName->setText(group);
}
+ // hybrid auth
+ if (dataMap[NM_VPNC_KEY_AUTHMODE] == QLatin1String("hybrid")) {
+ d->ui.cbUseHybridAuth->setChecked(true);
+ d->ui.leCaCertPath->setUrl(KUrl(dataMap[NM_VPNC_KEY_CA_FILE]));
+ }
// password storage type is set in readSecrets
// Optional settings
@@ -181,6 +186,12 @@ void VpncSettingWidget::writeConfig()
handleOnePasswordType(d->ui.cboUserPassOptions, NM_VPNC_KEY_XAUTH_PASSWORD, secretsType);
handleOnePasswordType(d->ui.cboGroupPassOptions, NM_VPNC_KEY_SECRET, secretsType);
+ // hybrid auth
+ if (d->ui.cbUseHybridAuth->isChecked()) {
+ data.insert(NM_VPNC_KEY_AUTHMODE, QLatin1String("hybrid"));
+ data.insert(NM_VPNC_KEY_CA_FILE, d->ui.leCaCertPath->url().path().toUtf8());
+ }
+
// Optional settings
// username
if (!d->ui.leUserName->text().isEmpty()) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic