Bugzilla – Attachment 142440 Details for
Bug 216063
Add phase2 auth support to [k]networkmanager
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
[patch]
Add phase2 support to NM (knetworkmanager)
knetworkmanager-phase2_type.patch (text/plain), 17.08 KB, created by
Stefan Brüns
on 2007-05-27 13:53:17 UTC
(
hide
)
Description:
Add phase2 support to NM (knetworkmanager)
Filename:
MIME Type:
Creator:
Stefan Brüns
Created:
2007-05-27 13:53:17 UTC
Size:
17.08 KB
patch
obsolete
>diff -pur knetworkmanager/src_orig/cryptowidget.ui knetworkmanager/src/cryptowidget.ui >--- knetworkmanager/src_orig/cryptowidget.ui 2007-05-25 16:04:39.000000000 +0200 >+++ knetworkmanager/src/cryptowidget.ui 2007-05-26 00:40:27.000000000 +0200 >@@ -47,7 +47,7 @@ > <cstring>comboEncryption</cstring> > </property> > </widget> >- <widget class="QLabel" row="1" column="0"> >+ <widget class="QLabel" row="2" column="0"> > <property name="name"> > <cstring>lblSecret</cstring> > </property> >@@ -362,7 +362,7 @@ > <cstring>EAPcomboMethod</cstring> > </property> > </widget> >- <widget class="QLineEdit" row="1" column="1" rowspan="1" colspan="2"> >+ <widget class="QLineEdit" row="2" column="1" rowspan="1" colspan="2"> > <property name="name"> > <cstring>EAPleditIdentity</cstring> > </property> >@@ -370,7 +370,7 @@ > <enum>Normal</enum> > </property> > </widget> >- <widget class="QLabel" row="1" column="0"> >+ <widget class="QLabel" row="2" column="0"> > <property name="name"> > <cstring>lblVersion_2_3</cstring> > </property> >@@ -392,7 +392,7 @@ > <cstring>EAPleditPrivatePassword</cstring> > </property> > </widget> >- <widget class="QRadioButton" row="4" column="1" rowspan="2" colspan="1"> >+ <widget class="QRadioButton" row="5" column="1" rowspan="2" colspan="1"> > <property name="name"> > <cstring>EAPrbWPA1</cstring> > </property> >@@ -417,7 +417,7 @@ > <number>-1</number> > </property> > </widget> >- <widget class="QLineEdit" row="3" column="1" rowspan="1" colspan="2"> >+ <widget class="QLineEdit" row="4" column="1" rowspan="1" colspan="2"> > <property name="name"> > <cstring>EAPleditAnonIdentity</cstring> > </property> >@@ -425,7 +425,7 @@ > <enum>Normal</enum> > </property> > </widget> >- <widget class="QLabel" row="4" column="0" rowspan="2" colspan="1"> >+ <widget class="QLabel" row="5" column="0" rowspan="2" colspan="1"> > <property name="name"> > <cstring>lblVersion_2</cstring> > </property> >@@ -468,7 +468,7 @@ > <cstring>EAPurlPrivate</cstring> > </property> > </widget> >- <widget class="QRadioButton" row="4" column="2" rowspan="2" colspan="1"> >+ <widget class="QRadioButton" row="5" column="2" rowspan="2" colspan="1"> > <property name="name"> > <cstring>EAPrbWPA2</cstring> > </property> >@@ -501,7 +501,7 @@ > <cstring>EAPleditPassword</cstring> > </property> > </widget> >- <widget class="QLabel" row="3" column="0"> >+ <widget class="QLabel" row="4" column="0"> > <property name="name"> > <cstring>lblVersion_2_3_3</cstring> > </property> >@@ -540,6 +540,55 @@ > </sizepolicy> > </property> > </widget> >+ <widget class="QLabel" row="1" column="0"> >+ <property name="name"> >+ <cstring>lblVersion_2_2</cstring> >+ </property> >+ <property name="text"> >+ <string>Phase2 &Type</string> >+ </property> >+ <property name="buddy" stdset="0"> >+ <cstring>EAPcomboPhase2Type</cstring> >+ </property> >+ </widget> >+ <widget class="QComboBox" row="1" column="1" rowspan="1" colspan="2"> >+ <item> >+ <property name="text"> >+ <string>None (Default)</string> >+ </property> >+ </item> >+ <item> >+ <property name="text"> >+ <string>PAP</string> >+ </property> >+ </item> >+ <item> >+ <property name="text"> >+ <string>MSCHAP</string> >+ </property> >+ </item> >+ <item> >+ <property name="text"> >+ <string>MSCHAPV2</string> >+ </property> >+ </item> >+ <item> >+ <property name="text"> >+ <string>GTC</string> >+ </property> >+ </item> >+ <property name="name"> >+ <cstring>EAPcomboPhase2Type</cstring> >+ </property> >+ <property name="sizePolicy"> >+ <sizepolicy> >+ <hsizetype>3</hsizetype> >+ <vsizetype>0</vsizetype> >+ <horstretch>0</horstretch> >+ <verstretch>0</verstretch> >+ </sizepolicy> >+ </property> >+ </widget> > <widget class="QLabel" row="2" column="3"> > <property name="name"> > <cstring>lblVersion_2_4_2</cstring> >@@ -570,6 +619,7 @@ > <tabstop>leditSecret</tabstop> > <tabstop>cbShow</tabstop> > <tabstop>EAPcomboMethod</tabstop> >+ <tabstop>EAPcomboPhase2Type</tabstop> > <tabstop>EAPleditIdentity</tabstop> > <tabstop>EAPleditPassword</tabstop> > <tabstop>EAPleditAnonIdentity</tabstop> >diff -pur knetworkmanager/src_orig/knetworkmanager-dialogfab.cpp knetworkmanager/src/knetworkmanager-dialogfab.cpp >--- knetworkmanager/src_orig/knetworkmanager-dialogfab.cpp 2007-05-25 16:04:39.000000000 +0200 >+++ knetworkmanager/src/knetworkmanager-dialogfab.cpp 2007-05-25 23:48:08.000000000 +0200 >@@ -490,6 +490,7 @@ WirelessDialog::groupWPAEAPAdvanced_togg > if (!on) { > enc->setDefaults (); > cryptoWidget->EAPcomboMethod->setCurrentItem (0); >+ cryptoWidget->EAPcomboPhase2Type->setCurrentItem (0); > cryptoWidget->EAPrbWPA1->setChecked (true); > } > } >@@ -543,6 +544,35 @@ WirelessDialog::EAPcomboMethod_activated > } > > void >+WirelessDialog::EAPcomboPhase2Type_activated (int id) >+{ >+ Phase2Type phase2type = PHASE2_NONE; >+ EncryptionWPAEnterprise* enc = (EncryptionWPAEnterprise*) _encryptionMap [_id_wpa_wpa2enterprise]; >+ >+ switch (id) { >+ case 0: >+ phase2type = PHASE2_NONE; >+ break; >+ case 1: >+ phase2type = PHASE2_PAP; >+ break; >+ case 2: >+ phase2type = PHASE2_MSCHAP; >+ break; >+ case 3: >+ phase2type = PHASE2_MSCHAPV2; >+ break; >+ case 4: >+ phase2type = PHASE2_GTC; >+ break; >+ default: >+ phase2type = PHASE2_NONE; >+ } >+ >+ enc->setPhase2 (phase2type); >+} >+ >+void > WirelessDialog::EAPleditIdentity_textChanged (const QString & identity) > { > EncryptionWPAEnterprise* enc = (EncryptionWPAEnterprise*) _encryptionMap [_id_wpa_wpa2enterprise]; >@@ -645,6 +675,8 @@ WirelessDialog::connectCryptoWidget() > this, SLOT (EAPrbWPA2_toggled (bool))); > connect (cryptoWidget->EAPcomboMethod, SIGNAL (activated (int)), > this, SLOT (EAPcomboMethod_activated (int))); >+ connect (cryptoWidget->EAPcomboPhase2Type, SIGNAL (activated (int)), >+ this, SLOT (EAPcomboPhase2Type_activated (int))); > connect (cryptoWidget->EAPleditIdentity, SIGNAL (textChanged (const QString &)), > this, SLOT (EAPleditIdentity_textChanged (const QString &))); > connect (cryptoWidget->EAPleditPassword, SIGNAL (textChanged (const QString &)), >@@ -687,6 +719,7 @@ WirelessDialog::comboEncryption_activate > kdDebug() << k_funcinfo << "WPA Enterprise" << endl; > cryptoWidget->stackEncAdvanced->raiseWidget(cryptoWidget->advancedWPAEnterpriseWidget); > EAPcomboMethod_activated(cryptoWidget->EAPcomboMethod->currentItem()); >+ EAPcomboPhase2Type_activated(cryptoWidget->EAPcomboPhase2Type->currentItem()); > } > > /* WPA Enterprise does not use lblSecret, leditSecret and cbShow */ >diff -pur knetworkmanager/src_orig/knetworkmanager-dialogfab.h knetworkmanager/src/knetworkmanager-dialogfab.h >--- knetworkmanager/src_orig/knetworkmanager-dialogfab.h 2007-05-25 16:04:39.000000000 +0200 >+++ knetworkmanager/src/knetworkmanager-dialogfab.h 2007-05-25 23:18:03.000000000 +0200 >@@ -64,6 +64,7 @@ class WirelessDialog : public KDialogBas > void EAPrbWPA1_toggled (bool); > void EAPrbWPA2_toggled (bool); > void EAPcomboMethod_activated (int); >+ void EAPcomboPhase2Type_activated (int); > void EAPleditIdentity_textChanged (const QString &); > void EAPleditPassword_textChanged (const QString &); > void EAPleditAnonIdentity_textChanged (const QString &); >diff -pur knetworkmanager/src_orig/knetworkmanager-encryption.cpp knetworkmanager/src/knetworkmanager-encryption.cpp >--- knetworkmanager/src_orig/knetworkmanager-encryption.cpp 2007-05-25 16:04:39.000000000 +0200 >+++ knetworkmanager/src/knetworkmanager-encryption.cpp 2007-05-26 00:43:43.000000000 +0200 >@@ -643,10 +643,13 @@ EncryptionWPAEnterprise::serialize (DBus > kdDebug () << "method: " << _method << " identity: " << _identity << " password: " << _secret[IdPasswordKey] << > " anon ident: " << _anonIdentity << " cert priv passwd: " << _secret[CertPrivatePasswordKey] << > " cert priv: " << _certPrivate << " cert client: " << _certClient << " cert CA: " << _certCA << >- " version: " << _version << endl; >+ " version: " << _version << " phase2: " << _phase2type << endl; > > dbus_message_iter_init_append (msg, &iter); >- status = nmu_security_serialize_wpa_eap_with_cipher (&iter, _method, keyType, _identity.utf8(), >+ >+ /* second argument is combined bitfield for eap method and phase2 type */ >+ int bf_method_phase2 = (int)_method | (int)_phase2type; >+ status = nmu_security_serialize_wpa_eap_with_cipher (&iter, bf_method_phase2, keyType, _identity.utf8(), > _secret[IdPasswordKey].utf8(), _anonIdentity.utf8(), > _secret[CertPrivatePasswordKey].utf8(), > _certPrivate.utf8(), _certClient.utf8(), _certCA.utf8(), >@@ -659,6 +662,8 @@ bool > EncryptionWPAEnterprise::deserialize( DBusMessageIter * iter, int we_cipher ) > { > int method; >+ EAPMethod eapMethod; >+ Phase2Type phase2Type; > int keyType; > char* identity = NULL; > char* identityPassword = NULL; >@@ -680,10 +685,15 @@ EncryptionWPAEnterprise::deserialize( DB > > if ( !(version == IW_AUTH_WPA_VERSION_WPA || version == IW_AUTH_WPA_VERSION_WPA2 ) ) > return false; >- if ( !(method == EAP_PEAP || method == EAP_TLS || method == EAP_TTLS ) ) >+ eapMethod = ((EAPMethod) NM_EAP_TO_EAP_METHOD (method)); >+ if ( !(eapMethod == EAP_PEAP || eapMethod == EAP_TLS || eapMethod == EAP_TTLS ) ) >+ return false; >+ phase2Type = ((Phase2Type) NM_EAP_TO_PHASE2_METHOD (method)); >+ if ( !(phase2Type == PHASE2_PAP || phase2Type == PHASE2_MSCHAP || phase2Type == PHASE2_MSCHAPV2 || phase2Type == PHASE2_GTC ) ) > return false; > >- setMethod ((EAPMethod) method); >+ setMethod (eapMethod); >+ setPhase2 (phase2Type); > setIdentity (identity); > setAnonIdentity (anonIdentity); > setCertPrivate (certPrivate); >@@ -716,6 +726,7 @@ EncryptionWPAEnterprise::setDefaults (vo > setProtocol (WPA_EAP); > setVersion (WPA1); > setMethod (EAP_PEAP); >+ setPhase2 (PHASE2_NONE); > setIdentity (""); > setAnonIdentity (""); > setCertPrivate (""); >@@ -845,6 +856,20 @@ EncryptionWPAEnterprise::getMethod (void > return _method; > } > >+void >+EncryptionWPAEnterprise::setPhase2 (Phase2Type phase2type) >+{ >+ kdDebug() << k_funcinfo << " " << phase2type << endl; >+ _phase2type = phase2type; >+} >+ >+Phase2Type >+EncryptionWPAEnterprise::getPhase2 (void) >+{ >+ kdDebug() << k_funcinfo << endl; >+ return _phase2type; >+} >+ > EncryptionWPAEnterprise::EncryptionWPAEnterprise () > { > kdDebug() << k_funcinfo << endl; >@@ -871,6 +896,18 @@ void EncryptionWPAEnterprise::persist( K > cfg->writeEntry( "Method", "TTLS" ); > } > >+ if ( _phase2type == PHASE2_NONE) { >+ cfg->writeEntry( "Phase2", "NONE" ); >+ } else if ( _phase2type == PHASE2_PAP ) { >+ cfg->writeEntry( "Phase2", "PAP" ); >+ } else if ( _phase2type == PHASE2_MSCHAP ) { >+ cfg->writeEntry( "Phase2", "MSCHAP" ); >+ } else if ( _phase2type == PHASE2_MSCHAPV2 ) { >+ cfg->writeEntry( "Phase2", "MSCHAPV2" ); >+ } else if ( _phase2type == PHASE2_GTC ) { >+ cfg->writeEntry( "Phase2", "GTC" ); >+ } >+ > cfg->writeEntry( "Identity", _identity ); > cfg->writeEntry( "AnonIdentity", _anonIdentity ); > cfg->writeEntry( "CertPrivate", _certPrivate ); >@@ -922,6 +959,19 @@ void EncryptionWPAEnterprise::restore( K > _method = EAP_TTLS; > } > >+ QString phase2 = cfg->readEntry( "Phase2" ); >+ if ( "PAP" == phase2 ) { >+ _phase2type = PHASE2_PAP; >+ } else if ( "MSCHAP" == phase2 ) { >+ _phase2type = PHASE2_MSCHAP; >+ } else if ( "MSCHAPV2" == phase2 ) { >+ _phase2type = PHASE2_MSCHAPV2; >+ } else if ( "GTC" == phase2 ) { >+ _phase2type = PHASE2_GTC; >+ } else { >+ _phase2type = PHASE2_NONE; >+ } >+ > _identity = cfg->readEntry( "Identity" ); > _anonIdentity = cfg->readEntry( "AnonIdentity" ); > _certPrivate = cfg->readEntry( "CertPrivate" ); >diff -pur knetworkmanager/src_orig/knetworkmanager-encryption.h knetworkmanager/src/knetworkmanager-encryption.h >--- knetworkmanager/src_orig/knetworkmanager-encryption.h 2007-05-25 16:04:39.000000000 +0200 >+++ knetworkmanager/src/knetworkmanager-encryption.h 2007-05-25 16:16:21.000000000 +0200 >@@ -195,6 +195,14 @@ enum EAPMethod { > EAP_TTLS = NM_EAP_METHOD_TTLS > }; > >+enum Phase2Type { >+ PHASE2_NONE = NM_PHASE2_AUTH_NONE, >+ PHASE2_PAP = NM_PHASE2_AUTH_PAP, >+ PHASE2_MSCHAP = NM_PHASE2_AUTH_MSCHAP, >+ PHASE2_MSCHAPV2 = NM_PHASE2_AUTH_MSCHAPV2, >+ PHASE2_GTC = NM_PHASE2_AUTH_GTC >+}; >+ > class EncryptionWPAEnterprise : public Encryption > { > public: >@@ -223,6 +231,8 @@ class EncryptionWPAEnterprise : public E > WPAVersion getVersion (void); > void setMethod (EAPMethod); > EAPMethod getMethod (void); >+ void setPhase2 (Phase2Type); >+ Phase2Type getPhase2 (void); > > virtual void persist( KConfigBase *, bool withKey = true ) const; > virtual void restore( KConfigBase *, double version, bool withKey = false); >@@ -241,6 +251,7 @@ class EncryptionWPAEnterprise : public E > WPAProtocol _protocol; > WPAVersion _version; > EAPMethod _method; >+ Phase2Type _phase2type; > }; > > #endif /* KNETWORKMANAGER_ENCRYPTION_H */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 216063
:
142438
|
142439
|
142440
|
142539