/*************************************************************************** * Copyright (C) 2004 by Christoph Thielecke * * crissi99@gmx.de * * * * 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. * ***************************************************************************/ //BEGIN INCLUDES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "kvpncconfig.h" #include "networkinterface.h" #include "newprofilewizard.h" #include "addnetworkroutedialog.h" #include "utils.h" //END INCLUDES NewProfileWizard::NewProfileWizard ( KVpncConfig* GlobalConfig ) { this->GlobalConfig = GlobalConfig; newProfileCreated = false; setCaption ( i18n ( "Add new profile..." ) ); //setMinimumSize( 400,300); SetupPixmap = new QPixmap ( locate ( "data", "kvpnc/newprofilewizard.png" ) ); SetupPixmapFinal = new QPixmap ( locate ( "data", "kvpnc/newprofilewizard_final.png" ) ); // currently static for new profile VpnAccountData::ConnectionType ConnType = VpnAccountData::ConnectionType ( VpnAccountData::other ); Port = 500; Gateway = ""; ID = ""; Username = ""; UserPassword = ""; PreSharedKey = ""; ApplicationVersion = ""; NtDomainName = ""; PerfectForwardSecrecy = ""; IkeGroup = ""; Description = ""; Name = "None"; useApplicationVersion = false; useGlobalIpsecSecret = false; useIkeGroup = false; useLocalPort = false; useNtDomainName = false; useSingleDes = false; useAdvancedSettings = false; usePerfectSecrecy = false; saveUserPassword = false; savePsk = false; useUdp = false; useUdpPort = false; useDnsServer = false; DnsServer = ""; useGetDnsFromPeer = true; refuse40BitEncryption = true; refuse128BitEncryption = false; allowStatefulMode = false; requireMppe = true; useNoBsdComp = true; useNoDeflate = true; savePsk = false; connectaftercreating = true; daemonavailable = false; enterdatamanually = false; importOK = false; currentpage = 0; previouspage = 0; profileData = new VpnAccountData ( ConnType, Name ); profileData->setGateway ( Gateway ); profileData->setID ( ID ); profileData->setPreSharedKey ( PreSharedKey ); profileData->setSavePsk ( savePsk ); profileData->setUserName ( Username ); profileData->setUserPassword ( UserPassword ); profileData->setSaveUserPassword ( saveUserPassword ); profileData->setSavePsk ( savePsk ); profileData->setApplicationVersion ( ApplicationVersion ); profileData->setUseLocalPort ( useLocalPort ); profileData->setLocalPort ( Port ); profileData->setUseSingleDes ( useSingleDes ); profileData->setPerfectForwardSecrety ( PerfectForwardSecrecy ); profileData->setIkeGroup ( IkeGroup ); profileData->setUseGlobalIpsecSecret ( useGlobalIpsecSecret ); profileData->setUseIkeGroup ( useIkeGroup ); profileData->setNtDomainName ( NtDomainName ); profileData->setUseAdvancedSettings ( useAdvancedSettings ); profileData->setUsePerfectForwardSecrety ( usePerfectSecrecy ); profileData->setUseTlsAuth ( false ); setupPages(); // // tmp // newprofilewizardtypeselectionpagecontent->FreeswanRadioButton->setEnabled(false); // newprofilewizardtypeselectionpagecontent->RacoonRadioButton->setEnabled(false); } void NewProfileWizard::accept() { if ( !enterdatamanually ) { if ( profileData->getConnectionType() == VpnAccountData::cisco ) { // importProfile( VpnAccountData::cisco ); // if ( importOK ) // newProfileCreated = true; // else // newProfileCreated = false; } } else { newProfileCreated = true; } finished = true; if ( newProfileCreated && profileData->getAuthType() == VpnAccountData::cert ) {} QWizard::accept(); } void NewProfileWizard::reject() { finished = false; QWizard::reject(); } void NewProfileWizard::setupPages() { // setup start page page1 = new QHBox ( 0 ); // page1->setSpacing(8); QLabel *setupPixmapContent1 = new QLabel ( page1 ); setupPixmapContent1->setPixmap ( *SetupPixmap ); setupPixmapContent1->resize ( setupPixmapContent1->sizeHint() ); newprofilewizardstartcontent = new NewProfileWizardStart ( page1 ); newprofilewizardstartcontent->resize ( newprofilewizardstartcontent->sizeHint() ); page1->sizeHint(); addPage ( page1, "" + i18n ( "Welcome" ) + "" ); // type selection newprofilewizardtypeselectionpage = new QHBox ( 0 ); // newprofilewizardtypeselectionpage->setSpacing(8); QLabel *setupPixmapContent2 = new QLabel ( newprofilewizardtypeselectionpage ); setupPixmapContent2->setPixmap ( *SetupPixmap ); setupPixmapContent2->resize ( setupPixmapContent2->sizeHint() ); newprofilewizardtypeselectionpagecontent = new NewProfileWizardTypeSelection ( newprofilewizardtypeselectionpage ); newprofilewizardtypeselectionpagecontent->FreeswanRadioButton->setText ( i18n ( "IPSec (%1)" ).arg ( "FreeS/WAN/Openswan/strongSwan" ) ); newprofilewizardtypeselectionpagecontent->L2tpFreeswanRadioButton->setText ( i18n ( "L2TP over IPSec (%1)" ).arg ( "FreeS/WAN/Openswan/strongSwan" ) ); newprofilewizardtypeselectionpage->sizeHint(); addPage ( newprofilewizardtypeselectionpage, "" + i18n ( "Type selection" ) + "" ); // cisco newprofilewizardciscoselectionpage = new QHBox ( 0 ); // newprofilewizardciscoselectionpage->setSpacing(8); QLabel *setupPixmapContent3 = new QLabel ( newprofilewizardciscoselectionpage ); setupPixmapContent3->setPixmap ( *SetupPixmap ); setupPixmapContent3->resize ( setupPixmapContent3->sizeHint() ); newprofilewizardciscoselectionpagecontent = new NewProfileWizardCiscoSelection ( newprofilewizardciscoselectionpage ); newprofilewizardciscoselectionpage->sizeHint(); newprofilewizardciscomanuallypage = new QHBox ( 0 ); // newprofilewizardciscomanuallypage->setSpacing(8); QLabel *setupPixmapContent4 = new QLabel ( newprofilewizardciscomanuallypage ); setupPixmapContent4->setPixmap ( *SetupPixmap ); setupPixmapContent4->resize ( setupPixmapContent4->sizeHint() ); newprofilewizardciscomanuallypagecontent = new NewProfileWizardCiscoManually ( newprofilewizardciscomanuallypage ); newprofilewizardciscomanuallypage->sizeHint(); connect ( newprofilewizardciscomanuallypagecontent->GroupPasswordLineEdit , SIGNAL ( textChanged ( const QString& ) ), this, SLOT ( pskToggled ( const QString& ) ) ); // racoon newprofilewizardracoonpage = new QHBox ( 0 ); // newprofilewizardracoonpage->setSpacing(8); QLabel *setupPixmapContent5 = new QLabel ( newprofilewizardracoonpage ); setupPixmapContent5->setPixmap ( *SetupPixmap ); setupPixmapContent5->resize ( setupPixmapContent5->sizeHint() ); newprofilewizardracoonpagecontent = new NewProfileWizardRacoon ( newprofilewizardracoonpage ); newprofilewizardracoonpagecontent->ExchangeModeComboBox->insertItem ( "main", 0 ); newprofilewizardracoonpagecontent->ExchangeModeComboBox->insertItem ( "aggressive", 1 ); newprofilewizardracoonpagecontent->ExchangeModeComboBox->insertItem ( "base", 2 ); newprofilewizardracoonpagecontent->ExchangeModeComboBox->setCurrentItem ( 0 ); // main newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem ( "SHA1" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem ( "MD5" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->setCurrentItem ( 0 ); //SHA1 newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp768" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp1024" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "ec2n155" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "ec2n185" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp1536" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp2048" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp3072" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp4096" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp6144" ); newprofilewizardracoonpagecontent->DHGroupComboBox->insertItem ( "modp8192" ); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->insertItem("none"); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->insertItem("address"); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->insertItem("user_fqdn"); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->insertItem("fqdn"); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->insertItem("keyid (file)"); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->insertItem("keyid"); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->insertItem("asn1dn"); newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->insertItem("none"); newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->insertItem("address"); newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->insertItem("user_fqdn"); newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->insertItem("fqdn"); newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->insertItem("keyid (file)"); newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->insertItem("keyid"); newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->insertItem("asn1dn"); QToolTip::add( newprofilewizardracoonpagecontent->RemoteIdTypeCombobox, i18n("Remote ID type
" "" "" "" "" "" "" "
none:No ID
address:The type is the IP address. This is the default type if you do not specify an identifier to use
user_fqdn:The type is a USER_FQDN (user fully-qualified domain name)
fqdn:The type is a FQDN (fully-qualified domain name)
keyid (file):The type is a KEY_ID, read from the file
keyid:The type is a KEY_ID, specified in field
asn1dn:The type is an ASN.1 distinguished name. If empty, DN from the Subject field in the certificate will be used" "")); QToolTip::add( newprofilewizardracoonpagecontent->LocalIdTypeCombobox, i18n("Local ID type
" "" "" "" "" "" "" "
none:No ID
address:The type is the IP address. This is the default type if you do not specify an identifier to use
user_fqdn:The type is a USER_FQDN (user fully-qualified domain name)
fqdn:The type is a FQDN (fully-qualified domain name)
keyid (file):The type is a KEY_ID, read from the file
keyid:The type is a KEY_ID, specified in field
asn1dn:The type is an ASN.1 distinguished name. If empty, DN from the Subject field in the certificate will be used" "")); newprofilewizardracoonpagecontent->PerfectForwardSecurityCheckbox->setChecked(true); newprofilewizardracoonpagecontent->PerfectForwardSecrecyCombobox->setCurrentText("modp2048"); connect ( newprofilewizardracoonpagecontent->LocalIdTypeCombobox, SIGNAL ( highlighted ( const QString& ) ), this, SLOT ( localIDTypeRacoonToggled ( const QString& ) ) ); connect ( newprofilewizardracoonpagecontent->RemoteIdTypeCombobox, SIGNAL ( highlighted ( const QString& ) ), this, SLOT ( remoteIDTypeRacoonToggled ( const QString& ) ) ); connect ( newprofilewizardracoonpagecontent->IkeGroupCheckbox, SIGNAL ( toggled ( bool ) ), this, SLOT ( ikeGroupToggled ( bool ) ) ); connect ( newprofilewizardracoonpagecontent->UseXauthCheckBox, SIGNAL(toggled(bool)),this, SLOT(useXauthRacoonToggled(bool))); Utils::IpsecAlgos KernelCrypto = Utils ( GlobalConfig ).getKernelCrypto(); // man racoon.conf newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("3des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("blowfish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("cast128" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("aes" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("camellia" ); // man racoon.conf newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "md5" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha1" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha256" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha384" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha512" ); // // phase 2 encr algos from kernel // for ( QStringList::Iterator it = KernelCrypto.IpsecEspEncryptionAlgorithms.begin(); it != KernelCrypto.IpsecEspEncryptionAlgorithms.end(); ++it ) // { // newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem ( *it ); // } // // // phase 2 auth algos from kernel // for ( QStringList::Iterator it = KernelCrypto.IpsecEspAuthenticationAlgorithms.begin(); it != KernelCrypto.IpsecEspAuthenticationAlgorithms.end(); ++it ) // { // newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem ( *it ); // } // vpn mit linux book newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("3des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("des_iv64" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("des_iv32" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("rc5" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("rc4" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("idea" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("3idea" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("cast128" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("blowfish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("null_enc" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("twofish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("rijndael" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("aes" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "3des" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des_iv64" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des_iv32" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_md5" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha1" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha256" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha384" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha512" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "non_auth" ); // FIXME save not implemented yet newprofilewizardracoonpagecontent->PerfectForwardSecurityCheckbox->hide(); newprofilewizardracoonpagecontent->PerfectForwardSecrecyCombobox->hide(); newprofilewizardracoonpage->sizeHint(); //freeswan newprofilewizardfreeswanselectionpage = new QHBox ( 0 ); // newprofilewizardfreeswanselectionpage->setSpacing(8); QLabel *setupPixmapContent711 = new QLabel ( newprofilewizardfreeswanselectionpage ); setupPixmapContent711->setPixmap ( *SetupPixmap ); setupPixmapContent711->resize ( setupPixmapContent711->sizeHint() ); newprofilewizardfreeswanselectionpagecontent = new NewProfileWizardOpenvpnSelection ( newprofilewizardfreeswanselectionpage ); newprofilewizardfreeswanselectionpagecontent->OpenvpnImportRadioButton->setText(i18n("Import &Ipsec config file")); newprofilewizardfreeswanselectionpage->sizeHint(); newprofilewizardfreeswanpage = new QHBox ( 0 ); // newprofilewizardfreeswanpage->setSpacing(8); QLabel *setupPixmapContent6 = new QLabel ( newprofilewizardfreeswanpage ); setupPixmapContent6->setPixmap ( *SetupPixmap ); setupPixmapContent6->resize ( setupPixmapContent6->sizeHint() ); newprofilewizardfreeswanpagecontent = new NewProfileWizardFreeswan ( newprofilewizardfreeswanpage ); newprofilewizardfreeswanpage->sizeHint(); //freeswan newprofilewizardfreeswanpage = new QHBox ( 0 ); // newprofilewizardfreeswanpage->setSpacing(8); QLabel *setupPixmapContent66 = new QLabel ( newprofilewizardfreeswanpage ); setupPixmapContent66->setPixmap ( *SetupPixmap ); setupPixmapContent66->resize ( setupPixmapContent66->sizeHint() ); newprofilewizardfreeswanpagecontent = new NewProfileWizardFreeswan ( newprofilewizardfreeswanpage ); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->insertItem(i18n("Certificate ID")); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->insertItem("asn1dn"); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->insertItem("address"); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->insertItem("fqdn"); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->insertItem("keyid"); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->insertItem("user_fqdn"); newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->insertItem("asn1dn"); newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->insertItem("address"); newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->insertItem("fqdn"); newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->insertItem("keyid"); newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->insertItem("user_fqdn"); newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->insertItem("none"); newprofilewizardfreeswanpagecontent->IpsecVpnModeCombobox->insertItem( "transport" ); newprofilewizardfreeswanpagecontent->IpsecVpnModeCombobox->insertItem( "tunnel" ); newprofilewizardfreeswanpagecontent->IpsecVpnModeCombobox->setCurrentItem(1); newprofilewizardfreeswanpagecontent->DisableOpportunisticEncryptionCheckBox->setChecked(true); newprofilewizardfreeswanpagecontent->UseModeConfigCheckBox->hide(); newprofilewizardfreeswanpagecontent->PerfectForwardSecurityCheckbox->setChecked(true); connect ( newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox, SIGNAL ( highlighted ( const QString& ) ), this, SLOT ( localIDTypeIpsecToggled ( const QString& ) ) ); connect( newprofilewizardfreeswanpagecontent->UseCustomEspCheckBox, SIGNAL( toggled(bool) ), this, SLOT( useEspToogled(bool) ) ); connect( newprofilewizardfreeswanpagecontent->UseCustomIkeCheckBox, SIGNAL( toggled(bool) ), this, SLOT( useIkeToggled(bool) ) ); connect( newprofilewizardfreeswanpagecontent->UseLeftNextHopCheckBox, SIGNAL( toggled(bool) ), this, SLOT( useLeftNextHopToggled(bool) ) ); connect( newprofilewizardfreeswanpagecontent->UseRightNextHopCheckBox, SIGNAL( toggled(bool) ), this, SLOT( useRightNextHopToggled(bool) ) ); connect (newprofilewizardfreeswanpagecontent->UseXauthCheckBox, SIGNAL(toggled(bool)),this, SLOT(useXauthFreeswanToggled(bool))); connect ( newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox, SIGNAL ( highlighted ( const QString& ) ), this, SLOT ( localIDTypeIpsecToggled ( const QString& ) ) ); connect ( newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox, SIGNAL ( highlighted ( const QString& ) ), this, SLOT ( remoteIDTypeIpsecToggled ( const QString& ) ) ); newprofilewizardfreeswanpage->sizeHint(); // openvpn newprofilewizardopenvpnselectionpage = new QHBox ( 0 ); // newprofilewizardopenvpnselectionpage->setSpacing(8); QLabel *setupPixmapContent7 = new QLabel ( newprofilewizardopenvpnselectionpage ); setupPixmapContent7->setPixmap ( *SetupPixmap ); setupPixmapContent7->resize ( setupPixmapContent7->sizeHint() ); newprofilewizardopenvpnselectionpagecontent = new NewProfileWizardOpenvpnSelection ( newprofilewizardopenvpnselectionpage ); newprofilewizardopenvpnselectionpage->sizeHint(); newprofilewizardopenvpnauthpage = new QHBox ( 0 ); // newprofilewizardopenvpnauthpage->setSpacing(8); QLabel *setupPixmapContent71 = new QLabel ( newprofilewizardopenvpnauthpage ); setupPixmapContent71->setPixmap ( *SetupPixmap ); setupPixmapContent71->resize ( setupPixmapContent71->sizeHint() ); newprofilewizardopenvpnauthpagecontent = new NewProfileWizardOpenvpnAuth ( newprofilewizardopenvpnauthpage ); newprofilewizardopenvpnauthpage->sizeHint(); connect ( newprofilewizardopenvpnauthpagecontent->AuthWithUsernameAndPasswordCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( authenticateWithUsernameAndPasswordToggled ( bool ) ) ); connect ( newprofilewizardopenvpnauthpagecontent->UseAuthenticationAlgorithmCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useAuthenticationAlgorithmToggled ( bool ) ) ); newprofilewizardopenvpnpage = new QHBox ( 0 ); // newprofilewizardopenvpnpage->setSpacing(8); QLabel *setupPixmapContent8 = new QLabel ( newprofilewizardopenvpnpage ); setupPixmapContent8->setPixmap ( *SetupPixmap ); setupPixmapContent8->resize ( setupPixmapContent8->sizeHint() ); newprofilewizardopenvpnpagecontent = new NewProfileWizardOpenvpn ( newprofilewizardopenvpnpage ); newprofilewizardopenvpnpage->sizeHint(); newprofilewizardopenvpnpagecontent->TunnelDeviceTypeComboBox->insertItem ( "tun" ); newprofilewizardopenvpnpagecontent->TunnelDeviceTypeComboBox->insertItem ( "tap" ); newprofilewizardopenvpnpagecontent->NsCertTypeComboBox->insertItem ( "client" ); newprofilewizardopenvpnpagecontent->NsCertTypeComboBox->insertItem ( "server" ); newprofilewizardopenvpnpagecontent->NsCertTypeComboBox->setEnabled ( false ); newprofilewizardopenvpnpagecontent->UserdefinedPortSpinBox->setEnabled ( false ); newprofilewizardopenvpnpagecontent->UseUserdefinedPortCheckBox->setChecked ( false ); newprofilewizardopenvpnpagecontent->UseNsCertTypeCheckBox->setChecked ( false ); newprofilewizardopenvpnpagecontent->UseTlsAuthCheckBox->setChecked ( false ); newprofilewizardopenvpnpagecontent->UseTlsRemoteHostCheckBox->setChecked ( false ); newprofilewizardopenvpnpagecontent->UseUserdefiniedCipherCheckBox->setChecked ( false ); newprofilewizardopenvpnpagecontent->UseHttpProxyCheckBox->setChecked ( false ); connect ( newprofilewizardopenvpnpagecontent->UseUserdefinedPortCheckBox , SIGNAL ( toggled ( bool ) ), this, SLOT ( userdefinedOpenvpnPortToggeled ( bool ) ) ); connect ( newprofilewizardopenvpnpagecontent->UseNsCertTypeCheckBox , SIGNAL ( toggled ( bool ) ), this, SLOT ( nsCertTypeOpenvpnToggled ( bool ) ) ); connect ( newprofilewizardopenvpnpagecontent->UseUserdefinedPortCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( userdefinedOpenvpnPortToggeled ( bool ) ) ); connect ( newprofilewizardopenvpnpagecontent->UseTlsAuthCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useTlsAuthToggled ( bool ) ) ); connect ( newprofilewizardopenvpnpagecontent->UseTlsRemoteHostCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useTlsRemoteHostToggled ( bool ) ) ); connect ( newprofilewizardopenvpnpagecontent->UseUserdefiniedCipherCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useUserdefiniedCipherToggled ( bool ) ) ); connect ( newprofilewizardopenvpnpagecontent->UseHttpProxyCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useHttpProxyToggeled ( bool ) ) ); QStringList ciphers = Utils ( GlobalConfig ).getOpenvpnCiphers(); QStringList digests = Utils ( GlobalConfig ).getOpenvpnDigests(); for ( QStringList::Iterator it = ciphers.begin(); it != ciphers.end(); ++it ) { newprofilewizardopenvpnpagecontent->UserdefiniedCipherComboBox->insertItem ( *it ); } for ( QStringList::Iterator it = digests.begin(); it != digests.end(); ++it ) { newprofilewizardopenvpnauthpagecontent->UserdefiniedDigestComboBox->insertItem ( *it ); } // pptp newprofilewizardpptppage = new QHBox ( 0 ); // newprofilewizardpptppage->setSpacing(8); QLabel *setupPixmapContent9 = new QLabel ( newprofilewizardpptppage ); setupPixmapContent9->setPixmap ( *SetupPixmap ); setupPixmapContent9->resize ( setupPixmapContent9->sizeHint() ); newprofilewizardpptppagecontent = new NewProfileWizardPptp ( newprofilewizardpptppage ); newprofilewizardpptppage->sizeHint(); newprofilewizardpptppagecontent->DnsServerLineedit->setEnabled ( false ); newprofilewizardpptppagecontent->RequireMppeCheckbox->setChecked( profileData->getRequireMppe() ); newprofilewizardpptppagecontent->Refuse128BitEncryptionCheckbox->setChecked( profileData->getRefuse128BitEncryption() ); newprofilewizardpptppagecontent->Refuse40BitEncryptionCheckbox->setChecked( profileData->getRefuse40BitEncryption() ); newprofilewizardpptppagecontent->UseNoMPPECompressionCheckbox->setChecked( profileData->getDisableMPPEComp() ); newprofilewizardpptppagecontent->DnsServerCheckbox->setChecked( profileData->getUseDnsUpdate() ); newprofilewizardpptppagecontent->DnsServerCheckbox->setChecked( profileData->getUseDnsServer() ); newprofilewizardpptppagecontent->DnsServerLineedit->setText( profileData->getDnsServer() ); newprofilewizardpptppagecontent->UseNoBsdCompCheckbox->setChecked( profileData->getUseNoBsdComp() ); newprofilewizardpptppagecontent->UseNoDeflateCheckbox->setChecked( profileData->getUseNoDeflate() ); newprofilewizardpptppagecontent->AllowStatefulModeCheckbox->setChecked( profileData->getAllowStatefulMode() ); newprofilewizardpptppagecontent->UseNoIpDefaultCheckbox->setChecked( profileData->getUseNoIpDefault() ); newprofilewizardpptppagecontent->DisableCcpCheckbox->setChecked( profileData->getDisableCcp() ); newprofilewizardpptppagecontent->DisableHeaderCompressionCheckbox->setChecked(profileData->getDisableHeaderCompression()); newprofilewizardpptppagecontent->DisableMagicNumberNegotiationCheckbox->setChecked(profileData->getDisableMagicNumberNegotiation()); newprofilewizardpptppagecontent->DisableIpxCheckbox->setChecked(profileData->getDisableIpx()); newprofilewizardpptppagecontent->DisableAdressControlCompressionCheckbox->setChecked(profileData->getDisableAdressControlCompression()); newprofilewizardpptppagecontent->DisableProtocolFieldCompressionCheckbox->setChecked(profileData->getDisableProtocolFieldCompression()); newprofilewizardpptppagecontent->AuthMethodComboBox->insertItem ( "chap" ); newprofilewizardpptppagecontent->AuthMethodComboBox->insertItem ( "pap" ); newprofilewizardpptppagecontent->AuthMethodComboBox->insertItem ( "mschap" ); newprofilewizardpptppagecontent->AuthMethodComboBox->insertItem ( "mschap-v2" ); connect( newprofilewizardpptppagecontent->DnsServerCheckbox, SIGNAL( toggled(bool) ), this, SLOT( useDnsServerToggled(bool) ) ); connect( newprofilewizardpptppagecontent->UseSearchDomainInResolvConfCheckbox, SIGNAL( toggled(bool) ), this, SLOT( useSearchDomainInResolvConfToggled(bool) ) ); connect( newprofilewizardpptppagecontent->UseDomainInResolvConfCheckbox, SIGNAL( toggled(bool) ), this, SLOT( useDomainInResolvConfToggled(bool) ) ); // vtun newprofilewizardvtunpage = new QHBox ( 0 ); // newprofilewizardvtunpage->setSpacing(8); QLabel *setupPixmapContent19 = new QLabel ( newprofilewizardvtunpage ); setupPixmapContent19->setPixmap ( *SetupPixmap ); setupPixmapContent19->resize ( setupPixmapContent19->sizeHint() ); newprofilewizardvtunpagecontent = new ProfileVtunOptions ( newprofilewizardvtunpage ); newprofilewizardvtunpage->sizeHint(); connect ( newprofilewizardvtunpagecontent->PortCheckbox, SIGNAL ( toggled ( bool ) ), this, SLOT ( usePortToggled ( bool ) ) ); // ssh newprofilewizardsshpage = new QHBox ( 0 ); // newprofilewizardsshpage->setSpacing(8); QLabel *setupPixmapContent191 = new QLabel ( newprofilewizardsshpage ); setupPixmapContent191->setPixmap ( *SetupPixmap ); setupPixmapContent191->resize ( setupPixmapContent191->sizeHint() ); newprofilewizardsshpagecontent = new ProfileSshOptions ( newprofilewizardsshpage ); newprofilewizardsshpage->sizeHint(); QString Home= QString(getenv("HOME")); if (!Home.isEmpty()) { QDir dir( Home+"/.ssh" ); QStringList KeyFiles = dir.entryList( "*" ); //if (GlobalConfig->KvpncDebugLevel > 2) //{ // GlobalConfig->appendLogEntry(i18n("SSH files: %1").arg(KeyFiles.join(",")),GlobalConfig->debug); //} if (KeyFiles.size() > 1) { for ( QStringList::Iterator it = KeyFiles.begin(); it != KeyFiles.end(); ++it ) { QString item = QString(*it); if (GlobalConfig->KvpncDebugLevel > 2) { //GlobalConfig->appendLogEntry(i18n("processing entry: %1").arg(item),GlobalConfig->debug); } if (!item.contains (".pub", false) && !item.contains ("authorized_keys", false) && !item.contains ("known_hosts", false) && !item.contains (".", false) && !item.contains ("..", false) && !item.contains ("config", false) ) { if (GlobalConfig->KvpncDebugLevel > 2) { GlobalConfig->appendLogEntry(i18n("SSH key found: %1").arg(*it),GlobalConfig->debug); } newprofilewizardsshpagecontent->SshKeyComboBox->insertItem(*it); } } } } newprofilewizardauthselectionpage = new QHBox ( 0 ); // newprofilewizardauthselectionpage->setSpacing(8); QLabel *setupPixmapContent81 = new QLabel ( newprofilewizardauthselectionpage ); setupPixmapContent81->setPixmap ( *SetupPixmap ); setupPixmapContent81->resize ( setupPixmapContent81->sizeHint() ); newprofilewizardauthselectioncontent = new NewProfileWizardAuthSelection ( newprofilewizardauthselectionpage ); newprofilewizardauthselectionpage->sizeHint(); newprofilewizardauthselectioncontent->CertificateRadioButton->setChecked ( true ); newprofilewizardauthselectioncontent->HybridRadioButton->hide (); // virtual ip newprofilewizardvirtualipaddresspage = new QHBox ( 0 ); QLabel *setupPixmapContent_virtualip = new QLabel ( newprofilewizardvirtualipaddresspage ); setupPixmapContent_virtualip->setPixmap ( *SetupPixmap ); setupPixmapContent_virtualip->resize ( setupPixmapContent_virtualip->sizeHint() ); profilenetworkvirtualipoptionscontent = new ProfileNetworkVirtualIpOptions ( newprofilewizardvirtualipaddresspage ); newprofilewizardvirtualipaddresspage->sizeHint(); insertPage ( newprofilewizardvirtualipaddresspage, "" + i18n ( "Virtual IP address options" ) + "",-1 ); connect ( profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useVirtualIpAddressToggled ( bool ) ) ); // psk newprofilewizardpskpage = new QHBox ( 0 ); // newprofilewizardpskpage->setSpacing(8); QLabel *setupPixmapContent72 = new QLabel ( newprofilewizardpskpage ); setupPixmapContent72->setPixmap ( *SetupPixmap ); setupPixmapContent72->resize ( setupPixmapContent72->sizeHint() ); newprofilewizardpskcontent = new NewProfileWizardPsk ( newprofilewizardpskpage ); newprofilewizardpskpage->sizeHint(); connect ( newprofilewizardpskcontent->PskInFileCheckBox , SIGNAL ( toggled ( bool ) ), this, SLOT ( pskIsInFileToggled ( bool ) ) ); connect ( newprofilewizardpskcontent->PSKLineEdit , SIGNAL ( textChanged ( const QString & ) ), this, SLOT ( pskInputToggled ( const QString& ) ) ); newprofilewizardp12certselectionpage = new QHBox ( 0 ); // newprofilewizardp12certselectionpage->setSpacing(8); QLabel *setupPixmapContent74 = new QLabel ( newprofilewizardp12certselectionpage ); setupPixmapContent74->setPixmap ( *SetupPixmap ); setupPixmapContent74->resize ( setupPixmapContent74->sizeHint() ); newprofilewizardp12certselectioncontent = new NewProfileWizardP12CertSelection ( newprofilewizardp12certselectionpage ); newprofilewizardp12certselectionpage->sizeHint(); connect ( newprofilewizardp12certselectioncontent->UseSmartcardCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useSmartcardOnCertFormateToggled ( bool ) ) ); // cert newprofilewizardcertpage = new QHBox ( 0 ); // newprofilewizardcertpage->setSpacing(8); QLabel *setupPixmapContent73 = new QLabel ( newprofilewizardcertpage ); setupPixmapContent73->setPixmap ( *SetupPixmap ); setupPixmapContent73->resize ( setupPixmapContent73->sizeHint() ); newprofilewizardcertcontent = new NewProfileWizardCert ( newprofilewizardcertpage ); newprofilewizardcertpage->sizeHint(); connect ( newprofilewizardcertcontent->UseSpecialServerCertificateCheckBox , SIGNAL ( toggled ( bool ) ), this, SLOT ( useSpecialServerCertificateToggled ( bool ) ) ); connect ( newprofilewizardcertcontent->UseSmartcardCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useSmartcardToggled ( bool ) ) ); connect ( newprofilewizardcertcontent->UsePkcs11ProvidersCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( usePkcs11ProvidersToggled ( bool ) ) ); connect ( newprofilewizardcertcontent->DetectPkcs11SlotsPushButton, SIGNAL ( clicked() ), this, SLOT ( detectPkcs11Slots() ) ); connect ( newprofilewizardcertcontent->DetectPkcs11IdPushButton, SIGNAL ( clicked() ), this, SLOT ( detectPkcs11Ids() ) ); newprofilewizardcertcontent->Pkcs11SlotTypeComboBox->setEnabled ( false ); newprofilewizardcertcontent->Pkcs11SlotTypeLabel->setEnabled ( false ); newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->setURL ( QString ( "/usr/local/lib/libetpkcs11.so" ) ); // user newprofilewizarduserpage = new QHBox ( 0 ); // newprofilewizarduserpage->setSpacing(8); QLabel *setupPixmapContent75 = new QLabel ( newprofilewizarduserpage ); setupPixmapContent75->setPixmap ( *SetupPixmap ); setupPixmapContent75->resize ( setupPixmapContent75->sizeHint() ); newprofilewizarduserpagecontent = new NewProfileWizardUser ( newprofilewizarduserpage ); newprofilewizarduserpage->sizeHint(); connect ( newprofilewizarduserpagecontent->PasswordEdit , SIGNAL ( textChanged ( const QString& ) ), this, SLOT ( userpassToggled ( const QString& ) ) ); connect ( newprofilewizarduserpagecontent->UsernameLineEdit , SIGNAL ( textChanged ( const QString& ) ), this, SLOT ( usernameToggled ( const QString& ) ) ); connect ( newprofilewizarduserpagecontent->NtDomainNameCheckbox, SIGNAL ( toggled ( bool ) ), this, SLOT ( domainNameToggled ( bool ) ) ); newprofilewizarduserpagecontent ->NtDomainNameCheckbox->setEnabled ( true ); newprofilewizarduserpagecontent ->NtDomainNameCheckbox->hide(); newprofilewizarduserpagecontent ->NtDomainNameLineedit->hide(); // network newprofilewizardnetworkpage = new QHBox ( 0 ); // newprofilewizardnetworkpage->setSpacing(8); QLabel *setupPixmapContent76 = new QLabel ( newprofilewizardnetworkpage ); setupPixmapContent76->setPixmap ( *SetupPixmap ); setupPixmapContent76->resize ( setupPixmapContent76->sizeHint() ); newprofilewizardnetworkcontent = new NewProfileWizardNetwork ( newprofilewizardnetworkpage ); newprofilewizardnetworkpage->sizeHint(); newprofilewizardnetworkcontent->NetworkDeviceComboBox->insertItem ( "default" ); NetworkInterface iface ( GlobalConfig, GlobalConfig->appPointer ); QStringList list = iface.getAllNetworkInterfaces(); for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) newprofilewizardnetworkcontent->NetworkDeviceComboBox->insertItem ( QString ( *it ) ); newprofilewizardnetworkcontent->MtuSpinbox->hide(); newprofilewizardnetworkcontent->MtuCheckbox->hide(); newprofilewizardnetworkcontent->MruSpinbox->hide(); newprofilewizardnetworkcontent->MruCheckbox->hide(); newprofilewizardnetworkcontent->TunnelDeviceTypeLabel->hide(); newprofilewizardnetworkcontent->TunnelDeviceTypeComboBox->hide(); newprofilewizardnetworkcontent->TunnelDeviceTypeComboBox->insertItem("tun"); newprofilewizardnetworkcontent->TunnelDeviceTypeComboBox->insertItem("tap"); connect ( newprofilewizardnetworkcontent->MtuCheckbox, SIGNAL ( toggled ( bool ) ), this, SLOT ( mtuToggled ( bool ) ) ); connect ( newprofilewizardnetworkcontent->MtuCheckbox, SIGNAL ( toggled ( bool ) ), this, SLOT ( mtuToggled ( bool ) ) ); connect ( newprofilewizardnetworkcontent->UseRemoteNetworkCheckBox, SIGNAL ( toggled ( bool ) ) , this, SLOT( useRemoteNetworkToggled (bool ))); connect ( newprofilewizardnetworkcontent->TunnelDeviceTypeComboBox, SIGNAL(activated ( const QString & )),this, SLOT(tunnelDeviceTypeChanged(const QString& ))); // network routes newprofilewizardnetworkroutepage = new QHBox ( 0 ); // newprofilewizardnetworkroutepage->setSpacing(8); QLabel *setupPixmapContent761 = new QLabel ( newprofilewizardnetworkroutepage ); setupPixmapContent761->setPixmap ( *SetupPixmap ); setupPixmapContent761->resize ( setupPixmapContent761->sizeHint() ); newprofilewizardnetworkroutecontent = new ProfileNetworkRouteOptions ( newprofilewizardnetworkroutepage ); newprofilewizardnetworkroutepage->sizeHint(); connect(newprofilewizardnetworkroutecontent->DefaultRouteComboBox, SIGNAL(activated(const QString&)), this, SLOT(defaultRouteToggled(const QString&))); newprofilewizardnetworkroutecontent->DefaultRouteComboBox->setCurrentItem(1); // nat newprofilewizardnatpage = new QHBox ( 0 ); // newprofilewizardnatpage->setSpacing(8); QLabel *setupPixmapContent77 = new QLabel ( newprofilewizardnatpage ); setupPixmapContent77->setPixmap ( *SetupPixmap ); setupPixmapContent77->resize ( setupPixmapContent77->sizeHint() ); newprofilewizardnatcontent = new NewProfileWizardNat ( newprofilewizardnatpage ); newprofilewizardnatpage->sizeHint(); newprofilewizardnatcontent->UseUdpCheckbox->setChecked ( true ); newprofilewizardnatcontent->UseNatCheckbox->setChecked ( true ); connect ( newprofilewizardnatcontent->UseNatCheckbox, SIGNAL ( toggled ( bool ) ), this, SLOT ( useNatToggled ( bool ) ) ); connect ( newprofilewizardnatcontent->UdpPortCheckbox, SIGNAL ( toggled ( bool ) ), this, SLOT ( udpPortToggled ( bool ) ) ); useNatToggled(true); // connectionstatuscheck newprofilewizardconnectionstatuscheckpage = new QHBox ( 0 ); // newprofilewizardconnectionstatuscheckpage->setSpacing(8); QLabel *setupPixmapContent79 = new QLabel ( newprofilewizardconnectionstatuscheckpage ); setupPixmapContent79->setPixmap ( *SetupPixmap ); setupPixmapContent79->resize ( setupPixmapContent79->sizeHint() ); newprofilewizardconnectionstatuscheckcontent = new NewProfileWizardConnectionStatusCheck ( newprofilewizardconnectionstatuscheckpage ); newprofilewizardconnectionstatuscheckpage->sizeHint(); insertPage ( newprofilewizardconnectionstatuscheckpage, "" + i18n ( "Connection status check" ) + "", -1 ); connect ( newprofilewizardconnectionstatuscheckcontent->PingUserdefiniedAddressCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( pingIpAfterConnectToggled ( bool ) ) ); connect ( newprofilewizardconnectionstatuscheckcontent->UseConnectionStatusCheckCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( connectionStatusCheckToggled ( bool ) ) ); // connectoptions newprofilewizardconnectoptionspage = new QHBox ( 0 ); // newprofilewizardconnectoptionspage->setSpacing(8); QLabel *setupPixmapContent80 = new QLabel ( newprofilewizardconnectoptionspage ); setupPixmapContent80->setPixmap ( *SetupPixmap ); setupPixmapContent80->resize ( setupPixmapContent80->sizeHint() ); newprofilewizardconnectoptionscontent = new NewProfileWizardConnectOptions ( newprofilewizardconnectoptionspage ); newprofilewizardconnectoptionspage->sizeHint(); newprofilewizardconnectoptionscontent->DoAutoConnectCheckBox->hide(); //TODO later newprofilewizardconnectoptionscontent->AutoConnectProfileComboBox->hide(); //TODO_ later insertPage ( newprofilewizardconnectoptionspage, "" + i18n ( "Connect options" ) + "", -1 ); // general newprofilewizardgeneralpage = new QHBox ( 0 ); // newprofilewizardgeneralpage->setSpacing(8); QLabel *setupPixmapContent78 = new QLabel ( newprofilewizardgeneralpage ); setupPixmapContent78->setPixmap ( *SetupPixmap ); setupPixmapContent78->resize ( setupPixmapContent78->sizeHint() ); newprofilewizardgeneralpagecontent = new NewProfileWizardGeneral ( newprofilewizardgeneralpage ); newprofilewizardgeneralpage->sizeHint(); insertPage ( newprofilewizardgeneralpage, "" + i18n ( "General settings" ) + "", -1 ); // setup end page endpage = new QHBox ( 0 ); // endpage->setSpacing(8); QLabel *setupPixmapContent11 = new QLabel ( endpage ); setupPixmapContent11->setPixmap ( *SetupPixmapFinal ); setupPixmapContent11->resize ( setupPixmapContent11->sizeHint() ); QLabel *endpagecontent = new QLabel ( endpage ); endpagecontent->setMargin ( 11 ); endpagecontent->setText ( i18n ( "Now you have completed all steps for creating a new profile.\nClick \"Finish\" to continue." ) ); endpagecontent->setMaximumSize ( endpagecontent->sizeHint() ); endpage->sizeHint(); insertPage ( endpage, "" + i18n ( "Finish" ) + "", -1 ); // last page } void NewProfileWizard::next () { // called at each finish of a page bool ok = true; QString msg = i18n ( "Please fill in all fields!" ); if ( currentpage == page1 ) { // nothing here } else if ( currentpage == newprofilewizardgeneralpage ) { msg = i18n ( "These fields must be filled in:\n" ); if ( newprofilewizardgeneralpagecontent->NameLineEdit->text().isEmpty() ) { msg += "- " + i18n ( "Name" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Name is empty!" ), GlobalConfig->error ); } else { QString Name = newprofilewizardgeneralpagecontent->NameLineEdit->text(); bool nameOk = true; if ( Name.contains ( ' ' ) ) { KMessageBox::error ( this, i18n ( "Profile name can not contain spaces!" ), i18n ( "Spaces Not Allowed" ) ); GlobalConfig->appendLogEntry ( i18n ( "Profile name can not contain spaces!" ) , GlobalConfig->error ); msg += "- " + i18n ( "Name" ) + "\n"; nameOk = FALSE; ok = false; } if ( Name.isEmpty() ) { KMessageBox::error ( this, i18n ( "Profile name can not be empty!" ), i18n ( "No Name Entered" ) ); GlobalConfig->appendLogEntry ( i18n ( "Profile name can not be empty!" ) , GlobalConfig->error ); msg += "- " + i18n ( "Name" ) + "\n"; nameOk = FALSE; ok = false; } VpnAccountData * it; while ( nameOk == false ) { for ( it = GlobalConfig->AccountList->first(); it; it = GlobalConfig->AccountList->next() ) { if ( it->getName() == Name ) { //account->setName( QString( account->getName() + "_2" ) ); // KMessageBox::information ( this, i18n( "Profile name exists!\n It will be renamed to \"%1\"." ).arg( account->getName() ), i18n( "Name exist, renamed" ) ); KMessageBox::error ( this, i18n ( "Profile name exists!" ), i18n ( "Name Exists" ) ); QString newName = KInputDialog::getText ( i18n ( "New Name" ), i18n ( "New name for profile:" ), QString ( Name += "_2" ), &ok ); if ( !Name.isEmpty() ) { nameOk = true; break; } } nameOk = true; } nameOk = true; } if ( nameOk ) { profileData->setName ( Name ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Profile name: %1" ).arg ( profileData->getName() ), KVpncConfig::debug ); newProfileCreated = TRUE; } else { return ; } } if ( newprofilewizardgeneralpagecontent->gatewayLineEdit->text().isEmpty() ) { ok = false; msg += "- " + i18n ( "Gateway" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Gateway is empty!" ), GlobalConfig->error ); } else { profileData->setGateway ( newprofilewizardgeneralpagecontent->gatewayLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Gateway: %1" ).arg ( newprofilewizardgeneralpagecontent->gatewayLineEdit->text() ), KVpncConfig::debug ); } profileData->setDescription ( newprofilewizardgeneralpagecontent->DescriptionLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Description: %1" ).arg ( newprofilewizardgeneralpagecontent->DescriptionLineEdit->text() ), KVpncConfig::debug ); } else if ( currentpage == newprofilewizardtypeselectionpage ) { if ( newprofilewizardtypeselectionpagecontent->CiscoRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::cisco ); removePage ( newprofilewizardcertpage ); removePage ( newprofilewizardpskpage ); removePage ( newprofilewizardp12certselectionpage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); removePage ( newprofilewizardracoonpage ); removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnselectionpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardvirtualipaddresspage ); newprofilewizardnetworkcontent->RemoteNetworkGroupBox->hide(); // newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); // newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); // newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); // newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); // newprofilewizardp12certselectioncontent->UseSmartcardCheckBox->hide(); newprofilewizarduserpagecontent ->NtDomainNameCheckbox->show(); newprofilewizarduserpagecontent ->NtDomainNameLineedit->show(); insertPage ( newprofilewizardciscoselectionpage, "" + i18n ( "Cisco selection" ) + "", indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "Cisco (free)" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->CiscoVpncRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::ciscoorig ); // removePage ( newprofilewizardcertpage ); removePage ( newprofilewizardpskpage ); removePage ( newprofilewizardp12certselectionpage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); removePage ( newprofilewizardracoonpage ); removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnselectionpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardvirtualipaddresspage ); newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); newprofilewizardp12certselectioncontent->UseSmartcardCheckBox->hide(); newprofilewizarduserpagecontent ->NtDomainNameCheckbox->show(); newprofilewizarduserpagecontent ->NtDomainNameLineedit->show(); insertPage ( newprofilewizardciscoselectionpage, "" + i18n ( "Cisco selection" ) + "", indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "Cisco (propritary)" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->FreeswanRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::freeswan ); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnselectionpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardvirtualipaddresspage ); insertPage ( newprofilewizardfreeswanpage, "" + i18n ( "FreeSWAN/OpenSWAN settings" ) + "", indexOf ( currentpage ) + 1 ); newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->insertItem ( "main", 0 ); newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->insertItem ( "aggressive", 1 ); newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->setCurrentItem ( 0 ); // main newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->setEnabled ( true ); newprofilewizardfreeswanpagecontent->IpsecVpnModeCombobox->setCurrentItem(1); // tunnel newprofilewizardcertcontent->certpathURLRequester->setURL ( "/etc/ipsec.d/cacerts" ); newprofilewizardcertcontent->Pkcs11IdTypeComboBox->setEnabled ( false ); newprofilewizardcertcontent->Pkcs11IdTypeComboBox->setCurrentText ( i18n ( "ID" ) ); // profileData->setIkeGroup ( "modp2048" ); // default for windows?! // profileData->setAuthenticationAlgorithm ( "hmac_md5" ); // default for windows?! // profileData->setHashAlgo ( "sha1" ); // default for windows?! // newprofilewizardfreeswanpagecontent->InfoLabel->setText ( i18n ( "Please enter %1 specific settings:" ).arg ( "FreeS/WAN/Openswan/strongSwan" ) ); insertPage ( newprofilewizardfreeswanselectionpage, "" + i18n ( "IPSec selection" ) + "", indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "FreeS/WAN/Openswan/strongSwan" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->RacoonRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::racoon ); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnselectionpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardvirtualipaddresspage ); // profileData->setIkeGroup ( "modp2048" ); // default for windows?! // profileData->setHashAlgo ( "sha1" ); // default for windows?! // profileData->setAuthenticationAlgorithm ( "hmac_md5" ); profileData->setUseMailAddressAsIdentifier ( false ); // newprofilewizardracoonpagecontent->DHGroupComboBox->setCurrentText ( profileData->getIkeGroup() ); // newprofilewizardracoonpagecontent->AuthenticationAlgorithmComboBox->setCurrentText ( profileData->getAuthenticationAlgorithm() ); // newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->setCurrentText ( profileData->getEncryptionAlgorithm() ); Utils::IpsecAlgos KernelCrypto = Utils ( GlobalConfig ).getKernelCrypto(); // man racoon.conf newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("3des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("blowfish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("cast128" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("aes" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("camellia" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->setCurrentText("3des"); // man racoon.conf newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "md5" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha1" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha256" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha384" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha512" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->setCurrentText("md5"); // vpn mit linux book newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("3des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("des_iv64" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("des_iv32" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("rc5" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("rc4" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("idea" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("3idea" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("cast128" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("blowfish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("null_enc" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("twofish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("rijndael" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem("aes" ); newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->setCurrentText("3des"); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "3des" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des_iv64" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des_iv32" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_md5" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha1" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha256" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha384" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha512" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "non_auth" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->setCurrentText( "hmac_md5" ); for ( QStringList::Iterator it = KernelCrypto.IpsecEspEncryptionAlgorithms.begin(); it != KernelCrypto.IpsecEspEncryptionAlgorithms.end(); ++it ) { newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem ( *it ); } newprofilewizardcertcontent->UseSmartcardCheckBox->hide(); newprofilewizardcertcontent->SmartcardGroupBox->hide(); newprofilewizardp12certselectioncontent->UseSmartcardCheckBox->hide(); insertPage ( newprofilewizardauthselectionpage, i18n ( "Authentication settings" ), indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardracoonpage, "" + i18n ( "Racoon settings" ) + "", indexOf ( currentpage ) + 2 ); newprofilewizardauthselectioncontent->HybridRadioButton->show(); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "Racoon" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->L2tpRacoonRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::l2tpd_racoon ); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnselectionpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardnetworkpage ); removePage ( newprofilewizardvirtualipaddresspage ); profileData->setUseMailAddressAsIdentifier ( false ); // profileData->setIkeGroup ( "modp2048" ); // default for windows?! // profileData->setHashAlgo ( "sha1" ); // default for windows?! // profileData->setAuthenticationAlgorithm ( "hmac_md5" ); // default for windows? Utils::IpsecAlgos KernelCrypto = Utils ( GlobalConfig ).getKernelCrypto(); //FIXME why this is not in kernel crypto list??? // newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem ( "3des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("des" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("des_iv64" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("des_iv32" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("rc5" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("rc4" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("idea" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("3idea" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("cast128" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("blowfish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("null_enc" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("twofish" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("rijndael" ); newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem("aes" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "md5" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha1" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha256" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha384" ); newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem( "sha512" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "3des" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des_iv64" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "des_iv32" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_md5" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha1" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha256" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha384" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "hmac_sha512" ); newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem( "non_auth" ); // for ( QStringList::Iterator it = KernelCrypto.IpsecIkeEncryptionAlgorithms.begin(); it != KernelCrypto.IpsecIkeEncryptionAlgorithms.end(); ++it ) // { // newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->insertItem ( *it ); // } // // for ( QStringList::Iterator it = KernelCrypto.IpsecIkeHashAlgorithms.begin(); it != KernelCrypto.IpsecIkeHashAlgorithms.end(); ++it ) // { // newprofilewizardracoonpagecontent->HashAlgoComboBox->insertItem ( *it ); // } for ( QStringList::Iterator it = KernelCrypto.IpsecEspEncryptionAlgorithms.begin(); it != KernelCrypto.IpsecEspEncryptionAlgorithms.end(); ++it ) { newprofilewizardracoonpagecontent->EncryptionAlgorithm2ComboBox->insertItem ( *it ); } // for ( QStringList::Iterator it = KernelCrypto.IpsecEspAuthenticationAlgorithms.begin(); it != KernelCrypto.IpsecEspAuthenticationAlgorithms.end(); ++it ) // { // newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->insertItem ( *it ); // } insertPage ( newprofilewizardracoonpage, "" + i18n ( "Racoon settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardauthselectionpage, i18n ( "Authentication settings" ), indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 3 ); newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); newprofilewizarduserpagecontent ->NtDomainNameCheckbox->show(); newprofilewizarduserpagecontent ->NtDomainNameLineedit->show(); newprofilewizardcertcontent->UseSmartcardCheckBox->hide(); newprofilewizardcertcontent->SmartcardGroupBox->hide(); newprofilewizardp12certselectioncontent->UseSmartcardCheckBox->hide(); newprofilewizardcertcontent->certpathURLRequester->setURL ( "/etc/racoon/" ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "L2TP (racoon)" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->L2tpFreeswanRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::l2tpd_freeswan ); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnselectionpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardnetworkpage ); removePage ( newprofilewizardvirtualipaddresspage ); profileData->setUseMailAddressAsIdentifier ( false ); newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->insertItem ( "main", 0 ); newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->insertItem ( "aggressive", 1 ); newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->setCurrentItem ( 0 ); // main newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->setEnabled ( true ); newprofilewizardfreeswanpagecontent->IpsecVpnModeCombobox->setCurrentItem(1); // transport newprofilewizardfreeswanpagecontent->IpsecVpnModeCombobox->setEnabled(false); newprofilewizarduserpagecontent ->NtDomainNameCheckbox->show(); newprofilewizarduserpagecontent ->NtDomainNameLineedit->show(); newprofilewizardcertcontent->Pkcs11IdTypeComboBox->setEnabled ( false ); newprofilewizardcertcontent->Pkcs11IdTypeComboBox->setCurrentText ( i18n ( "ID" ) ); newprofilewizardauthselectioncontent->CertificateRadioButton->setText ( i18n ( "&Certificate/Smartcard" ) ); newprofilewizardcertcontent->certpathURLRequester->setURL ( "/etc/ipsec.d/cacerts" ); // newprofilewizardfreeswanpagecontent->InfoLabel->setText ( i18n ( "Please enter %1 specific settings:" ).arg ( "FreeS/WAN/Openswan/strongSwan" ) ); insertPage ( newprofilewizardfreeswanselectionpage, "" + i18n ( "IPSec selection" ) + "", indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "L2TP (OpenS/WAN)" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->OpenvpnRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::openvpn ); profileData->setLocalPort ( 1194 ); profileData->setRemotePort ( 1194 ); profileData->setUserdefinedPort ( 1194 ); profileData->setUseSmartcard ( false ); profileData->setCertPath ( "/etc/openvpn" ); profileData->setHashAlgo ( "SHA1" ); profileData->setAuthenticationAlgorithm ( "MD5" ); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardracoonpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); newprofilewizardcertcontent->UseSmartcardCheckBox->show(); newprofilewizardcertcontent->SmartcardGroupBox->show(); newprofilewizardp12certselectioncontent->UseSmartcardCheckBox->show(); newprofilewizardauthselectioncontent->CertificateRadioButton->setText ( i18n ( "&Certificate/Smartcard" ) ); newprofilewizardcertcontent->certpathURLRequester->setURL ( "/etc/openvpn" ); profilenetworkvirtualipoptionscontent->SourceIpgroupBox->hide(); insertPage ( newprofilewizardopenvpnauthpage, "" + i18n ( "OpenVPN authentication settings" ) + "", indexOf ( currentpage ) + 1 ); connect ( newprofilewizardopenvpnauthpagecontent->AuthWithUsernameAndPasswordCheckBox, SIGNAL ( toggled ( bool ) ), this, SLOT ( authenticateWithUsernameAndPasswordToggled ( bool ) ) ); newprofilewizardopenvpnauthpagecontent->UserdefiniedDigestComboBox->setCurrentText ( "SHA1" ); insertPage ( newprofilewizardopenvpnselectionpage, "" + i18n ( "OpenVPN selection" ) + "", indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "OpenVPN" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->PptpRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::pptp ); profileData->setUseMtu ( false ); profileData->setUseMru ( false ); profileData->setMtu ( 1500 ); profileData->setMru ( 1500 ); newprofilewizardnetworkcontent->MtuSpinbox->show(); newprofilewizardnetworkcontent->MtuCheckbox->show(); newprofilewizardnetworkcontent->MruSpinbox->show(); newprofilewizardnetworkcontent->MruCheckbox->show(); newprofilewizardnetworkcontent->MtuSpinbox->setValue ( profileData->getMtu() ); newprofilewizardnetworkcontent->MruSpinbox->setValue ( profileData->getMru() ); newprofilewizardnetworkcontent->MtuSpinbox->setEnabled ( false ); newprofilewizardnetworkcontent->MruSpinbox->setEnabled ( false ); newprofilewizardnetworkcontent->MtuCheckbox->setChecked ( false ); newprofilewizardnetworkcontent->MruCheckbox->setChecked ( false ); newprofilewizardpptppagecontent->AuthMethodComboBox->setCurrentText ( profileData->getAuthMethod() ); newprofilewizardpptppagecontent->L2tpDaemonComboBox->hide(); newprofilewizardpptppagecontent->L2tpdDaemonLabel->hide(); newprofilewizardpptppagecontent->AuthGroupBox->hide(); newprofilewizardpptppagecontent->UseNoDeflateCheckbox->setChecked( ! profileData->getUseNoDeflate()); newprofilewizardpptppagecontent->UseNoBsdCompCheckbox->setChecked( ! profileData->getUseNoBsdComp()); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardcertpage ); removePage ( newprofilewizardpskpage ); removePage ( newprofilewizardp12certselectionpage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); removePage ( newprofilewizardracoonpage ); removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnselectionpage ); insertPage ( newprofilewizardpptppage, "" + i18n ( "PPTP settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 3 ); newprofilewizarduserpagecontent ->NtDomainNameCheckbox->show(); newprofilewizarduserpagecontent ->NtDomainNameLineedit->show(); newprofilewizardcertcontent->UseSmartcardCheckBox->hide(); newprofilewizardcertcontent->SmartcardGroupBox->hide(); profilenetworkvirtualipoptionscontent->SourceIpgroupBox->hide(); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "PPTP" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->VtunRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::vtun ); profileData->setLocalPort ( 5000 ); profileData->setRemotePort ( 5000 ); profileData->setUserdefinedPort ( 5000 ); profileData->setUseSmartcard ( false ); // profileData->setCertPath( "/etc/openvpn" ); // profileData->setHashAlgo("SHA1"); // profileData->setAuthenticationAlgorithm("MD5"); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardracoonpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); removePage ( newprofilewizardopenvpnpage ); newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); insertPage ( newprofilewizardvtunpage, "" + i18n ( "Vtun options" ) + "",2 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 3 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 4 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "Vtun" ), KVpncConfig::debug ); } else if ( newprofilewizardtypeselectionpagecontent->SshRadioButton->isChecked() ) { profileData->setConnectionType ( VpnAccountData::ssh ); profileData->setRemotePort ( 22 ); profileData->setUseSmartcard ( false ); profileData->setTunnelDeviceType("tun"); removePage ( newprofilewizardvtunpage); removePage ( newprofilewizardciscoselectionpage ); removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardracoonpage ); removePage ( newprofilewizardpptppage ); removePage ( newprofilewizardfreeswanpage ); removePage ( newprofilewizardfreeswanselectionpage ); removePage ( newprofilewizardopenvpnpage ); newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); profilenetworkvirtualipoptionscontent->SourceIpgroupBox->hide(); newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); newprofilewizardnetworkcontent->UseRemoteNetworkCheckBox->hide(); newprofilewizardnetworkcontent->RemoteNetworkGroupBox->hide(); newprofilewizardnetworkcontent->TunnelDeviceTypeLabel->show(); newprofilewizardnetworkcontent->TunnelDeviceTypeComboBox->show(); newprofilewizardnetworkcontent->TunnelDeviceTypeLabel->setEnabled(true); newprofilewizardnetworkcontent->TunnelDeviceTypeComboBox->setEnabled(true); profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->setChecked(true); newprofilewizarduserpagecontent->UsernameLineEdit->setText("root"); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardsshpage, "" + i18n ( "SSH options" ) + "",2 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 3 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 4 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Selected type: %1" ).arg ( "SSH" ), KVpncConfig::debug ); } QString type = ""; // visible name QString bin = ""; // executable name if ( profileData->getConnectionType() == VpnAccountData::cisco ) { type = "vpnc"; bin = "vpnc"; } else if ( profileData->getConnectionType() == VpnAccountData::freeswan ) { type = "freeswan"; bin = "ipsec"; } else if ( profileData->getConnectionType() == VpnAccountData::racoon ) { type = "racoon"; bin = "racoon"; } else if ( profileData->getConnectionType() == VpnAccountData::l2tpd_racoon ) { type = "L2TP (racoon)"; bin = "racoon"; } else if ( profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan ) { type = "L2TP (OpenSWAN)"; bin = "ipsec"; } else if ( profileData->getConnectionType() == VpnAccountData::pptp ) { type = "pptp"; bin = "pppd pptp"; } else if ( profileData->getConnectionType() == VpnAccountData::openvpn ) { type = "openvpn"; bin = "openvpn"; } else if ( profileData->getConnectionType() == VpnAccountData::vtun ) { type = "vtun"; bin = "vtund"; } else if ( profileData->getConnectionType() == VpnAccountData::ssh ) { type = "ssh"; bin = "ssh"; } else { type = "other"; bin = ""; } ToolInfo *it = 0; //std::cout << "Tool (bin): " << bin << std::endl; if ( !GlobalConfig->ToolList->isEmpty() ) { if ( type != "pptp" ) { it = Utils ( GlobalConfig ).getToolInfo ( bin ); if ( it != 0 ) { if ( it->PathToExec.section ( '/', -1 ) == bin ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "The required daemon (%1) is available, you will be able to use this connection." ).arg ( bin ), KVpncConfig::info ); daemonavailable = true; } else { KMessageBox::information ( this, i18n ( "The required daemon (%1) isn't available, you will not be able to use this connection until the daemon is not installed." ).arg ( bin ) ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "The required daemon (%1) isn't available, you will not be able to use this connection until the daemon is not installed." ).arg ( bin ), KVpncConfig::error ); daemonavailable = false; removePage ( newprofilewizardconnectoptionspage ); } } if ( type == "ipsec" ) { QString realversion = it->Version.section ( ' ', 1, 1 ).section ( '/', 0, 0 ).right ( it->Version.section ( ' ', 1, 1 ).section ( '/', 0, 0 ).length() - 1 ); QString realtype = it->Version.section ( ' ', 0, 0 ).lower(); if ( realversion.find ( "1.", 0, -1 ) > -1 ) { KMessageBox::information ( this, i18n ( "The required version (%1) of FreeSWAN/OpenSWAN was not found. You will not be able to use the Agressive Mode. It will be used the Main Mode." ).arg ( "2" ) ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "The required version (%1) of FreeSWAN/OpenSWAN was not found. You will not be able to use the Agressive Mode. It will be used the Main Mode." ).arg ( "2" ).arg ( bin ), KVpncConfig::error ); } } } else { bool pppd_and_pptp_available = false; it = Utils ( GlobalConfig ).getToolInfo ( "pppd" ); if ( it->PathToExec.section ( '/', -1 ) == "pppd" ) { it = Utils ( GlobalConfig ).getToolInfo ( "pptp" ); if ( it->PathToExec.section ( '/', -1 ) == "pptp" ) pppd_and_pptp_available = true; } if ( pppd_and_pptp_available ) { // programs are installed daemonavailable = true; if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "The required daemons (%1 and %2) are available." ).arg ( "pppd" ).arg ( "pptp" ), KVpncConfig::info ); } else { KMessageBox::information ( this, i18n ( "The required daemons (%1 and %2) aren't available, you will not be able to use this connection until the daemons are not installed." ).arg ( "pppd" ).arg ( "pptpd" ) ); GlobalConfig->appendLogEntry ( i18n ( "The required daemons (%1 and %2) are not available, connect will be disabled." ).arg ( "pppd" ).arg ( "pptpd" ), KVpncConfig::error ); daemonavailable = false; removePage ( newprofilewizardconnectoptionspage ); } } } } else if ( currentpage == newprofilewizardciscoselectionpage ) { if ( newprofilewizardciscoselectionpagecontent->PcfImportRadioButton->isChecked() ) { enterdatamanually = false; removePage ( newprofilewizardciscomanuallypage ); removePage ( newprofilewizardgeneralpage ); //insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Cisco selection: import PCF file" ), KVpncConfig::debug ); if ( profileData->getConnectionType() == VpnAccountData::cisco ) importProfile ( VpnAccountData::cisco ); if ( profileData->getConnectionType() == VpnAccountData::ciscoorig ) importProfile ( VpnAccountData::ciscoorig ); if ( importOK ) newProfileCreated = true; else newProfileCreated = false; } else { enterdatamanually = true; if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Cisco selection: enter data manually" ), KVpncConfig::debug ); if ( profileData->getConnectionType() == VpnAccountData::cisco ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Cisco selection: cisco" ), KVpncConfig::debug ); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardciscomanuallypage, "" + i18n ( "Cisco settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 3 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 4 ); } if ( profileData->getConnectionType() == VpnAccountData::ciscoorig ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Cisco selection: ciscoorig" ), KVpncConfig::debug ); insertPage ( newprofilewizardauthselectionpage, ""+ i18n ( "Authentication settings" ) +"", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 4 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 5 ); newprofilewizardauthselectioncontent->PskRadioButton->setChecked(true); } } } else if ( currentpage == newprofilewizardciscomanuallypage ) { msg = i18n ( "These fields must be filled in:\n" ); if ( newprofilewizardciscomanuallypagecontent->IDLineEdit->text().isEmpty() ) { ok = false; msg += "- " + i18n ( "Cisco IPSec ID" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Cisco IPSec ID is empty!" ), GlobalConfig->error ); } profileData->setGateway ( newprofilewizardciscomanuallypagecontent->IDLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Cisco IPSec ID: %1" ).arg ( newprofilewizardciscomanuallypagecontent->IDLineEdit->text() ), KVpncConfig::debug ); profileData->setAllowEmptyGroupPassword ( newprofilewizardciscomanuallypagecontent->AllowEmptyGroupPasswordCheckBox->isChecked() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) { if ( newprofilewizardciscomanuallypagecontent->AllowEmptyGroupPasswordCheckBox->isChecked() ) GlobalConfig->appendLogEntry ( i18n ( "Allow empty group password: true" ), KVpncConfig::debug ); else GlobalConfig->appendLogEntry ( i18n ( "Allow empty group password: false" ), KVpncConfig::debug ); } // if ( !newprofilewizardciscomanuallypagecontent->AllowEmptyGroupPasswordCheckBox->isChecked() && newprofilewizardciscomanuallypagecontent->GroupPasswordLineEdit->text().isEmpty() ) // { // ok = false; // msg += "- " + i18n( "Group password" ) + "\n"; // GlobalConfig->appendLogEntry( i18n( "Group password is empty but you dont have checked to allow that!" ), GlobalConfig->error ); // } // else profileData->setPreSharedKey ( newprofilewizardciscomanuallypagecontent->GroupPasswordLineEdit->text() ); profileData->setSavePsk ( newprofilewizardciscomanuallypagecontent->CheckSavePsk->isChecked() ); profileData->setID ( newprofilewizardciscomanuallypagecontent->IDLineEdit->text() ); profileData->setAllowEmptyGroupPassword ( newprofilewizardciscomanuallypagecontent->AllowEmptyGroupPasswordCheckBox->isChecked() ); profileData->setUseDpdIdleTimeout(true); if (profileData->getConnectionType() == VpnAccountData::cisco ) profileData->setDpdIdleTimeout(300); if (profileData->getConnectionType() == VpnAccountData::ciscoorig ) profileData->setDpdIdleTimeout(90); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnatpage, "" + i18n ( "NAT settings" ) + "", indexOf ( currentpage ) + 3 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 4 ); } else if ( currentpage == newprofilewizardfreeswanpage ) { msg = i18n ( "These fields must be filled in:\n" ); profileData->setUseModeConfig ( newprofilewizardfreeswanpagecontent->UseModeConfigCheckBox->isChecked() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) { if ( newprofilewizardfreeswanpagecontent->UseModeConfigCheckBox->isChecked() ) GlobalConfig->appendLogEntry ( i18n ( "Use Mode Config: %1" ).arg ( i18n ( "yes" ) ), KVpncConfig::debug ); else GlobalConfig->appendLogEntry ( i18n ( "Use Mode Config: %1" ).arg ( i18n ( "no" ) ), KVpncConfig::debug ); } profileData->setExchangeMode ( newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Exchange mode (%1): %2" ).arg ( "ipsec" ).arg ( newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->currentText() ), KVpncConfig::debug ); profileData->setLeftNextHop ( newprofilewizardfreeswanpagecontent->LeftNextHopLineEdit->text() ); //TODO check valid IP profileData->setRightNextHop ( newprofilewizardfreeswanpagecontent->RightNextHopLineEdit->text( ) ); //TODO check valid IP profileData->setDisableOpportunisticEncryption ( newprofilewizardfreeswanpagecontent->DisableOpportunisticEncryptionCheckBox->isChecked( ) ); // xauth if (newprofilewizardfreeswanpagecontent->UseXauthCheckBox->isChecked()) { profileData->setAuthWithUsernameAndPassword(true); } else { profileData->setAuthWithUsernameAndPassword(false); } if ( GlobalConfig->KvpncDebugLevel > 0 ) { if ( newprofilewizardfreeswanpagecontent->DisableOpportunisticEncryptionCheckBox->isChecked() ) GlobalConfig->appendLogEntry ( i18n ( "Disable opportunistic encryption: %1" ).arg ( i18n ( "yes" ) ), KVpncConfig::debug ); else GlobalConfig->appendLogEntry ( i18n ( "Disable opportunistic encryption: %1" ).arg ( i18n ( "no" ) ), KVpncConfig::debug ); GlobalConfig->appendLogEntry ( i18n ( "Right next hop: %1" ).arg ( newprofilewizardfreeswanpagecontent->RightNextHopLineEdit->text() ), KVpncConfig::debug ); GlobalConfig->appendLogEntry ( i18n ( "Left next hop: %1" ).arg ( newprofilewizardfreeswanpagecontent->LeftNextHopLineEdit->text() ), KVpncConfig::debug ); GlobalConfig->appendLogEntry ( i18n ( "Use PFS: %1" ).arg ( profileData->getPerfectForwardSecrety() ), KVpncConfig::debug ); } profileData->setExchangeMode ( newprofilewizardfreeswanpagecontent->ExchangeModeComboBox->currentText() ); if (newprofilewizardfreeswanpagecontent->UseXauthCheckBox->isChecked()) { if ( newprofilewizardfreeswanpagecontent->LocalIDLineEdit->text().isEmpty() ) { ok = false; msg += "- " + i18n ( "Local ID (Group ID)" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Local ID (Group ID) is empty!" ), GlobalConfig->error ); } profileData->setUseSpecialLocalID(true); } profileData->setLocalIDType ( newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->currentText() ); if (newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->currentText() != "none" && newprofilewizardfreeswanpagecontent->RemoteIDLineEdit->text().isEmpty() ) { ok = false; msg += "- " + i18n ( "Remote ID" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Remote ID is empty!" ), GlobalConfig->error ); } if (newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->currentText() != "none") profileData->setUseSpecialRemoteID(true); else profileData->setUseSpecialRemoteID(false); profileData->setRemoteIDType ( newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Type of local ID: %1" ).arg ( newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->currentText() ), KVpncConfig::debug ); profileData->setSpecialLocalID ( newprofilewizardfreeswanpagecontent->LocalIDLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Local ID value: %1" ).arg ( newprofilewizardfreeswanpagecontent->LocalIDLineEdit->text() ), KVpncConfig::debug ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Type of remote ID: %1" ).arg ( newprofilewizardfreeswanpagecontent->RemoteIdTypeCombobox->currentText() ), KVpncConfig::debug ); profileData->setSpecialRemoteID ( newprofilewizardfreeswanpagecontent->RemoteIDLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Remote ID value: %1" ).arg ( newprofilewizardfreeswanpagecontent->RemoteIDLineEdit->text() ), KVpncConfig::debug ); // ike + esp QStringList IkeList; QStringList EspList; if (newprofilewizardfreeswanpagecontent->IkeAes256Sha1CheckBox->isChecked()) IkeList.append("aes256-sha1"); if (newprofilewizardfreeswanpagecontent->IkeAes128Sha1CheckBox->isChecked()) IkeList.append("aes128-sha1"); if (newprofilewizardfreeswanpagecontent->IkeDesSha1Modp2048CheckBox->isChecked()) IkeList.append("3des-sha1-modp2048"); if (newprofilewizardfreeswanpagecontent->IkeDesMd5CheckBox->isChecked()) IkeList.append("3des-md5"); if (newprofilewizardfreeswanpagecontent->IkeDesSha1CheckBox->isChecked()) IkeList.append("3des-sha1"); if (!newprofilewizardfreeswanpagecontent->OtherIkeLineEdit->text().isEmpty()) IkeList.append(newprofilewizardfreeswanpagecontent->OtherIkeLineEdit->text()); if (newprofilewizardfreeswanpagecontent->Esp3desMd5CheckBox->isChecked()) EspList.append("3des-md5"); if (newprofilewizardfreeswanpagecontent->EspDesSha1CheckBox->isChecked()) EspList.append("3des-sha1"); if (newprofilewizardfreeswanpagecontent->EspAes128Sha1CheckBox->isChecked()) EspList.append( "aes128-sha1"); if (newprofilewizardfreeswanpagecontent->EspAes256Sha1CheckBox->isChecked()) EspList.append( "aes256-sha1"); if (!newprofilewizardfreeswanpagecontent->OtherEspLineEdit->text().isEmpty()) EspList.append(newprofilewizardfreeswanpagecontent->OtherEspLineEdit->text()); // for ( QStringList::Iterator ikeit = IkeList.begin(); ikeit != IkeList.end(); ++ikeit ) // std::cout << "ike: " << *ikeit << ":" << std::endl; // for ( QStringList::Iterator espit = EspList.begin(); espit != EspList.end(); ++espit ) // std::cout << "esp: " << *espit << ":" << std::endl; if(newprofilewizardfreeswanpagecontent->UseCustomEspCheckBox->isChecked() && !EspList.isEmpty()) { profileData->setUseCustomEsp(true); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Use custom %1: %2" ).arg ( i18n("ESP") ).arg(i18n("yes")), KVpncConfig::debug ); profileData->setIpsecEsp(EspList.join(",")); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "ESP settings: %1" ).arg ( EspList.join(",") ), KVpncConfig::debug ); } else if(newprofilewizardfreeswanpagecontent->UseCustomEspCheckBox->isChecked() && EspList.isEmpty()) { ok = false; msg += "- " + i18n ( "Use custom ESP checked but none selected!" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Use custom ESP checked but none selected!" ), GlobalConfig->error ); } else if(!newprofilewizardfreeswanpagecontent->UseCustomEspCheckBox->isChecked()) { profileData->setUseCustomEsp(false); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Use custom %1: %2" ).arg ( i18n("ESP") ).arg(i18n("no")), KVpncConfig::debug ); } if(newprofilewizardfreeswanpagecontent->UseCustomIkeCheckBox->isChecked() && !IkeList.isEmpty()) { profileData->setUseCustomIke(true); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Use custom %1: %2" ).arg ( i18n("IKE") ).arg(i18n("yes")), KVpncConfig::debug ); profileData->setIpsecIke(IkeList.join(",")); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "IKE settings: %1" ).arg ( IkeList.join(",") ), KVpncConfig::debug ); } else if(newprofilewizardfreeswanpagecontent->UseCustomIkeCheckBox->isChecked() && IkeList.isEmpty()) { ok = false; msg += "- " + i18n ( "Use custom IKE checked but none selected!" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Use custom IKE checked but none selected!" ), GlobalConfig->error ); } else if (!newprofilewizardfreeswanpagecontent->UseCustomIkeCheckBox->isChecked()) { profileData->setUseCustomIke(false); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Use custom %1: %2" ).arg ( i18n("IKE") ).arg(i18n("false")), KVpncConfig::debug ); } if (ok) { if (newprofilewizardfreeswanpagecontent->UseXauthCheckBox->isChecked()) { if (GlobalConfig->KvpncDebugLevel > 1) GlobalConfig->appendLogEntry ( i18n ( "Authenticate with username and password: %1" ).arg ( i18n ( "yes" ) ), KVpncConfig::debug ); profileData->setAuthWithUsernameAndPassword(true); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnatpage, "" + i18n ( "NAT settings" ) + "", indexOf ( currentpage ) + 3 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 4 ); } else { if (GlobalConfig->KvpncDebugLevel > 1) GlobalConfig->appendLogEntry ( i18n ( "Authenticate with username and password: %1" ).arg ( i18n ( "no" ) ), KVpncConfig::debug ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardnatpage, "" + i18n ( "NAT settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 3 ); } } } else if ( currentpage == newprofilewizardfreeswanselectionpage ) { if ( newprofilewizardfreeswanselectionpagecontent->OpenvpnImportRadioButton->isChecked() ) { enterdatamanually = false; removePage ( newprofilewizardfreeswanpage ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "IPSec selection: import profile file" ), KVpncConfig::debug ); // removePage ( newprofilewizardgeneralpage ); // removePage ( newprofilewizardvirtualipaddresspage ); if ( importProfile ( VpnAccountData::freeswan ) == true ) { newProfileCreated = true; newprofilewizardgeneralpagecontent->NameLineEdit->setText ( profileData->getName() ); newprofilewizardgeneralpagecontent->gatewayLineEdit->setText ( profileData->getGateway() ); newprofilewizardgeneralpagecontent->DescriptionLineEdit->setText ( profileData->getDescription() ); } else { newProfileCreated = false; ok = false; } } else { enterdatamanually = true; insertPage ( newprofilewizardfreeswanpage, "" + i18n ( "IPSec settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardauthselectionpage, i18n ( "Authentication settings" ), indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "IPSec selection: enter data manually" ), KVpncConfig::debug ); } } else if ( currentpage == newprofilewizardracoonpage ) { if ( newprofilewizardracoonpagecontent->HashAlgoComboBox->currentText() == "SHA1" ) { profileData->setHashAlgo ( "sha1" ); } if ( newprofilewizardracoonpagecontent->HashAlgoComboBox->currentText() == "MD5" ) { profileData->setHashAlgo ( "md5" ); } if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Hash algorithm (%1): %2" ).arg ( "racoon" ).arg ( profileData->getHashAlgo() ), KVpncConfig::debug ); if ( newprofilewizardtypeselectionpagecontent->RacoonRadioButton->isChecked() ) { profileData->setUseModeConfig ( newprofilewizardracoonpagecontent->UseModeConfigCheckBox->isChecked() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) { if ( newprofilewizardracoonpagecontent->UseModeConfigCheckBox->isChecked() ) GlobalConfig->appendLogEntry ( i18n ( "Use Mode Config: %1" ).arg ( i18n ( "yes" ) ), KVpncConfig::debug ); else GlobalConfig->appendLogEntry ( i18n ( "Use Mode Config: %1" ).arg ( i18n ( "no" ) ), KVpncConfig::debug ); } } profileData->setExchangeMode ( newprofilewizardracoonpagecontent->ExchangeModeComboBox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Exchange mode (%1): %2" ).arg ( "racoon" ).arg ( newprofilewizardracoonpagecontent->ExchangeModeComboBox->currentText() ), KVpncConfig::debug ); profileData->setIkeGroup ( newprofilewizardracoonpagecontent->DHGroupComboBox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "DH group (%1): %2" ).arg ( "racoon" ).arg ( newprofilewizardracoonpagecontent->DHGroupComboBox->currentText() ), KVpncConfig::debug ); profileData->setAuthenticationAlgorithm( newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Authentication algorithm (%1) (phase 2): %2" ).arg ( "racoon" ).arg ( newprofilewizardracoonpagecontent->AuthenticationAlgorithm2ComboBox->currentText() ),KVpncConfig::debug ); profileData->setIpsecIke(newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->currentText()); profileData->setUseAuthenticationAlgorithm(true); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Encryption algorithm (%1) (phase 1): %2" ).arg ( "racoon" ).arg ( newprofilewizardracoonpagecontent->EncryptionAlgorithmComboBox->currentText() ), KVpncConfig::debug ); profileData->setLocalIDType ( newprofilewizardracoonpagecontent->LocalIdTypeCombobox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Type of local ID: %1" ).arg ( newprofilewizardracoonpagecontent->LocalIdTypeCombobox->currentText() ), KVpncConfig::debug ); profileData->setSpecialLocalID ( newprofilewizardracoonpagecontent->LocalIDLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Local ID value: %1" ).arg ( newprofilewizardracoonpagecontent->LocalIDLineEdit->text() ), KVpncConfig::debug ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Type of remote ID: %1" ).arg ( newprofilewizardracoonpagecontent->RemoteIdTypeCombobox->currentText() ), KVpncConfig::debug ); profileData->setSpecialRemoteID ( newprofilewizardracoonpagecontent->RemoteIDLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Remote ID value: %1" ).arg ( newprofilewizardracoonpagecontent->RemoteIDLineEdit->text() ), KVpncConfig::debug ); if (newprofilewizardracoonpagecontent->UseXauthCheckBox->isChecked()) { profileData->setAuthWithUsernameAndPassword(true); if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Authenticate with username and password: %1" ).arg ( i18n ( "yes" ) ), KVpncConfig::debug ); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnatpage, "" + i18n ( "NAT settings" ) + "", indexOf ( currentpage ) + 3 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) +4 ); } else { if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Authenticate with username and password: %1" ).arg ( i18n ( "no" ) ), KVpncConfig::debug ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardnatpage, "" + i18n ( "NAT settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) +3 ); } } else if ( currentpage == newprofilewizardopenvpnpage ) { msg = i18n ( "These fields must be filled in:\n" ); profileData->setTunnelDeviceType ( newprofilewizardopenvpnpagecontent->TunnelDeviceTypeComboBox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Tunnel device type (%1): %2" ).arg ( "OpenVPN" ).arg ( newprofilewizardopenvpnpagecontent->TunnelDeviceTypeComboBox->currentText() ), KVpncConfig::debug ); if ( newprofilewizardopenvpnpagecontent->NsCertTypeComboBox->currentText() == "client" ) profileData->setNsCertType ( "client" ); else profileData->setNsCertType ( "server" ); profileData->setTunnelDeviceType ( newprofilewizardopenvpnpagecontent->TunnelDeviceTypeComboBox->currentText() ); insertPage ( newprofilewizardauthselectionpage, "" + i18n ( "Authentication settings" ) + "", indexOf ( currentpage ) + 1 ); insertPage ( newprofilewizardnetworkpage, "" + i18n ( "Network settings" ) + "", indexOf ( currentpage ) + 2 ); insertPage ( newprofilewizardnetworkroutepage, "" + i18n ( "Network routes" ) + "", indexOf ( currentpage ) + 3 ); insertPage ( newprofilewizardnatpage, "" + i18n ( "NAT settings" ) + "", indexOf ( currentpage ) + 4 ); profileData->setUserdefiniedCipher ( newprofilewizardopenvpnpagecontent->UserdefiniedCipherComboBox->currentText() ); profileData->setUseUserdefiniedCipher ( newprofilewizardopenvpnpagecontent->UseUserdefiniedCipherCheckBox->isChecked() ); profileData->setRemotePort ( newprofilewizardopenvpnpagecontent->UserdefinedPortSpinBox->value() ); profileData->setUseRemotePort ( newprofilewizardopenvpnpagecontent->UseUserdefinedPortCheckBox->isChecked() ); if ( newprofilewizardopenvpnpagecontent->UseTlsAuthCheckBox->isChecked() ) { if ( newprofilewizardopenvpnpagecontent->TlsAuthURLRequester->url().isEmpty() ) { ok = false; msg += i18n ( "TLS auth file" ) + "\n"; } else { profileData->setUseTlsAuth ( true ); profileData->setTlsAuthFile ( newprofilewizardopenvpnpagecontent->TlsAuthURLRequester->url() ); } } if ( newprofilewizardopenvpnpagecontent->UseTlsRemoteHostCheckBox->isChecked() ) { if ( newprofilewizardopenvpnpagecontent->TlsRemoteHostLineEdit->text().isEmpty() ) { ok = false; msg += i18n ( "TLS remote host" ) + "\n"; } else { profileData->setUseTlsRemoteHost ( newprofilewizardopenvpnpagecontent->UseTlsAuthCheckBox->isChecked() ); profileData->setTlsRemoteHost ( newprofilewizardopenvpnpagecontent->TlsRemoteHostLineEdit->text() ); } } profileData->setDisableLzoCompression ( newprofilewizardopenvpnpagecontent->DisableLzoCompressionCheckBox->isChecked() ); if ( newprofilewizardopenvpnpagecontent->UseHttpProxyCheckBox->isChecked() ) { if ( newprofilewizardopenvpnpagecontent->HttpProxyLineEdit->text().isEmpty() ) { ok = false; msg += i18n ( "HTTP proxy host" ) + "\n"; } else { profileData->setUseHttpProxy ( newprofilewizardopenvpnpagecontent->UseHttpProxyCheckBox->isChecked() ); profileData->setHttpProxy ( newprofilewizardopenvpnpagecontent->HttpProxyLineEdit->text( ) ); } } if ( newprofilewizardopenvpnpagecontent->AllowIpAddressChangeOfPeerCheckBox->isChecked() ) profileData->setAllowIpAddressChangeOfPeer ( true ); else profileData->setAllowIpAddressChangeOfPeer ( false ); profileData->setHttpProxyPort ( newprofilewizardopenvpnpagecontent->HttpProxyPortIntNumInput->value( ) ); profileData->setHttpProxyTimeout ( newprofilewizardopenvpnpagecontent->HttpProxyTimeoutIntSpinBox->value() ); } else if ( currentpage == newprofilewizardauthselectionpage ) { if ( newprofilewizardauthselectioncontent->PskRadioButton->isChecked() ) { useCert = false; profileData->setAuthType ( VpnAccountData::psk ); insertPage ( newprofilewizardpskpage, "" + i18n ( "PSK settings" ) + "", indexOf ( currentpage ) + 1 ); // racoon or freeswan if ( profileData->getConnectionType() == VpnAccountData::freeswan || profileData->getConnectionType() == VpnAccountData::racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan || profileData->getConnectionType() == VpnAccountData::l2tpd_racoon ) { newprofilewizardpskcontent->PSKLineEdit->setEnabled ( true ); newprofilewizardfreeswanpagecontent->UseXauthCheckBox->setEnabled ( true ); newprofilewizardracoonpagecontent->UseXauthCheckBox->setEnabled ( true ); } else if ( profileData->getConnectionType() == VpnAccountData::openvpn ) { newprofilewizardpskcontent->PSKLineEdit->setEnabled ( true ); newprofilewizardpskcontent->LabelPsk->setEnabled ( true ); } else if ( profileData->getConnectionType() == VpnAccountData::ciscoorig ) { insertPage ( newprofilewizardciscomanuallypage, "" + i18n ( "Cisco settings" ) + "", indexOf ( currentpage ) + 1 ); removePage( newprofilewizardpskpage); } if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Auth selection: use PSK" ), KVpncConfig::debug ); } if ( newprofilewizardauthselectioncontent->CertificateRadioButton->isChecked() ) { useCert = true; profileData->setAuthType ( VpnAccountData::cert ); newprofilewizardcertcontent->x509certURLRequester->show(); newprofilewizardcertcontent->x509certURLRequester->sizeHint(); newprofilewizardcertcontent->x509certComboBox->hide(); if (profileData->getConnectionType() != VpnAccountData::ciscoorig) insertPage ( newprofilewizardp12certselectionpage, "" + i18n ( "Certificate format" ) + "", indexOf ( currentpage ) + 1 ); // racoon or freeswan if ( profileData->getConnectionType() == VpnAccountData::freeswan || profileData->getConnectionType() == VpnAccountData::racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan || profileData->getConnectionType() == VpnAccountData::l2tpd_racoon ) { newprofilewizardcertcontent->x509certURLRequester->setEnabled ( true ); newprofilewizardcertcontent->LabelCertificate->setEnabled ( true ); newprofilewizardcertcontent->certpathURLRequester->setEnabled ( true ); newprofilewizardcertcontent->LabelCertificatePath->setEnabled ( true ); newprofilewizardfreeswanpagecontent->UseXauthCheckBox->setEnabled ( false ); newprofilewizardracoonpagecontent->UseXauthCheckBox->setEnabled ( false ); } else if ( profileData->getConnectionType() == VpnAccountData::openvpn ) { newprofilewizardcertcontent->CaCertpathURLRequester->setEnabled ( true ); newprofilewizardcertcontent->certpathURLRequester->setEnabled ( true ); newprofilewizardcertcontent->LabelCertificatePath->setEnabled ( true ); if ( profileData->getUseOnlyCaCertAndUserAuth() ) { newprofilewizardcertcontent->x509certURLRequester->setEnabled ( false ); newprofilewizardcertcontent->privkeypathURLRequester->setEnabled ( false ); newprofilewizardcertcontent->PrivkeyPasswordEdit->setEnabled ( false ); newprofilewizardcertcontent->LabelPrivateKeyPath->setEnabled ( false ); newprofilewizardcertcontent->LabelCertificate->setEnabled ( false ); newprofilewizardcertcontent->LabelPrivateKeyPassword->setEnabled ( false ); } else { newprofilewizardcertcontent->x509certURLRequester->setEnabled ( true ); newprofilewizardcertcontent->privkeypathURLRequester->setEnabled ( true ); newprofilewizardcertcontent->PrivkeyPasswordEdit->setEnabled ( true ); newprofilewizardcertcontent->LabelPrivateKeyPath->setEnabled ( true ); newprofilewizardcertcontent->LabelCertificate->setEnabled ( true ); newprofilewizardcertcontent->LabelPrivateKeyPassword->setEnabled ( true ); } } else if ( profileData->getConnectionType() == VpnAccountData::ciscoorig ) { newprofilewizardcertcontent->x509certURLRequester->setEnabled ( true ); newprofilewizardcertcontent->LabelCertificate->setEnabled ( true ); newprofilewizardcertcontent->certpathURLRequester->setEnabled ( false ); newprofilewizardcertcontent->LabelCertificatePath->setEnabled ( false ); newprofilewizardcertcontent->certpathURLRequester->hide(); newprofilewizardcertcontent->LabelCertificatePath->hide(); newprofilewizardcertcontent->UseSmartcardCheckBox->hide(); newprofilewizardcertcontent->SmartcardGroupBox->hide(); newprofilewizardcertcontent->UseSpecialServerCertificateCheckBox->hide(); newprofilewizardcertcontent->SpecialServerCertificateURLRequester->hide(); newprofilewizardcertcontent->CaCertpathURLRequester->hide(); newprofilewizardcertcontent->LabelPrivateKeyPath->hide(); newprofilewizardcertcontent->privkeypathURLRequester->hide(); newprofilewizardcertcontent->LabelCaCertificatePath->hide(); newprofilewizardcertcontent->CertificateGroupBox->resize(newprofilewizardcertcontent->CertificateGroupBox->sizeHint()); insertPage ( newprofilewizardcertpage, "" + i18n ( "Certificate settings" ) + "", indexOf ( currentpage ) + 1 ); // newprofilewizardciscomanuallypagecontent->AllowEmptyGroupPasswordCheckBox->hide(); // newprofilewizardciscomanuallypagecontent->LabelPsk->hide(); // newprofilewizardciscomanuallypagecontent->GroupPasswordLineEdit->hide(); // newprofilewizardciscomanuallypagecontent->CheckSavePsk->hide(); if ( importCertificate() ) { // success :) } else { newProfileCreated = false; } newprofilewizardcertcontent->LabelPrivateKeyPassword->setText("Certificate password:"); // newprofilewizardcertcontent->LabelCertificate->setText(i18n("Certificate (enter name here):")); newprofilewizardcertcontent->x509certURLRequester->hide(); newprofilewizardcertcontent->x509certComboBox->show(); newprofilewizardcertcontent->x509certComboBox->sizeHint(); newprofilewizardcertcontent->x509certComboBox->setCurrentItem(0); } if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Auth selection: use certificate" ), KVpncConfig::debug ); } if ( newprofilewizardauthselectioncontent->HybridRadioButton->isChecked() ) { useCert = false; profileData->setAuthType ( VpnAccountData::hybrid ); insertPage ( newprofilewizardcertpage, "" + i18n ( "Certificate settings" ) + "", indexOf ( currentpage ) + 1 ); // racoon or freeswan if ( profileData->getConnectionType() == VpnAccountData::racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_racoon ) { newprofilewizardpskcontent->PSKLineEdit->setEnabled ( true ); newprofilewizardfreeswanpagecontent->UseXauthCheckBox->setEnabled ( true ); newprofilewizardracoonpagecontent->UseXauthCheckBox->setEnabled ( true ); newprofilewizardcertpage->setEnabled(true); newprofilewizardcertcontent->x509certComboBox->setEnabled(false); newprofilewizardcertcontent->x509certURLRequester->setEnabled(false); newprofilewizardcertcontent->CaCertpathURLRequester->setEnabled(true); newprofilewizardcertcontent->certpathURLRequester->setURL("/etc/racoon/certs"); newprofilewizardcertcontent->LabelCertificate->setEnabled(false); newprofilewizardcertcontent->LabelPrivateKeyPath->setEnabled(false); newprofilewizardcertcontent->LabelPrivateKeyPassword->setEnabled(false); newprofilewizardcertcontent->SpecialServerCertificateURLRequester->setEnabled(false); newprofilewizardcertcontent->PrivkeyPasswordEdit->setEnabled(false); newprofilewizardcertcontent->UseSpecialServerCertificateCheckBox->setEnabled(false); newprofilewizardcertcontent->privkeypathURLRequester->setEnabled(false); newprofilewizardpskcontent->setEnabled(false); } else if ( profileData->getConnectionType() == VpnAccountData::ciscoorig ) { insertPage ( newprofilewizardciscomanuallypage, "" + i18n ( "Cisco settings" ) + "", indexOf ( currentpage ) + 1 ); removePage( newprofilewizardpskpage); } if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Auth selection: use Hybrid" ), KVpncConfig::debug ); } } else if ( currentpage == newprofilewizardp12certselectionpage ) { insertPage ( newprofilewizardcertpage, "" + i18n ( "Certificate settings" ) + "", indexOf ( currentpage ) + 1 ); if ( newprofilewizardp12certselectioncontent->UseSmartcardCheckBox->isChecked() ) { profileData->setUseSmartcard ( true ); newprofilewizardcertcontent->UseSmartcardCheckBox->setChecked ( true ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "P12 cert selection: use smartcard" ), KVpncConfig::debug ); } else { if ( newprofilewizardp12certselectioncontent->P12CertYesRadioButton->isChecked() ) { // yes we have p12 cert if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "P12 cert selection: cert type is PKCS12" ), KVpncConfig::debug ); if ( importCertificate() ) { // success :) } else { newProfileCreated = false; } } else { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "P12 cert selection: cert type is other" ), KVpncConfig::debug ); } } } else if ( currentpage == newprofilewizardopenvpnselectionpage ) { if ( newprofilewizardopenvpnselectionpagecontent->OpenvpnImportRadioButton->isChecked() ) { enterdatamanually = false; removePage ( newprofilewizardopenvpnpage ); removePage ( newprofilewizardopenvpnauthpage ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN selection: import profile file" ), KVpncConfig::debug ); // removePage ( newprofilewizardgeneralpage ); removePage ( newprofilewizardvirtualipaddresspage ); if ( importProfile ( VpnAccountData::openvpn ) == true ) { newProfileCreated = true; newprofilewizardgeneralpagecontent->NameLineEdit->setText ( profileData->getName() ); newprofilewizardgeneralpagecontent->gatewayLineEdit->setText ( profileData->getGateway() ); newprofilewizardgeneralpagecontent->DescriptionLineEdit->setText ( profileData->getDescription() ); if ( profileData->getAuthWithUsernameAndPassword() ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN auth: authenticate with username and password" ), KVpncConfig::debug ); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); } } else { newProfileCreated = false; ok = false; } } else { enterdatamanually = true; insertPage ( newprofilewizardopenvpnpage, "" + i18n ( "OpenVPN settings" ) + "", indexOf ( currentpage ) + 1 ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN selection: enter data manually" ), KVpncConfig::debug ); } } else if ( currentpage == newprofilewizardopenvpnauthpage ) { if ( newprofilewizardopenvpnauthpagecontent->AuthWithUsernameAndPasswordCheckBox->isChecked() ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN auth: authenticate with username and password" ), KVpncConfig::debug ); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); profileData->setAuthWithUsernameAndPassword ( true ); if ( newprofilewizardopenvpnauthpagecontent->UseOnlyCaCertAndUserAuthCheckBox->isChecked() ) { profileData->setUseOnlyCaCertAndUserAuth ( true ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN auth: use only CA cert authenticate with username and password" ), KVpncConfig::debug ); } else { profileData->setUseOnlyCaCertAndUserAuth ( false ); } } else { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN auth: dont authenticate with username and password" ), KVpncConfig::debug ); profileData->setAuthWithUsernameAndPassword ( false ); profileData->setUseOnlyCaCertAndUserAuth ( false ); } if ( newprofilewizardopenvpnauthpagecontent->UseAuthenticationAlgorithmCheckBox->isChecked() ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN auth: use special authentication algorithm: %1" ).arg ( newprofilewizardopenvpnauthpagecontent->UserdefiniedDigestComboBox->currentText() ), KVpncConfig::debug ); profileData->setUseAuthenticationAlgorithm ( true ); profileData->setAuthenticationAlgorithm ( newprofilewizardopenvpnauthpagecontent->UserdefiniedDigestComboBox->currentText() ); } else { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN auth: dont use special authentication algorithm" ), KVpncConfig::debug ); profileData->setUseAuthenticationAlgorithm ( false ); } profileData->setAuthenticationAlgorithm ( newprofilewizardopenvpnauthpagecontent->UserdefiniedDigestComboBox->currentText() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "OpenVPN auth: use authentication method: %1" ).arg ( profileData->getAuthenticationAlgorithm() ), KVpncConfig::debug ); } else if ( currentpage == newprofilewizardpptppage ) { msg = i18n ( "These fields must be filled in:\n" ); profileData->setAllowStatefulMode( newprofilewizardpptppagecontent->AllowStatefulModeCheckbox->isChecked() ); profileData->setUseNoIpDefault( newprofilewizardpptppagecontent->UseNoIpDefaultCheckbox->isChecked() ); profileData->setDisableMPPEComp( newprofilewizardpptppagecontent->UseNoMPPECompressionCheckbox->isChecked() ); profileData->setRequireMppe( newprofilewizardpptppagecontent->RequireMppeCheckbox->isChecked() ); profileData->setRefuse128BitEncryption( newprofilewizardpptppagecontent->Refuse128BitEncryptionCheckbox->isChecked() ); profileData->setRefuse40BitEncryption( newprofilewizardpptppagecontent->Refuse40BitEncryptionCheckbox->isChecked() ); profileData->setDisableMPPEComp( newprofilewizardpptppagecontent->UseNoMPPECompressionCheckbox->isChecked() ); profileData->setUseNoBsdComp( newprofilewizardpptppagecontent->UseNoBsdCompCheckbox->isChecked() ); profileData->setUseNoDeflate( newprofilewizardpptppagecontent->UseNoDeflateCheckbox->isChecked() ); profileData->setDisableHeaderCompression(newprofilewizardpptppagecontent->DisableHeaderCompressionCheckbox->isChecked()); profileData->setDisableMagicNumberNegotiation(newprofilewizardpptppagecontent->DisableMagicNumberNegotiationCheckbox->isChecked()); profileData->setDisableIpx(newprofilewizardpptppagecontent->DisableIpxCheckbox->isChecked()); profileData->setDisableAdressControlCompression(newprofilewizardpptppagecontent->DisableAdressControlCompressionCheckbox->isChecked()); profileData->setDisableProtocolFieldCompression(newprofilewizardpptppagecontent->DisableProtocolFieldCompressionCheckbox->isChecked()); profileData->setRequireEap(newprofilewizardpptppagecontent->RequireEapCheckbox->isChecked()); if ( newprofilewizardpptppagecontent->DnsServerCheckbox->isChecked() ) { profileData->setUseDnsServer( true ); profileData->setDnsServer( newprofilewizardpptppagecontent->DnsServerLineedit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Using custom DNS server: %1" ).arg ( profileData->getDnsServer() ), KVpncConfig::debug ); } else { profileData->setUseDnsServer( false ); } if ( newprofilewizardpptppagecontent->UseSearchDomainInResolvConfCheckbox ->isChecked() ) { profileData->setUseSearchDomainInResolvConf(true); profileData->setSearchDomainInResolvConf(newprofilewizardpptppagecontent->SearchDomainInResolvConfLineedit->text()); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Using custom DNS search domain: %1" ).arg ( profileData->getSearchDomainInResolvConf() ), KVpncConfig::debug ); } else { profileData->setUseSearchDomainInResolvConf(false); } if ( newprofilewizardpptppagecontent->UseDomainInResolvConfCheckbox ->isChecked() ) { profileData->setUseDomainInResolvConf(true); profileData->setDomainInResolvConf(newprofilewizardpptppagecontent->DomainInResolvConfLineedit->text()); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Using custom DNS domain: %1" ).arg ( profileData->getDomainInResolvConf() ), KVpncConfig::debug ); } else { profileData->setUseDomainInResolvConf(false); } if ( newprofilewizardpptppagecontent->AuthMethodComboBox->currentItem() == 0 ) profileData->setAuthMethod ( "chap" ); if ( newprofilewizardpptppagecontent->AuthMethodComboBox->currentItem() == 1 ) profileData->setAuthMethod ( "pap" ); if ( newprofilewizardpptppagecontent->AuthMethodComboBox->currentItem() == 2 ) profileData->setAuthMethod ( "mschap" ); if ( newprofilewizardpptppagecontent->AuthMethodComboBox->currentItem() == 3 ) profileData->setAuthMethod ( "mschap-v2" ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Using auth method: %1" ).arg ( profileData->getAuthMethod() ), KVpncConfig::debug ); newprofilewizardnetworkcontent->LabelRemoteNetwork->hide(); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->hide(); newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->hide(); newprofilewizardnetworkcontent->RemoteNetDividetextLabel->hide(); newprofilewizardnetworkcontent->UseRemoteNetworkCheckBox->hide(); newprofilewizardnetworkcontent->RemoteNetworkGroupBox->hide(); insertPage ( newprofilewizarduserpage, "" + i18n ( "User settings" ) + "", indexOf ( currentpage ) + 1 ); } else if ( currentpage == newprofilewizardvtunpage ) { msg = i18n ( "These fields must be filled in:\n" ); profileData->setUseLocalPort ( newprofilewizardvtunpagecontent->PortCheckbox->isChecked() ); profileData->setLocalPort ( newprofilewizardvtunpagecontent->PortSpinbox->value() ); if ( newprofilewizardvtunpagecontent->PortCheckbox->isChecked() ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Vtun: use userdefined port: %1" ).arg ( QString().setNum ( newprofilewizardvtunpagecontent->PortSpinbox->value() ) ), KVpncConfig::debug ); } if ( newprofilewizardvtunpagecontent->VtunProfileLineEdit->text().isEmpty() ) { KMessageBox::error ( this, i18n ( "No profile name entered!" ), i18n ( "No profile name" ) ); ok = false; msg += "- " + i18n ( "Vtun profile name" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "No profile name entered!" ), GlobalConfig->error ); } else profileData->setVtunProfile ( newprofilewizardvtunpagecontent->VtunProfileLineEdit->text() ); } else if ( currentpage == newprofilewizardsshpage ) { msg = i18n ( "These fields must be filled in:\n" ); profileData->setUseRemotePort( newprofilewizardsshpagecontent->UseUserdefinedRemotePortCheckBox->isChecked() ); profileData->setRemotePort ( newprofilewizardsshpagecontent->UserdefinedRemotePortSpinBox->value() ); if ( newprofilewizardsshpagecontent->UseUserdefinedRemotePortCheckBox->isChecked() ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "SSH: use userdefined port: %1" ).arg ( QString().setNum ( newprofilewizardsshpagecontent->UserdefinedRemotePortSpinBox->value() ) ), KVpncConfig::debug ); } // password or key auth if (newprofilewizardsshpagecontent->AuthPassRadioButton->isChecked()) { profileData->setAuthWithUsernameAndPassword(true); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "SSH: use user password authentication" ) , KVpncConfig::debug ); } else { profileData->setAuthWithUsernameAndPassword(false); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "SSH: use key authentication" ) , KVpncConfig::debug ); } profileData->setPreSharedKeyFile(newprofilewizardsshpagecontent->CostumkeyURLRequester->url()); if (newprofilewizardsshpagecontent->CostumKeyRadioButton->isChecked()) { profileData->setPskIsInFile(newprofilewizardsshpagecontent->CostumKeyRadioButton->isChecked()); profileData->setPreSharedKeyFile(newprofilewizardsshpagecontent->CostumkeyURLRequester->url()); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "SSH: use costum key: %1" ).arg(newprofilewizardsshpagecontent->CostumkeyURLRequester->url()) , KVpncConfig::debug ); } else { profileData->setPreSharedKey(newprofilewizardsshpagecontent->SshKeyComboBox->currentText()); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "SSH: use autotected key: %1" ).arg(newprofilewizardsshpagecontent->SshKeyComboBox->currentText()) , KVpncConfig::debug ); } if (newprofilewizardsshpagecontent->UseSshConfigRemoteScriptCheckBox->isChecked() && !newprofilewizardsshpagecontent->SshConfigRemoteScriptLineEdit->text().isEmpty()) { profileData->setUseSshConfigRemoteScript(true); profileData->setSshConfigRemoteScript(newprofilewizardsshpagecontent->SshConfigRemoteScriptLineEdit->text()); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "SSH: use ssh config remote script: %1" ).arg(newprofilewizardsshpagecontent->SshConfigRemoteScriptLineEdit->text()) , KVpncConfig::debug ); } else profileData->setUseSshConfigRemoteScript(false); if (newprofilewizardsshpagecontent->UseSshConfigRemoteScriptCheckBox->isChecked() && newprofilewizardsshpagecontent->SshConfigRemoteScriptLineEdit->text().isEmpty()) { ok = false; msg += "- " + i18n ( "Special server certificate" ) + "\n"; GlobalConfig->appendLogEntry( i18n( "%1 cant be empty!" ).arg(i18n("ssh config remote script")), GlobalConfig->error); } } else if ( currentpage == newprofilewizardvirtualipaddresspage ) { msg = i18n ( "These fields must be filled in:\n" ); bool IPOk=true; QString wrongAddress=""; ok = true; if ( profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->isChecked() && !profilenetworkvirtualipoptionscontent->LocalVirtualIpEdit->text().isEmpty() ) { QString LocalVirtualIp = profilenetworkvirtualipoptionscontent->LocalVirtualIpEdit->text(); if ( Utils ( GlobalConfig ).isValidIPv4Address ( LocalVirtualIp ) == false ) { // KMessageBox::error ( this, i18n( "No valid IP address for local IP address entered!" ), i18n( "No Valid IP Address" ) ); IPOk=false; wrongAddress=i18n ( "local IP address" ); ok=false; } else { profileData->setLocalVirtualIP ( LocalVirtualIp ); } } else { msg += "- " + i18n ( "Local IP address for virtual IP" ) + "\n"; ok =false; IPOk=false; } if ( profileData->getConnectionType() != VpnAccountData::openvpn || profileData->getConnectionType() != VpnAccountData::ssh ) { if(profileData->getTunnelDeviceType() == "tun") { if ( profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->isChecked() && !profilenetworkvirtualipoptionscontent->RemoteVirtualIpLineEdit->text().isEmpty() ) { QString RemoteVirtualIp = profilenetworkvirtualipoptionscontent->RemoteVirtualIpLineEdit->text(); if ( Utils ( GlobalConfig ).isValidIPv4Address ( RemoteVirtualIp ) == false ) { IPOk=false; ok=false; if ( wrongAddress=="" ) wrongAddress = i18n ( "remote IP address" ); else wrongAddress = i18n ( "local and remote IP address" ); } else { profileData->setRemoteVirtualIP ( RemoteVirtualIp ); } } else { msg += "- " + i18n ( "Remote IP address for virtual IP" ) + "\n"; ok =false; IPOk=false; } } if (profileData->getTunnelDeviceType() == "tap") { QString RemoteVirtualIp = profilenetworkvirtualipoptionscontent->RemoteVirtualIpLineEdit->text(); if (Utils( GlobalConfig ).isValidIPv4Netmask (RemoteVirtualIp) == false) { KMessageBox::error ( this, i18n( "No valid netmask entered!" ), i18n( "No valid netmask" ) ); IPOk=false; } else { profileData->setRemoteVirtualIP( RemoteVirtualIp); } } } if ( profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->isChecked() && IPOk ) { profileData->setUseVirtualIP ( profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->isChecked() ); if ( profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->isChecked() ) { if (profileData->getTunnelDeviceType() == "tun") { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Using virtual IP addresses (local: %1, remote: %2): " ).arg ( profileData->getLocalVirtualIP() ).arg ( profileData->getRemoteVirtualIP() ), KVpncConfig::debug ); } if (profileData->getTunnelDeviceType() == "tap") { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Using virtual IP address (local: %1, netmask: %2): " ).arg ( profileData->getLocalVirtualIP() ).arg ( profileData->getRemoteVirtualIP() ), KVpncConfig::debug ); } } else { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Not using virtual IP addresses" ), KVpncConfig::debug ); } } else { if ( wrongAddress!= "" ) KMessageBox::error ( this, i18n ( "No valid IP address for %1 entered!" ).arg ( wrongAddress ), i18n ( "No Valid IP Address" ) ); profileData->setUseVirtualIP ( false ); } if ( !profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->isChecked() ) ok=true; } else if ( currentpage == newprofilewizardpskpage ) { msg = i18n ( "These fields must be filled in:\n" ); if ( newprofilewizardpskcontent->CheckSavePsk->isChecked() ) { if ( !newprofilewizardpskcontent->PskInFileCheckBox->isChecked() ) { profileData->setSavePsk ( true ); profileData->setPskIsInFile ( false ); if ( !newprofilewizardpskcontent->PSKLineEdit->text().isEmpty() ) { profileData->setPreSharedKey ( newprofilewizardpskcontent->PSKLineEdit->text() ); } else { msg += "- " + i18n ( "Pre shared key" ) + "\n"; ok = false; } } else { profileData->setSavePsk ( true ); profileData->setPskIsInFile ( true ); if ( !newprofilewizardpskcontent->PSKFileURLRequester->url().isEmpty() ) { profileData->setPreSharedKey ( newprofilewizardpskcontent->PSKLineEdit->text() ); } else { ok = false; msg += "- " + i18n ( "Pre shared key file" ) + "\n"; } } } else { profileData->setSavePsk ( false ); } if ( newprofilewizardpskcontent->PskInFileCheckBox->isChecked() ) { profileData->setSavePsk ( newprofilewizardpskcontent->CheckSavePsk->isChecked() ); if ( !newprofilewizardpskcontent->PSKFileURLRequester->url().isEmpty() ) { profileData->setPreSharedKeyFile ( newprofilewizardpskcontent->PSKFileURLRequester->url() ); } else { ok = false; msg += "- " + i18n ( "Pre shared key file" ) + "\n"; } } if ( newprofilewizardpskcontent->CheckSavePsk->isChecked() ) profileData->setPreSharedKey ( newprofilewizardpskcontent->PSKLineEdit->text( ) ); else profileData->setPreSharedKey ( "" ); profileData->setPreSharedKey ( newprofilewizardpskcontent->PSKLineEdit->text() ); } else if ( currentpage == newprofilewizardcertpage ) { profileData->setX509Certificate ( newprofilewizardcertcontent->x509certURLRequester->url() ); profileData->setCaCertificate ( newprofilewizardcertcontent->CaCertpathURLRequester->url() ); profileData->setCertPath ( newprofilewizardcertcontent->certpathURLRequester->url() ); profileData->setPrivateKey ( newprofilewizardcertcontent->privkeypathURLRequester->url() ); profileData->setPrivateKeyPass ( newprofilewizardcertcontent->PrivkeyPasswordEdit->text() ); profileData->setX509Certificate ( newprofilewizardcertcontent->x509certURLRequester->url() ); profileData->setCertPath ( newprofilewizardcertcontent->certpathURLRequester->url() ); profileData->setUseSpecialServerCertificate ( newprofilewizardcertcontent->UseSpecialServerCertificateCheckBox->isChecked() ); profileData->setSpecialServerCertificate ( newprofilewizardcertcontent->SpecialServerCertificateURLRequester->url() ); if ( !newprofilewizardcertcontent->PrivkeyPasswordEdit->text().isEmpty() ) profileData->setSavePrivateKeyPassword ( true ); else profileData->setSavePrivateKeyPassword ( false ); msg = i18n ( "These fields must be filled in:\n" ); if ( newprofilewizardcertcontent->UseSpecialServerCertificateCheckBox->isChecked() ) { if ( newprofilewizardcertcontent->SpecialServerCertificateURLRequester->url().isEmpty() ) { ok = false; msg += "- " + i18n ( "Special server certificate" ) + "\n"; // KMessageBox::error ( this, i18n( "Special server certificate can't be empty!" ), i18n( "No Server Certificate" ) ); GlobalConfig->appendLogEntry ( i18n ( "Special server certificate can't be empty!" ) , GlobalConfig->error ); } } if ( newprofilewizardcertcontent->CaCertpathURLRequester->url().isEmpty() ) { ok = false; msg += "- " + i18n ( "CA certificate" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "CA Certificate can't be empty!" ) , GlobalConfig->error ); } if ( !newprofilewizardcertcontent->UseSmartcardCheckBox->isChecked() && !profileData->getAuthType() == VpnAccountData::hybrid) { if ( (!profileData->getUseOnlyCaCertAndUserAuth() && newprofilewizardcertcontent->x509certURLRequester->url().isEmpty()) || ( profileData->getConnectionType() == VpnAccountData::ciscoorig && newprofilewizardcertcontent->x509certURLRequester->url().isEmpty())) { ok = false; msg += "- " + i18n ( "Certificate" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Certificate can't be empty!" ) , GlobalConfig->error ); } if ( !profileData->getUseOnlyCaCertAndUserAuth() && newprofilewizardcertcontent->privkeypathURLRequester->url().isEmpty() && !profileData->getAuthType() == VpnAccountData::hybrid) { ok = false; msg += "- " + i18n ( "Path to private key" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Path to private key can't be empty!" ) , GlobalConfig->error ); } // if ( ! ( profileData->getConnectionType() == VpnAccountData::racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_racoon ) && !profileData->getUseOnlyCaCertAndUserAuth() && newprofilewizardcertcontent->PrivkeyPasswordEdit->text().isEmpty() ) // { // if ( Utils ( GlobalConfig ).getNeedsPassphrase ( newprofilewizardcertcontent->privkeypathURLRequester->url() ) ) // { // ok = false; // msg += "- " + i18n ( "Private key password, private key needs passphrase" ) + "\n"; // GlobalConfig->appendLogEntry ( i18n ( "Private key password can't be empty because private key is protected with a passphrase." ) , GlobalConfig->error ); // } // } } else { if ( newprofilewizardcertcontent->Pkcs11SlotComboBox->currentText().isEmpty() || newprofilewizardcertcontent->Pkcs11IdComboBox->currentText().isEmpty() ) nextButton()->setEnabled ( false ); else nextButton()->setEnabled ( true ); } if ( newprofilewizardcertcontent->UseSmartcardCheckBox->isEnabled() && newprofilewizardcertcontent->UseSmartcardCheckBox->isChecked() ) { if ( !newprofilewizardcertcontent->Pkcs11SlotComboBox->currentText().isEmpty() ) profileData->setPkcs11Slot ( newprofilewizardcertcontent->Pkcs11SlotComboBox->currentText() ); else { KMessageBox::error ( this, i18n ( "Slot at smartcard can't be empty!" ), i18n ( "No smartcard slot" ) ); // GlobalConfig->appendLogEntry( i18n( "Slot at smartcard can't be empty!" ) ,GlobalConfig->error); ok = false; } if ( !newprofilewizardcertcontent->Pkcs11IdComboBox->currentText().isEmpty() ) profileData->setPkcs11Id ( newprofilewizardcertcontent->Pkcs11IdComboBox->currentText() ); else { KMessageBox::error ( this, i18n ( "ID for certificate at smartcard can't be empty!" ), i18n ( "No certificate ID" ) ); // GlobalConfig->appendLogEntry( i18n( "ID for certificate at smartcard can't be empty!" ) ,GlobalConfig->error); ok = false; } QString Pkcs11SlotType = newprofilewizardcertcontent->Pkcs11SlotTypeComboBox->currentText(); if ( Pkcs11SlotType == i18n ( "ID" ) ) profileData->setPkcs11SlotType ( "id" ); else if ( Pkcs11SlotType == i18n ( "Name" ) ) profileData->setPkcs11SlotType ( "name" ); else profileData->setPkcs11SlotType ( "label" ); QString Pkcs11IdType = newprofilewizardcertcontent->Pkcs11IdTypeComboBox->currentText(); if ( Pkcs11IdType == i18n ( "ID" ) ) profileData->setPkcs11IdType ( "id" ); else if ( Pkcs11IdType == i18n ( "Label" ) ) profileData->setPkcs11IdType ( "label" ); else profileData->setPkcs11IdType ( "subject" ); QString Pkcs11SignMode = newprofilewizardcertcontent->Pkcs11SignModeComboBox->currentText(); if ( Pkcs11SignMode == i18n ( "auto" ) ) profileData->setPkcs11SignMode ( "auto" ); else if ( Pkcs11SignMode == i18n ( "sign" ) ) profileData->setPkcs11SignMode ( "sign" ); else if ( Pkcs11SignMode == i18n ( "recover" ) ) profileData->setPkcs11SignMode ( "recover" ); else profileData->setPkcs11SignMode ( "any" ); if ( newprofilewizardcertcontent->UsePkcs11ProvidersCheckBox->isChecked() ) { if ( !newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->url().isEmpty() ) profileData->setPkcs11Providers ( newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->url() ); else { KMessageBox::error ( this, i18n ( "Library path to lib for use with smartcard can't be empty!" ), i18n ( "No providers lib" ) ); // GlobalConfig->appendLogEntry( i18n( "Library path to lib for use with smartcard can't be empty!" ) ,GlobalConfig->error); ok = false; } } profileData->setUsePkcs11Providers ( newprofilewizardcertcontent->UsePkcs11ProvidersCheckBox->isChecked() ); } } else if ( currentpage == newprofilewizarduserpage ) { msg = i18n ( "These fields must be filled in:\n" ); if ( newprofilewizarduserpagecontent->UsernameLineEdit->text().isEmpty() ) { ok = false; msg += "- " + i18n ( "Username" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Username is empty!" ), GlobalConfig->error ); } else { profileData->setUserName ( newprofilewizarduserpagecontent->UsernameLineEdit->text() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "User options: username: %1" ).arg ( profileData->getUserName() ), KVpncConfig::debug ); } if ( !newprofilewizarduserpagecontent->PasswordEdit->text().isEmpty() ) { profileData->setUserPassword ( newprofilewizarduserpagecontent->PasswordEdit->text() ); } else { if ( newprofilewizarduserpagecontent->CheckUserPass->isChecked() ) { ok = false; msg += "- " + i18n ( "Password" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Password is empty but you have checked to store it!" ), GlobalConfig->error ); } } profileData->setUserPassword ( newprofilewizarduserpagecontent->PasswordEdit->text() ); profileData->setSaveUserPassword ( newprofilewizarduserpagecontent->CheckUserPass->isChecked() ); profileData->setNtDomainName ( newprofilewizarduserpagecontent->NtDomainNameLineedit->text() ); if ( profileData->getConnectionType () == VpnAccountData::cisco || profileData->getConnectionType() == VpnAccountData::pptp || profileData->getConnectionType () == VpnAccountData::l2tpd_racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan ) { if ( newprofilewizarduserpagecontent->NtDomainNameCheckbox->isChecked() ) { if ( newprofilewizarduserpagecontent->NtDomainNameLineedit->text().isEmpty() ) { ok = false; msg += "- " + i18n ( "NT domain name" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "NT domain name is empty but you have checked to specifiy one!" ), GlobalConfig->error ); } else { profileData->setNtDomainName ( newprofilewizarduserpagecontent->NtDomainNameLineedit->text() ); profileData->setUseNtDomainName ( true ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "User options: NT domain name: %1" ).arg ( profileData->getNtDomainName() ), KVpncConfig::debug ); } } else { profileData->setUseNtDomainName ( false ); } } } else if ( currentpage == newprofilewizardnetworkpage ) { msg = i18n ( "These fields must be filled in:\n" ); bool validAddr = true; if ( ( profileData->getConnectionType() == VpnAccountData::freeswan || profileData->getConnectionType() == VpnAccountData::racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan || profileData->getConnectionType() == VpnAccountData::l2tpd_racoon ) ) { if (newprofilewizardnetworkcontent->UseRemoteNetworkCheckBox->isChecked()) { if ( !newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->text().isEmpty() ) { if ( newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->text().contains ( '.' ) != 3 ) { KMessageBox::error ( this, i18n ( "No remote network entered!" ), i18n ( "No remote network" ) ); validAddr = false; return ; } else { QString addr = newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->text(); int part0 = addr.section ( '.', 0, 0 ).toInt(); int part1 = addr.section ( '.', 1, 1 ).toInt(); int part2 = addr.section ( '.', 2, 2 ).toInt(); int part3 = addr.section ( '.', 3, 3 ).toInt(); /* LogOutput->append ("part0: "+QString().setNum(part0)); LogOutput->append ("part1: "+QString().setNum(part1)); LogOutput->append ("part2: "+QString().setNum(part2)); LogOutput->append ("part3: "+QString().setNum(part3)); */ if ( ( part0 < 1 || part0 > 254 ) || ( part1 < 0 || part1 > 254 ) || ( part2 < 0 || part2 > 254 ) || ( part3 < 0 || part3 > 254 ) ) { KMessageBox::error ( this, i18n ( "Invalid values in IP address (remote net)!" ), i18n ( "Invalid Values in IP Address" ) ); GlobalConfig->appendLogEntry ( i18n ( "Invalid values in IP address (remote net)!" ) , GlobalConfig->error ); validAddr = false; return ; } if ( validAddr == true ) { if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Use remote network: %1/%2" ).arg ( addr ).arg(newprofilewizardnetworkcontent->RemoteNetMaskComboBox->currentText()), KVpncConfig::debug ); profileData->setUseRemoteNetwork(true); profileData->setRemoteNetAddr ( addr ); profileData->setRemoteNetMask ( newprofilewizardnetworkcontent->RemoteNetMaskComboBox->currentText() ); } } } else { ok = false; msg += "- " + i18n ( "Remote network" ) + "\n"; GlobalConfig->appendLogEntry ( i18n ( "Remote network is empty!" ), GlobalConfig->error ); } } } profileData->setNetworkDevice ( newprofilewizardnetworkcontent->NetworkDeviceComboBox->currentText() ); profileData->setMtu ( newprofilewizardnetworkcontent->MtuSpinbox->value() ); if ( newprofilewizardnetworkcontent->MtuCheckbox->isChecked() ) { profileData->setUseMtu ( true ); if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Network options: use own MTU size: %1" ).arg ( profileData->getMtu() ) , GlobalConfig->debug ); } else profileData->setUseMtu ( false ); profileData->setMru ( newprofilewizardnetworkcontent->MruSpinbox->value() ); if ( newprofilewizardnetworkcontent->MruCheckbox->isChecked() ) { profileData->setUseMru ( true ); if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Network options: use own MRU size: %1" ).arg ( profileData->getMtu() ) , GlobalConfig->debug ); } else profileData->setUseMru ( false ); if ( profileData->getConnectionType() == VpnAccountData::ssh ) { profileData->setTunnelDeviceType(newprofilewizardnetworkcontent->TunnelDeviceTypeComboBox->currentText()); if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Network options: Tunnel device type: %1" ).arg ( profileData->getTunnelDeviceType() ) , GlobalConfig->debug ); tunnelDeviceTypeChanged(profileData->getTunnelDeviceType()); } } else if ( currentpage == newprofilewizardnetworkroutepage ) { msg = i18n ( "These fields must be filled in:\n" ); if ( newprofilewizardnetworkroutecontent->DefaultRouteComboBox->currentItem() == 1 ) { profileData->setReplaceDefaultRoute ( true ); if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Network route options: replace default route" ) , GlobalConfig->debug ); } else { profileData->setReplaceDefaultRoute ( false ); if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Network route options: dont replace default route" ) , GlobalConfig->debug ); } profileData->setUseAdditionalNetworkRoutes ( newprofilewizardnetworkroutecontent->UseExtraNetworkRoutesCheckbox->isChecked() ); if ( newprofilewizardnetworkroutecontent->UseExtraNetworkRoutesCheckbox->isChecked() && newprofilewizardnetworkroutecontent->NetworkListView->childCount() > 0 ) { if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Network route options: use additional network routes" ) , GlobalConfig->debug ); QStringList AdditionalNetworkRoutes; QListViewItemIterator it ( newprofilewizardnetworkroutecontent->NetworkListView ); for ( ; it.current(); ++it ) { // example entry: // /# QString network = QString ( it.current() ->text ( 0 ) + "/" + it.current() ->text ( 1 ) ); network.append ( "#" ); network.append ( it.current() ->text ( 2 ) ); // gateway network.append ( "#" ); network.append ( it.current() ->text ( 3 ) ); // interface AdditionalNetworkRoutes.append ( network ); if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Network route options: additional network: %1/%2 gw %3 %4" ).arg ( it.current() ->text ( 0 ) ).arg ( it.current() ->text ( 1 ) ).arg ( it.current() ->text ( 2 ) ).arg ( it.current() ->text ( 3 ) ) , GlobalConfig->debug ); } profileData->setAdditionalNetworkRoutes ( AdditionalNetworkRoutes ); } } else if ( currentpage == newprofilewizardnatpage ) { profileData->setUseUdp ( newprofilewizardnatcontent->UseUdpCheckbox->isChecked() ); profileData->setUseNat ( newprofilewizardnatcontent->UseNatCheckbox->isChecked() ); profileData->setUseUdpPort ( newprofilewizardnatcontent->UdpPortCheckbox->isChecked() ); profileData->setUdpPort ( newprofilewizardnatcontent->UdpPortSpinbox->value() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) { if ( profileData->getUseNat() ) GlobalConfig->appendLogEntry ( i18n ( "NAT settings: use NAT" ), KVpncConfig::debug ); else GlobalConfig->appendLogEntry ( i18n ( "NAT settings: use no NAT" ), KVpncConfig::debug ); if ( profileData->getUseUdp() ) GlobalConfig->appendLogEntry ( i18n ( "NAT settings: use UDP" ), KVpncConfig::debug ); else GlobalConfig->appendLogEntry ( i18n ( "NAT settings: use UDP" ), KVpncConfig::debug ); if ( profileData->getUseUdpPort() ) GlobalConfig->appendLogEntry ( i18n ( "NAT settings: use userdefined Port: %1" ).arg ( QString().setNum ( profileData->getUdpPort() ) ), KVpncConfig::debug ); } } else if ( currentpage == newprofilewizardconnectoptionspage ) { connectaftercreating = newprofilewizardconnectoptionscontent->ConnectAfterCreatingProfileCheckBox->isChecked(); if ( GlobalConfig->KvpncDebugLevel > 0 ) if ( connectaftercreating ) GlobalConfig->appendLogEntry ( i18n ( "Connect options: connecting to profile \"%1\" after creating it." ).arg ( profileData->getName() ) , GlobalConfig->debug ); } else if ( currentpage == newprofilewizardconnectionstatuscheckpage ) { msg = i18n ( "These fields must be filled in:\n" ); if ( newprofilewizardconnectionstatuscheckcontent->UseConnectionStatusCheckCheckBox->isChecked() ) { profileData->setUseConnectionStatusCheck ( true ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Connection status check: use connection status check" ), KVpncConfig::debug ); } else { profileData->setUseConnectionStatusCheck ( false ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Connection status check: dont use connection status check" ), KVpncConfig::debug ); } if ( newprofilewizardconnectionstatuscheckcontent->DoReconnectAfterConnectionLostCheckBox->isChecked() ) { profileData->setDoReconnectAfterConnectionLost ( true ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Connection status check: do reconnect after connection lost" ), KVpncConfig::debug ); } else { profileData->setDoReconnectAfterConnectionLost ( false ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Connection status check: dont reconnect after connection lost" ), KVpncConfig::debug ); } if ( newprofilewizardconnectionstatuscheckcontent->PingUserdefiniedAddressCheckBox->isChecked() ) { profileData->setDoPingIP ( true ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Connection status check: ping userdefined IP address" ), KVpncConfig::debug ); } else { profileData->setDoPingIP ( false ); if ( GlobalConfig->KvpncDebugLevel > 0 ) GlobalConfig->appendLogEntry ( i18n ( "Connection status check: dont ping userdefined IP address" ), KVpncConfig::debug ); } profileData->setConnectionStatusInterval ( newprofilewizardconnectionstatuscheckcontent->ConnectionStatusCheckIntervalNumInput->value() ); profileData->setConnectionStatusCheckSuccessCount ( newprofilewizardconnectionstatuscheckcontent->ConnectionStatusSuccessCountNumInput->value() ); if ( GlobalConfig->KvpncDebugLevel > 0 ) { GlobalConfig->appendLogEntry ( i18n ( "Connection status check: use connection interval: %1" ).arg ( QString().setNum ( newprofilewizardconnectionstatuscheckcontent->ConnectionStatusCheckIntervalNumInput->value() ) ), KVpncConfig::debug ); GlobalConfig->appendLogEntry ( i18n ( "Connection status check: success count: %1" ).arg ( QString().setNum ( newprofilewizardconnectionstatuscheckcontent->ConnectionStatusSuccessCountNumInput->value() ) ), KVpncConfig::debug ); } if ( newprofilewizardconnectionstatuscheckcontent->UseConnectionStatusCheckCheckBox->isChecked() ) { if ( newprofilewizardconnectionstatuscheckcontent->PingUserdefiniedAddressCheckBox->isChecked() ) { if ( !newprofilewizardconnectionstatuscheckcontent->UserdefiniedPingIPLineEdit->text().isEmpty() ) { if ( Utils ( GlobalConfig ).isValidIPv4Address ( newprofilewizardconnectionstatuscheckcontent->UserdefiniedPingIPLineEdit->text() ) ) profileData->setPingHostIP ( newprofilewizardconnectionstatuscheckcontent->UserdefiniedPingIPLineEdit->text() ); else { ok = false; msg = i18n ( "The value of userdefined IP address is not a valid IP address!" ); } } else { ok = false; msg += i18n ( "Userdefinied IP for ping" ) + "\n"; } } } } else if ( currentpage == endpage ) {} if ( ok ) { previouspage = currentpage; QWizard::next(); } else { KMessageBox::error ( this, msg ); } } void NewProfileWizard::back() { /* currentpage=previouspage; // showPage(previouspage); if ( currentpage == page1 ) { // nothing here } else if ( currentpage == newprofilewizardgeneralpage ) { newprofilewizardgeneralpagecontent->NameLineEdit->setText(profileData->getName()); newprofilewizardgeneralpagecontent->gatewayLineEdit->setText(profileData->getGateway()); newprofilewizardgeneralpagecontent->DescriptionLineEdit->setText(profileData->getDescription()); } else if ( currentpage == newprofilewizardtypeselectionpage ) { if ( profileData->getConnectionType() == VpnAccountData::cisco ) newprofilewizardtypeselectionpagecontent->CiscoRadioButton->setChecked(true); else if ( profileData->getConnectionType() == VpnAccountData::freeswan || profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan ) newprofilewizardtypeselectionpagecontent->FreeswanRadioButton->setChecked(true); else if ( profileData->getConnectionType() == VpnAccountData::racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_racoon) newprofilewizardtypeselectionpagecontent->FreeswanRadioButton->setChecked(true); else if ( profileData->getConnectionType() == VpnAccountData::pptp ) newprofilewizardtypeselectionpagecontent->PptpRadioButton->setChecked(true); else if ( profileData->getConnectionType() == VpnAccountData::openvpn ) newprofilewizardtypeselectionpagecontent->OpenvpnRadioButton->setChecked(true); } else if ( currentpage == newprofilewizardciscoselectionpage ) {} else if ( currentpage == newprofilewizardciscomanuallypage ) { newprofilewizardciscomanuallypagecontent->IDLineEdit->setText(profileData->getGateway()); newprofilewizardciscomanuallypagecontent->AllowEmptyGroupPasswordCheckBox->setChecked(profileData->getAllowEmptyGroupPassword()); newprofilewizardciscomanuallypagecontent->GroupPasswordLineEdit->setText(profileData->getPreSharedKey()); profileData->setID(newprofilewizardciscomanuallypagecontent->IDLineEdit->text()); insertPage ( newprofilewizardciscoselectionpage, ""+ i18n("Cisco selection")+"", 2 ); } else if ( currentpage == newprofilewizardracoonpage ) { newprofilewizardracoonpagecontent->HashAlgoComboBox->setCurrentText(profileData->getHashAlgo()); insertPage ( newprofilewizardciscoselectionpage,""+ i18n("Cisco selection")+"" , 2 ); insertPage ( newprofilewizardciscomanuallypage, ""+ i18n("Cisco settings")+"", 3 ); insertPage ( newprofilewizardopenvpnselectionpage, ""+ i18n("FreeS/WAN settings") , 4 ); insertPage ( newprofilewizardopenvpnselectionpage, ""+ i18n("OpenVPN settings")+"" , 5 ); insertPage ( newprofilewizardpptppage, ""+ i18n("PPTP settings")+"", 6 ); } else if ( currentpage == newprofilewizardfreeswanpage ) { insertPage ( newprofilewizardciscoselectionpage,""+ i18n("Cisco selection")+"" , 2 ); insertPage ( newprofilewizardciscomanuallypage, ""+ i18n("Cisco settings")+"", 3 ); insertPage ( newprofilewizardracoonpage, ""+ i18n("Racoon settings")+"" , 4 ); insertPage ( newprofilewizardopenvpnselectionpage, ""+ i18n("FreeS/WAN settings") , 4 ); insertPage ( newprofilewizardpptppage, ""+ i18n("PPTP settings")+"", 5 ); } else if ( currentpage == newprofilewizardopenvpnpage ) { newprofilewizardopenvpnpagecontent->TunnelDeviceTypeComboBox->setCurrentText(profileData->getTunnelDeviceType() ); newprofilewizardopenvpnpagecontent->NsCertTypeComboBox->setCurrentText(profileData->getNsCertType()); newprofilewizardopenvpnpagecontent->TunnelDeviceTypeComboBox->setCurrentText(profileData->getTunnelDeviceType() ); newprofilewizardopenvpnpagecontent->UseRedirectGatewayCheckBox->setChecked(profileData->getUseRedirectGateway() ); newprofilewizardopenvpnpagecontent->UserdefiniedCipherComboBox->setCurrentText(profileData->getUserdefiniedCipher()); newprofilewizardopenvpnpagecontent->UseUserdefiniedCipherCheckBox->setChecked(profileData->getUseUserdefiniedCipher()); newprofilewizardopenvpnpagecontent->UseTlsAuthCheckBox->setChecked(profileData->getUseTlsAuth()); newprofilewizardopenvpnpagecontent->TlsAuthURLRequester->setURL(profileData->getTlsAuthFile()); profileData->setUseTlsRemoteHost( newprofilewizardopenvpnpagecontent->UseTlsAuthCheckBox->isChecked()); profileData->setTlsRemoteHost( newprofilewizardopenvpnpagecontent->TlsRemoteHostLineEdit->text()); profileData->setUseHttpProxy( newprofilewizardopenvpnpagecontent->UseHttpProxyCheckBox->isChecked() ); profileData->setHttpProxy( newprofilewizardopenvpnpagecontent->HttpProxyLineEdit->text( ) ); profileData->setHttpProxyPort( newprofilewizardopenvpnpagecontent->HttpProxyPortIntNumInput->value( ) ); profileData->setHttpProxyTimeout( newprofilewizardopenvpnpagecontent->HttpProxyTimeoutIntSpinBox->value() ); insertPage ( newprofilewizardciscoselectionpage,""+ i18n("Cisco selection")+"" , 2 ); insertPage ( newprofilewizardciscomanuallypage, ""+ i18n("Cisco settings")+"", 3 ); insertPage ( newprofilewizardfreeswanpage, ""+ i18n("Ipsec settings") , 4 ); insertPage ( newprofilewizardracoonpage, ""+ i18n("Racoon settings")+"" , 5 ); insertPage ( newprofilewizardpptppage, ""+ i18n("PPTP settings")+"", 6 ); } else if ( currentpage == newprofilewizardpptppage ) { insertPage ( newprofilewizardciscoselectionpage,""+ i18n("Cisco selection")+"" , 2 ); insertPage ( newprofilewizardciscomanuallypage, ""+ i18n("Cisco settings")+"", 3 ); insertPage ( newprofilewizardfreeswanpage, ""+ i18n("IPsec settings") , 4 ); insertPage ( newprofilewizardracoonpage, ""+ i18n("Racoon settings")+"" , 5 ); insertPage ( newprofilewizardopenvpnpage, ""+i18n("OpenVPN settings")+"", 6 ); } else if ( currentpage == newprofilewizarduserpage ) { newprofilewizarduserpagecontent->UsernameLineEdit->setText(profileData->getUserName()); newprofilewizarduserpagecontent->PasswordEdit->setText(profileData->getUserPassword() ); newprofilewizarduserpagecontent->CheckUserPass->setChecked(profileData->getSaveUserPassword()); } else if ( currentpage == newprofilewizardnetworkpage ) { newprofilewizardnetworkcontent->RemoteNetAddrLineEdit->setText(profileData->getRemoteNetAddr() ); newprofilewizardnetworkcontent->RemoteNetMaskComboBox->setCurrentText(profileData->getRemoteNetMask()); newprofilewizardnetworkcontent->NetworkDeviceComboBox->setCurrentText(profileData->getNetworkDevice()); } else if ( currentpage == newprofilewizardnatpage ) { newprofilewizardnatcontent->UseUdpCheckbox->setChecked(profileData->getUseUdp()); newprofilewizardnatcontent->UdpPortCheckbox->setChecked(profileData->getUseUdpPort ()); newprofilewizardnatcontent->UdpPortSpinbox->setValue(profileData->getUdpPort()); } */ QWizard::back(); } QString NewProfileWizard::getName() { return profileData->getName(); } bool NewProfileWizard::getFinished() { return finished; } // void NewProfileDialog::reject() // { // // } void NewProfileWizard::showPage ( QWidget* page ) { currentpage = page; QWizard::showPage ( page ); // FIXME set currentpage at back() //backButton()->setEnabled(false); helpButton() ->setEnabled ( false ); if ( page == endpage ) { finishButton() ->setEnabled ( TRUE ); finishButton() ->setFocus(); } } void NewProfileWizard::dataChanged ( const QString & ) { // if ( !firstName->text().isEmpty() && // !lastName->text().isEmpty() && // !email->text().isEmpty() ) // nextButton()->setEnabled( TRUE ); // else // nextButton()->setEnabled( FALSE ); } void NewProfileWizard::userdefinedOpenvpnPortToggeled ( bool ) { if ( newprofilewizardopenvpnpagecontent->UseUserdefinedPortCheckBox->isChecked() ) newprofilewizardopenvpnpagecontent->UserdefinedPortSpinBox->setEnabled ( true ); else newprofilewizardopenvpnpagecontent->UserdefinedPortSpinBox->setEnabled ( false ); } void NewProfileWizard::nsCertTypeOpenvpnToggled ( bool ) { if ( newprofilewizardopenvpnpagecontent->UseNsCertTypeCheckBox->isChecked() ) newprofilewizardopenvpnpagecontent->NsCertTypeComboBox->setEnabled ( true ); else newprofilewizardopenvpnpagecontent->NsCertTypeComboBox->setEnabled ( false ); } void NewProfileWizard::pskIsInFileToggled ( bool ) { if ( newprofilewizardpskcontent->PskInFileCheckBox->isChecked() ) { newprofilewizardpskcontent->LabelPskFile->setEnabled ( TRUE ); newprofilewizardpskcontent->PSKFileURLRequester->setEnabled ( TRUE ); newprofilewizardpskcontent->LabelPsk->setEnabled ( FALSE ); newprofilewizardpskcontent->PSKLineEdit->setEnabled ( FALSE ); } else { newprofilewizardpskcontent->LabelPskFile->setEnabled ( FALSE ); newprofilewizardpskcontent->PSKFileURLRequester->setEnabled ( FALSE ); newprofilewizardpskcontent->LabelPsk->setEnabled ( TRUE ); newprofilewizardpskcontent->PSKLineEdit->setEnabled ( TRUE ); } } void NewProfileWizard::useNatToggled ( bool ) { if ( newprofilewizardnatcontent->UseNatCheckbox->isChecked() ) { newprofilewizardnatcontent->UdpPortCheckbox->setEnabled ( TRUE ); newprofilewizardnatcontent->UdpPortSpinbox->setEnabled ( FALSE ); } else { newprofilewizardnatcontent->UdpPortCheckbox->setEnabled ( FALSE ); newprofilewizardnatcontent->UdpPortSpinbox->setEnabled ( FALSE ); } } void NewProfileWizard::udpPortToggled ( bool ) { if ( newprofilewizardnatcontent->UdpPortCheckbox->isChecked() ) { newprofilewizardnatcontent->UdpPortSpinbox->setEnabled ( TRUE ); } else { newprofilewizardnatcontent->UdpPortSpinbox->setEnabled ( FALSE ); } } void NewProfileWizard::pingIpAfterConnectToggled ( bool ) { if ( newprofilewizardconnectionstatuscheckcontent->PingUserdefiniedAddressCheckBox->isChecked() ) newprofilewizardconnectionstatuscheckcontent->UserdefiniedPingIPLineEdit->setEnabled ( true ); else newprofilewizardconnectionstatuscheckcontent->UserdefiniedPingIPLineEdit->setEnabled ( false ); } void NewProfileWizard::useUserdefiniedCipherToggled ( bool ) { if ( newprofilewizardopenvpnpagecontent->UseUserdefiniedCipherCheckBox->isChecked() ) newprofilewizardopenvpnpagecontent->UserdefiniedCipherComboBox->setEnabled ( true ); else newprofilewizardopenvpnpagecontent->UserdefiniedCipherComboBox->setEnabled ( false ); } void NewProfileWizard::useSpecialServerCertificateToggled ( bool ) { if ( newprofilewizardcertcontent->UseSpecialServerCertificateCheckBox->isChecked() ) { newprofilewizardcertcontent->SpecialServerCertificateURLRequester->setEnabled ( TRUE ); } else { newprofilewizardcertcontent->SpecialServerCertificateURLRequester->setEnabled ( FALSE ); } } void NewProfileWizard::useTlsAuthToggled ( bool ) { if ( newprofilewizardopenvpnpagecontent->UseTlsAuthCheckBox ->isChecked() ) { newprofilewizardopenvpnpagecontent->TlsAuthURLRequester->setEnabled ( true ); newprofilewizardopenvpnpagecontent->UseTlsRemoteHostCheckBox->setEnabled ( true ); } else { newprofilewizardopenvpnpagecontent->TlsAuthURLRequester->setEnabled ( false ); newprofilewizardopenvpnpagecontent->UseTlsRemoteHostCheckBox->setEnabled ( false ); } } void NewProfileWizard::useHttpProxyToggeled ( bool ) { if ( newprofilewizardopenvpnpagecontent->UseHttpProxyCheckBox->isChecked() ) { newprofilewizardopenvpnpagecontent->HostTextLabel->setEnabled ( true ); newprofilewizardopenvpnpagecontent->HttpProxyLineEdit->setEnabled ( true ); newprofilewizardopenvpnpagecontent->TimeoutTextLabel->setEnabled ( true ); newprofilewizardopenvpnpagecontent->HttpProxyTimeoutIntSpinBox->setEnabled ( true ); newprofilewizardopenvpnpagecontent->PortTextextLabel->setEnabled ( true ); newprofilewizardopenvpnpagecontent->HttpProxyPortIntNumInput->setEnabled ( true ); } else { newprofilewizardopenvpnpagecontent->HostTextLabel->setEnabled ( false ); newprofilewizardopenvpnpagecontent->HttpProxyLineEdit->setEnabled ( false ); newprofilewizardopenvpnpagecontent->TimeoutTextLabel->setEnabled ( false ); newprofilewizardopenvpnpagecontent->HttpProxyTimeoutIntSpinBox->setEnabled ( false ); newprofilewizardopenvpnpagecontent->PortTextextLabel->setEnabled ( false ); newprofilewizardopenvpnpagecontent->HttpProxyPortIntNumInput->setEnabled ( false ); } } void NewProfileWizard::useTlsRemoteHostToggled ( bool ) { if ( newprofilewizardopenvpnpagecontent->UseTlsRemoteHostCheckBox->isChecked() ) newprofilewizardopenvpnpagecontent->TlsRemoteHostLineEdit->setEnabled ( true ); else newprofilewizardopenvpnpagecontent->TlsRemoteHostLineEdit->setEnabled ( false ); } void NewProfileWizard::connectionStatusCheckToggled ( bool ) { if ( !newprofilewizardconnectionstatuscheckcontent->UseConnectionStatusCheckCheckBox->isChecked() ) { newprofilewizardconnectionstatuscheckcontent->ConnectionStatusCheckIntervalNumInput->setEnabled ( false ); newprofilewizardconnectionstatuscheckcontent->ConnectionStatusSuccessCountNumInput->setEnabled ( false ); } else { newprofilewizardconnectionstatuscheckcontent->ConnectionStatusCheckIntervalNumInput->setEnabled ( true ); newprofilewizardconnectionstatuscheckcontent->ConnectionStatusSuccessCountNumInput->setEnabled ( true ); } } bool NewProfileWizard::importProfile ( VpnAccountData::ConnectionType ConnType ) { // FIXME make dlg dynamiclly bool success = true; if ( ConnType == VpnAccountData::cisco || ConnType == VpnAccountData::ciscoorig ) { ImportProfileDialog dlg ( GlobalConfig, this, i18n ( "Import Cisco PCF profile" ), "" ); dlg.exec(); importOK = dlg.importOk; if ( importOK ) { profileData = dlg.acc; KMessageBox::information ( 0, i18n ( "Import of \"%1\" was successful." ).arg ( profileData->getName() ) ); GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) was successful." ).arg ( profileData->getName() ).arg ( "PCF" ), GlobalConfig->info ); } else { KMessageBox::sorry ( 0, i18n ( "Import of \"%1\" has been failed." ).arg ( profileData->getName() ) ); GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) has been failed." ).arg ( profileData->getName() ).arg ( "PCF" ), GlobalConfig->error ); success = false; } } if ( ConnType == VpnAccountData::openvpn ) { ImportOpenvpnProfileDialog dlg ( GlobalConfig, this, i18n ( "Import OpenVPN profile" ), "" ); dlg.exec(); importOK = dlg.importOk; if ( importOK ) { profileData = dlg.acc; KMessageBox::information ( 0, i18n ( "Import of \"%1\" was successful." ).arg ( profileData->getName() ) ); GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) was successful." ).arg ( profileData->getName() ).arg ( "OpenVPN" ), GlobalConfig->info ); } else { KMessageBox::sorry ( 0, i18n ( "Import of \"%1\" has been failed." ).arg ( profileData->getName() ) ); GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) has been failed." ).arg ( profileData->getName() ).arg ( "OpenVPN" ), GlobalConfig->error ); success = false; } } if ( ConnType == VpnAccountData::freeswan ) { ImportIpsecProfileDialog dlg ( GlobalConfig, this, i18n ( "Import IPSec profile" ), "" ); dlg.setCaption(i18n("Import IPSec config")); dlg.exec(); importOK = dlg.importOk; if ( importOK ) { profileData = dlg.acc; KMessageBox::information ( 0, i18n ( "Import of \"%1\" was successful." ).arg ( profileData->getName() ) ); GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) was successful." ).arg ( dlg.main->FilenameUrlrequester->url() ).arg ( "IPSec" ), GlobalConfig->info ); } else { KMessageBox::sorry ( 0, i18n ( "Import of \"%1\" has been failed." ).arg ( profileData->getName() ) ); GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) has been failed." ).arg ( dlg.main->FilenameUrlrequester->url() ).arg ( "IPsec" ), GlobalConfig->error ); success = false; } } return success; } bool NewProfileWizard::importCertificate() { bool success = true; newprofilewizardcertcontent->CaCertpathURLRequester->clear(); newprofilewizardcertcontent->certpathURLRequester->clear(); newprofilewizardcertcontent->PrivkeyPasswordEdit->clear(); ImportCertificateDialog dlg ( this, i18n ( "Import Certificate..." ).ascii(), GlobalConfig ); if ( profileData->getConnectionType() == VpnAccountData::freeswan || profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan ) { dlg.main->ImporttypeComboBox->setCurrentItem ( ImportCertificateDialog::pkcs12_freeswan ); dlg.typeToggeled ( ImportCertificateDialog::pkcs12_freeswan ); } else if ( profileData->getConnectionType() == VpnAccountData::racoon || profileData->getConnectionType() == VpnAccountData::l2tpd_racoon ) { dlg.main->ImporttypeComboBox->setCurrentItem ( ImportCertificateDialog::pkcs12_racoon ); dlg.main->PrivateKeyPassGroupBox->setEnabled ( false ); dlg.main->UsePrivateKeyPasswordCheckBox->setChecked(false); dlg.typeToggeled ( ImportCertificateDialog::pkcs12_racoon ); } else if ( profileData->getConnectionType() == VpnAccountData::openvpn ) { dlg.main->ImporttypeComboBox->setCurrentItem ( ImportCertificateDialog::pkcs12_openvpn ); dlg.typeToggeled ( ImportCertificateDialog::pkcs12_openvpn ); dlg.main->RacoonCertificatePathUrlrequester->setEnabled ( true ); dlg.main->RacoonCertificatePathUrlrequester->setURL ( profileData->getCertPath() ); dlg.main->PrivateKeyPassGroupBox->setEnabled ( true ); dlg.main->PrivateKeyPasswordEdit->setEnabled ( true ); dlg.main->PrivateKeyAgainPasswordEdit->setEnabled ( true ); } else if ( profileData->getConnectionType() == VpnAccountData::ciscoorig ) { dlg.main->ImporttypeComboBox->setCurrentItem ( ImportCertificateDialog::cisco ); dlg.typeToggeled ( ImportCertificateDialog::cisco); dlg.main->RacoonCertificatePathUrlrequester->setEnabled ( false ); // dlg.main->RacoonCertificatePathUrlrequester->hide(); dlg.main->PrivateKeyPassGroupBox->setEnabled ( true ); dlg.main->PrivateKeyPasswordEdit->setEnabled ( true ); dlg.main->PrivateKeyAgainPasswordEdit->setEnabled ( true ); } dlg.exec(); importOK = dlg.importOk; QString filename = dlg.filename; if ( importOK ) { QString certpath = dlg.certpath; QString CertFullPath = dlg.CertFullPath; QString CaCertFullPath = dlg.CaCertFullPath; QString importpassword = dlg.main->ImportPasswordEdit->text(); QString privatekeypassword = dlg.main->PrivateKeyPasswordEdit->password(); QString certificate = QString ( "mykeys_" + dlg.certName + ".pem" ); QString privatekey = QString ( dlg.certName + ".pem" ); QString certpostfix = ""; QString privatepostfix = ""; if ( profileData->getConnectionType() == VpnAccountData::freeswan || profileData->getConnectionType() == VpnAccountData::l2tpd_freeswan ) { certpostfix = "certs/"; privatepostfix = "private/"; } newprofilewizardcertcontent->CaCertpathURLRequester->setURL ( CaCertFullPath ); if ( profileData->getConnectionType() == VpnAccountData::openvpn ) newprofilewizardcertcontent->PrivkeyPasswordEdit->setText ( importpassword ); else newprofilewizardcertcontent->PrivkeyPasswordEdit->setText ( privatekeypassword ); if ( profileData->getConnectionType() == VpnAccountData::l2tpd_racoon || profileData->getConnectionType() == VpnAccountData::racoon ) newprofilewizardcertcontent->PrivkeyPasswordEdit->setEnabled ( false ); newprofilewizardcertcontent->certpathURLRequester->setURL ( certpath ); if ( profileData->getConnectionType() == VpnAccountData::l2tpd_racoon || profileData->getConnectionType() == VpnAccountData::racoon ) { newprofilewizardcertcontent->privkeypathURLRequester->setURL ( certpath + "/" + certpostfix + certificate ); newprofilewizardcertcontent->LabelPrivateKeyPassword->setEnabled ( false ); } else newprofilewizardcertcontent->privkeypathURLRequester->setURL ( certpath + "/" + privatepostfix + privatekey ); newprofilewizardcertcontent->x509certURLRequester->setURL ( certpath + "/" + certpostfix + certificate ); KMessageBox::information ( 0, i18n ( "Import of \"%1\" was successful." ).arg ( filename ) ); GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) was successful." ).arg ( filename ).arg ( "P12 certificate" ), GlobalConfig->info ); } else { GlobalConfig->appendLogEntry ( i18n ( "Import of \"%1\" (%2) has been failed." ).arg ( filename ).arg ( "P12 certificate" ), GlobalConfig->info ); success = false; } return success; } void NewProfileWizard::authenticateWithUsernameAndPasswordToggled ( bool ) { if ( newprofilewizardopenvpnauthpagecontent->AuthWithUsernameAndPasswordCheckBox->isChecked() ) newprofilewizardopenvpnauthpagecontent->UseOnlyCaCertAndUserAuthCheckBox->setEnabled ( true ); else newprofilewizardopenvpnauthpagecontent->UseOnlyCaCertAndUserAuthCheckBox->setEnabled ( false ); } void NewProfileWizard::pskInputToggled ( const QString& ) { if ( !newprofilewizardpskcontent->PSKLineEdit->text().isEmpty() ) newprofilewizardpskcontent->CheckSavePsk->setChecked ( true ); else newprofilewizardpskcontent->CheckSavePsk->setChecked ( false ); } void NewProfileWizard::userpassToggled ( const QString& ) { if ( !newprofilewizarduserpagecontent->PasswordEdit->text().isEmpty() ) newprofilewizarduserpagecontent->CheckUserPass->setChecked ( true ); else newprofilewizarduserpagecontent->CheckUserPass->setChecked ( false ); } void NewProfileWizard::usernameToggled ( const QString& ) { // if (newprofilewizarduserpagecontent->UsernameLineEdit->text().isEmpty()) // newprofilewizarduserpagecontent->DontSaveUsernameCheckBox->setChecked(true); // else // newprofilewizarduserpagecontent->DontSaveUsernameCheckBox->setChecked(false); } void NewProfileWizard::pskToggled ( const QString& ) { if ( !newprofilewizardciscomanuallypagecontent->GroupPasswordLineEdit->text().isEmpty() ) newprofilewizardciscomanuallypagecontent->CheckSavePsk->setChecked ( true ); else newprofilewizardciscomanuallypagecontent->CheckSavePsk->setChecked ( false ); } void NewProfileWizard::useRightNextHopToggled ( bool ) { if ( newprofilewizardfreeswanpagecontent->UseRightNextHopCheckBox->isChecked() ) newprofilewizardfreeswanpagecontent->RightNextHopLineEdit->setEnabled ( true ); else newprofilewizardfreeswanpagecontent->RightNextHopLineEdit->setEnabled ( false ); } void NewProfileWizard::useLeftNextHopToggled ( bool ) { if ( newprofilewizardfreeswanpagecontent->UseLeftNextHopCheckBox->isChecked() ) newprofilewizardfreeswanpagecontent->LeftNextHopLineEdit->setEnabled ( true ); else newprofilewizardfreeswanpagecontent->LeftNextHopLineEdit->setEnabled ( false ); } void NewProfileWizard::additionalNetworkRoutesToggled ( bool ) { if ( newprofilewizardnetworkroutecontent->UseExtraNetworkRoutesCheckbox->isChecked() ) { newprofilewizardnetworkroutecontent->NetworkListView->setEnabled ( TRUE ); newprofilewizardnetworkroutecontent->DeleteNetworkRoutePushButton->setEnabled ( TRUE ); newprofilewizardnetworkroutecontent->AddRoutePushButton->setEnabled ( TRUE ); } else { newprofilewizardnetworkroutecontent->NetworkListView->setEnabled ( FALSE ); newprofilewizardnetworkroutecontent->DeleteNetworkRoutePushButton->setEnabled ( FALSE ); newprofilewizardnetworkroutecontent->AddRoutePushButton->setEnabled ( FALSE ); } } void NewProfileWizard::delNetworkRouteClicked() { if ( newprofilewizardnetworkroutecontent->NetworkListView->childCount() > 0 && newprofilewizardnetworkroutecontent->NetworkListView->currentItem() != 0 ) { QListViewItem * item = newprofilewizardnetworkroutecontent->NetworkListView->currentItem(); QString Network = item->text ( 0 ); QString Netmask = item->text ( 1 ); int result = KMessageBox::questionYesNo ( this, i18n ( "Do you really want to delete the network \"%1/%2\"?" ).arg ( Network ).arg ( Netmask ), i18n ( "Delete?" ) ); //LogOutput->append( "Result: "+ QString().setNum(result) ) ; if ( result == 3 ) // Yes { newprofilewizardnetworkroutecontent->NetworkListView->removeItem ( item ); } } } void NewProfileWizard::addNetworkRouteClicked() { AddNetworkRouteDialog dlg ( this, i18n ( "Add Network Route..." ) ); dlg.main->InterfaceComboBox->insertItem ( "default" ); // interface where default route points //FIXME dlg.main->InterfaceComboBox->insertItem ( "eth0" ); dlg.main->InterfaceComboBox->insertItem ( "eth1" ); dlg.main->InterfaceComboBox->insertItem ( "eth2" ); dlg.main->InterfaceComboBox->insertItem ( "ipsec0" ); dlg.main->InterfaceComboBox->insertItem ( "tun0" ); dlg.main->InterfaceComboBox->insertItem ( "ppp0" ); if ( dlg.exec() ) { QString gateway = dlg.getGateway(); QString interface = dlg.getInterface(); if ( !dlg.getUseGateway() ) gateway = "-"; if ( !dlg.getUseInterface() ) interface = "-"; newprofilewizardnetworkroutecontent->NetworkListView->insertItem ( new QListViewItem ( newprofilewizardnetworkroutecontent->NetworkListView, dlg.getNetwork(), dlg.getNetmask(), gateway, interface ) ); } } void NewProfileWizard::domainNameToggled ( bool ) { if ( newprofilewizarduserpagecontent->NtDomainNameCheckbox->isChecked() ) newprofilewizarduserpagecontent->NtDomainNameLineedit->setEnabled ( true ); else newprofilewizarduserpagecontent->NtDomainNameLineedit->setEnabled ( false ); } void NewProfileWizard::useSmartcardToggled ( bool ) { if ( newprofilewizardcertcontent->UseSmartcardCheckBox->isChecked() ) { newprofilewizardcertcontent->SmartcardGroupBox->setEnabled ( true ); newprofilewizardcertcontent->x509certURLRequester->setEnabled ( false ); newprofilewizardcertcontent->PrivkeyPasswordEdit->setEnabled ( false ); newprofilewizardcertcontent->privkeypathURLRequester->setEnabled ( false ); newprofilewizardcertcontent->LabelCertificate->setEnabled ( false ); newprofilewizardcertcontent->LabelPrivateKeyPath->setEnabled ( false ); newprofilewizardcertcontent->LabelPrivateKeyPassword->setEnabled ( false ); newprofilewizardcertcontent->Pkcs11IdTypeComboBox->setEnabled ( false ); // newprofilewizardcertcontent->CertificateGroupBox->setEnabled(false); // if ( profileData->getConnectionType() == VpnAccountData::freeswan || GlobalConfig->currentProfile->getConnectionType() == VpnAccountData::l2tpd_freeswan ) // { // ToolInfo IpsecToolInfo( GlobalConfig->programsInPath , "ipsec" ); // if ( GlobalConfig->programsInPath ) // { // IpsecToolInfo.addSearchPath( "/sbin" ); // IpsecToolInfo.addSearchPath( "/usr/local/sbin" ); // IpsecToolInfo.addSearchPath( "/usr/sbin" ); // IpsecToolInfo.addSearchPath( "/bin" ); // IpsecToolInfo.addSearchPath( "/usr/local/bin" ); // IpsecToolInfo.addSearchPath( "/usr/bin" ); // } // IpsecToolInfo.collectToolInfo(); // if (IpsecToolInfo.Version.contains("Openswan") || IpsecToolInfo.Version.contains("Free")) // KMessageBox::information(0,i18n("%1 (IPSec) currently has no working smartcard support (pkcs11). Please use strongSwan instead with enabled smartcard support.").arg(IpsecToolInfo.Version.section(' ',0,0)),i18n("Unsupported IPSec version")); // } } else { newprofilewizardcertcontent->SmartcardGroupBox->setEnabled ( false ); newprofilewizardcertcontent->x509certURLRequester->setEnabled ( true ); newprofilewizardcertcontent->PrivkeyPasswordEdit->setEnabled ( true ); newprofilewizardcertcontent->privkeypathURLRequester->setEnabled ( true ); newprofilewizardcertcontent->LabelCertificate->setEnabled ( true ); newprofilewizardcertcontent->LabelPrivateKeyPath->setEnabled ( true ); newprofilewizardcertcontent->LabelPrivateKeyPassword->setEnabled ( true ); // newprofilewizardcertcontent->CertificateGroupBox->setEnabled(true); } } void NewProfileWizard::useSmartcardOnCertFormateToggled ( bool ) { if ( newprofilewizardp12certselectioncontent->UseSmartcardCheckBox->isChecked() ) { newprofilewizardp12certselectioncontent->P12Group->setEnabled ( false ); // if ( profileData->getConnectionType() == VpnAccountData::freeswan || GlobalConfig->currentProfile->getConnectionType() == VpnAccountData::l2tpd_freeswan ) // { // ToolInfo IpsecToolInfo( GlobalConfig->programsInPath , "ipsec" ); // if ( GlobalConfig->programsInPath ) // { // IpsecToolInfo.addSearchPath( "/sbin" ); // IpsecToolInfo.addSearchPath( "/usr/local/sbin" ); // IpsecToolInfo.addSearchPath( "/usr/sbin" ); // IpsecToolInfo.addSearchPath( "/bin" ); // IpsecToolInfo.addSearchPath( "/usr/local/bin" ); // IpsecToolInfo.addSearchPath( "/usr/bin" ); // } // IpsecToolInfo.collectToolInfo(); // if (IpsecToolInfo.Version.contains("Openswan") || IpsecToolInfo.Version.contains("Free")) // KMessageBox::information(0,i18n("%1 (IPSec) currently has no working smartcard support (pkcs11). Please use strongSwan instead with enabled smartcard support.").arg(IpsecToolInfo.Version.section(' ',0,0)),i18n("Unsupported IPSec version")); // } } else { newprofilewizardp12certselectioncontent->P12Group->setEnabled ( true ); } } void NewProfileWizard::usePkcs11ProvidersToggled ( bool ) { if ( newprofilewizardcertcontent->UsePkcs11ProvidersCheckBox->isChecked() ) newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->setEnabled ( true ); else newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->setEnabled ( false ); } void NewProfileWizard::idTypeToggled() { // if (newprofilewizardcertcontent->Pkcs11IdTypeComboBox->currentItem() == 0) // newprofilewizardcertcontent->IdLabel->setText(i18n("ID")); // else if (newprofilewizardcertcontent->Pkcs11IdTypeComboBox->currentItem() == 1) // newprofilewizardcertcontent->IdLabel->setText(i18n("Label")); // else // newprofilewizardcertcontent->IdLabel->setText(i18n("Description")); } void NewProfileWizard::detectPkcs11Ids() { GlobalConfig->appPointer->setOverrideCursor ( QCursor ( Qt::WaitCursor ) ); newprofilewizardcertcontent->Pkcs11IdComboBox->clear(); int Pkcs11IdType = newprofilewizardcertcontent->Pkcs11IdTypeComboBox->currentItem(); QString Pkcs11IdTypeTmp; if ( Pkcs11IdType == 0 ) { Pkcs11IdTypeTmp = "id"; if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Pkcs11IdType: %1" ).arg ( Pkcs11IdTypeTmp ), KVpncConfig::debug ); } else if ( Pkcs11IdType == 1 ) { Pkcs11IdTypeTmp = "label"; if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Pkcs11IdType: %1" ).arg ( Pkcs11IdTypeTmp ), KVpncConfig::debug ); } else { Pkcs11IdTypeTmp = "subject"; if ( GlobalConfig->KvpncDebugLevel > 1 ) GlobalConfig->appendLogEntry ( i18n ( "Pkcs11IdType: %1" ).arg ( Pkcs11IdTypeTmp ), KVpncConfig::debug ); } QString ProviderLib = ""; if ( newprofilewizardcertcontent->UsePkcs11ProvidersCheckBox->isChecked() && !newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->url().isEmpty() ) ProviderLib = newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->url(); // we have to split slot id and name ("0 : foobar") => 0 QString Pkcs11Slot = newprofilewizardcertcontent->Pkcs11SlotComboBox->currentText().section ( ':', 0, 0 ).stripWhiteSpace(); QStringList Pkcs11Ids = Utils ( GlobalConfig ).getSmartcardCertsFromSlot ( Pkcs11Slot, Pkcs11IdTypeTmp, ProviderLib ); for ( QStringList::Iterator it = Pkcs11Ids.begin(); it != Pkcs11Ids.end(); ++it ) newprofilewizardcertcontent->Pkcs11IdComboBox->insertItem ( QString ( *it ) ); if ( newprofilewizardcertcontent->Pkcs11SlotComboBox->currentText() == "" || newprofilewizardcertcontent->Pkcs11IdComboBox->currentText() == "" ) nextButton()->setEnabled ( false ); else nextButton()->setEnabled ( true ); GlobalConfig->appPointer->restoreOverrideCursor(); } void NewProfileWizard::detectPkcs11Slots() { GlobalConfig->appPointer->setOverrideCursor ( QCursor ( Qt::WaitCursor ) ); newprofilewizardcertcontent->Pkcs11SlotComboBox->clear(); QString ProviderLib = ""; if ( newprofilewizardcertcontent->UsePkcs11ProvidersCheckBox->isChecked() && !newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->url().isEmpty() ) ProviderLib = newprofilewizardcertcontent->Pkcs11ProvidersURLRequester->url(); QStringList Pkcs11Slots = Utils ( GlobalConfig ).getSmartcardSlots ( ProviderLib ); for ( QStringList::Iterator it = Pkcs11Slots.begin(); it != Pkcs11Slots.end(); ++it ) newprofilewizardcertcontent->Pkcs11SlotComboBox->insertItem ( QString ( *it ) ); if ( !Pkcs11Slots.isEmpty() ) newprofilewizardcertcontent->Pkcs11IdTypeComboBox->setEnabled ( true ); if ( newprofilewizardcertcontent->Pkcs11SlotComboBox->currentText() == "" || newprofilewizardcertcontent->Pkcs11IdComboBox->currentText() == "" ) nextButton()->setEnabled ( false ); else nextButton()->setEnabled ( true ); GlobalConfig->appPointer->restoreOverrideCursor(); } void NewProfileWizard::mtuToggled ( bool ) { if ( newprofilewizardnetworkcontent->MtuCheckbox->isChecked() ) newprofilewizardnetworkcontent->MtuSpinbox->setEnabled ( true ); else newprofilewizardnetworkcontent->MtuSpinbox->setEnabled ( false ); } void NewProfileWizard::mruToggled ( bool ) { if ( newprofilewizardnetworkcontent->MruCheckbox->isChecked() ) newprofilewizardnetworkcontent->MruSpinbox->setEnabled ( true ); else newprofilewizardnetworkcontent->MruSpinbox->setEnabled ( false ); } void NewProfileWizard::useVirtualIpAddressToggled ( bool ) { if ( profilenetworkvirtualipoptionscontent->UseVirtualIPCheckBox->isChecked() ) { profilenetworkvirtualipoptionscontent->LocalVirtualIpEdit->setEnabled ( TRUE ); profilenetworkvirtualipoptionscontent->RemoteVirtualIpLineEdit->setEnabled ( TRUE ); } else { profilenetworkvirtualipoptionscontent->LocalVirtualIpEdit->setEnabled ( FALSE ); profilenetworkvirtualipoptionscontent->RemoteVirtualIpLineEdit->setEnabled ( FALSE ); } } void NewProfileWizard::usePortToggled ( bool ) { if ( newprofilewizardvtunpagecontent->PortCheckbox->isChecked() ) newprofilewizardvtunpagecontent->PortSpinbox->setEnabled ( true ); else newprofilewizardvtunpagecontent->PortSpinbox->setEnabled ( false ); } void NewProfileWizard::useAuthenticationAlgorithmToggled ( bool ) { if ( newprofilewizardopenvpnauthpagecontent->UseAuthenticationAlgorithmCheckBox->isChecked() ) newprofilewizardopenvpnauthpagecontent->UserdefiniedDigestComboBox ->setEnabled ( true ); else newprofilewizardopenvpnauthpagecontent->UserdefiniedDigestComboBox->setEnabled ( false ); } void NewProfileWizard::useRemoteNetworkToggled(bool) { if ( newprofilewizardnetworkcontent->UseRemoteNetworkCheckBox->isChecked() ) newprofilewizardnetworkcontent->RemoteNetworkGroupBox ->setEnabled ( true ); else newprofilewizardnetworkcontent->RemoteNetworkGroupBox->setEnabled ( false ); } void NewProfileWizard::useIkeToggled(bool) { if (newprofilewizardfreeswanpagecontent->UseCustomIkeCheckBox->isChecked()) newprofilewizardfreeswanpagecontent->IkeGroupBox->setEnabled(true); else newprofilewizardfreeswanpagecontent->IkeGroupBox->setEnabled(false); } void NewProfileWizard::useEspToogled(bool) { if (newprofilewizardfreeswanpagecontent->UseCustomEspCheckBox->isChecked()) newprofilewizardfreeswanpagecontent->EspGroupBox->setEnabled(true); else newprofilewizardfreeswanpagecontent->EspGroupBox->setEnabled(false); } void NewProfileWizard::remoteIDTypeRacoonToggled(const QString& text) { if (text == "asn1dn") { newprofilewizardracoonpagecontent->RemoteIDLineEdit->setDisabled(true); newprofilewizardracoonpagecontent->RemoteIDLabel->setDisabled(true); } else { newprofilewizardracoonpagecontent->RemoteIDLineEdit->setDisabled(false); newprofilewizardracoonpagecontent->RemoteIDLabel->setDisabled(false); } } void NewProfileWizard::localIDTypeRacoonToggled(const QString& text) { if (text == "none") { newprofilewizardracoonpagecontent->LocalIDLineEdit->setDisabled(true); newprofilewizardracoonpagecontent->LocalIDLabel->setDisabled(true); } else { newprofilewizardracoonpagecontent->LocalIDLineEdit->setDisabled(false); newprofilewizardracoonpagecontent->LocalIDLabel->setDisabled(false); } } void NewProfileWizard::remoteIDTypeIpsecToggled(const QString& text) { if (text == "asn1dn" || text == "none") { newprofilewizardfreeswanpagecontent->RemoteIDLineEdit->setDisabled(true); newprofilewizardfreeswanpagecontent->RemoteIDLabel->setDisabled(true); } else { newprofilewizardfreeswanpagecontent->RemoteIDLineEdit->setDisabled(false); newprofilewizardfreeswanpagecontent->RemoteIDLabel->setDisabled(false); } } void NewProfileWizard::localIDTypeIpsecToggled(const QString& text) { if (text == "asn1dn" || text == i18n("Certificate ID")) { newprofilewizardfreeswanpagecontent->LocalIDLineEdit->setDisabled(true); newprofilewizardfreeswanpagecontent->LocalIDLabel->setDisabled(true); } else { newprofilewizardfreeswanpagecontent->LocalIDLineEdit->setDisabled(false); newprofilewizardfreeswanpagecontent->LocalIDLabel->setDisabled(false); } } void NewProfileWizard::defaultRouteToggled(const QString&) { if (newprofilewizardnetworkroutecontent->DefaultRouteComboBox->currentText() == i18n("Keep default route") || newprofilewizardnetworkroutecontent->DefaultRouteComboBox->currentItem() == 0) { KMessageBox::information(0,i18n("Additional network route is needed:\n\nYou have selected to keep the default route. You have to add additional network routes to your remote network. Otherwise you probably dont have access to it."),i18n("Route needed")); } } void NewProfileWizard::ikeGroupToggled(bool) { if (newprofilewizardracoonpagecontent->IkeGroupCheckbox->isChecked()) newprofilewizardracoonpagecontent->DHGroupComboBox->setEnabled(true); else newprofilewizardracoonpagecontent->DHGroupComboBox->setEnabled(false); } void NewProfileWizard::useXauthFreeswanToggled(bool) { if (newprofilewizardfreeswanpagecontent->UseXauthCheckBox->isChecked()) { newprofilewizarduserpagecontent->setEnabled(true); newprofilewizardpskcontent->setEnabled(true); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->setEnabled(false); newprofilewizardfreeswanpagecontent->LocalIDLineEdit->setEnabled(true); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->setCurrentText("keyid"); } else { newprofilewizarduserpagecontent->setEnabled(false); newprofilewizardpskcontent->setEnabled(false); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->setEnabled(true); newprofilewizardfreeswanpagecontent->LocalIDLineEdit->setEnabled(false); newprofilewizardfreeswanpagecontent->LocalIdTypeCombobox->setCurrentText("asn1dn"); } } void NewProfileWizard::useXauthRacoonToggled(bool) { if (newprofilewizardracoonpagecontent->UseXauthCheckBox->isChecked()) { newprofilewizarduserpagecontent->setEnabled(true); newprofilewizardpskcontent->setEnabled(true); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->setEnabled(false); newprofilewizardracoonpagecontent->LocalIDLineEdit->setEnabled(true); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->setCurrentText("keyid"); } else { newprofilewizarduserpagecontent->setEnabled(false); newprofilewizardpskcontent->setEnabled(false); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->setEnabled(true); newprofilewizardracoonpagecontent->LocalIDLineEdit->setEnabled(false); newprofilewizardracoonpagecontent->LocalIdTypeCombobox->setCurrentText("asn1dn"); } } void NewProfileWizard::tunnelDeviceTypeChanged(const QString & string ) { if ( profileData->getConnectionType() == VpnAccountData::openvpn || profileData->getConnectionType() == VpnAccountData::ssh) { if (string.lower() == "tun") { profilenetworkvirtualipoptionscontent->LabelRemoteVirtualIp->setText(i18n("Remote IP (virtual):")); } if (string.lower() == "tap") { profilenetworkvirtualipoptionscontent->LabelRemoteVirtualIp->setText(i18n("Netmask for local IP address:")); } } } void NewProfileWizard::useDnsServerToggled(bool) { if ( newprofilewizardpptppagecontent->DnsServerCheckbox->isChecked() ) newprofilewizardpptppagecontent->DnsServerLineedit->setEnabled( true ); else newprofilewizardpptppagecontent->DnsServerLineedit->setEnabled( false ); } void NewProfileWizard::useSearchDomainInResolvConfToggled(bool) { if ( newprofilewizardpptppagecontent->UseSearchDomainInResolvConfCheckbox ->isChecked() ) newprofilewizardpptppagecontent->SearchDomainInResolvConfLineedit->setEnabled( true ); else newprofilewizardpptppagecontent->SearchDomainInResolvConfLineedit->setEnabled( false ); } void NewProfileWizard::useDomainInResolvConfToggled(bool) { if ( newprofilewizardpptppagecontent->UseDomainInResolvConfCheckbox ->isChecked() ) newprofilewizardpptppagecontent->DomainInResolvConfLineedit->setEnabled( true ); else newprofilewizardpptppagecontent->DomainInResolvConfLineedit->setEnabled( false ); }