/*************************************************************************** * 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 #ifndef NEWPROFILEWIZARD_H #define NEWPROFILEWIZARD_H #include #include #include #include #include #include #include #include "kvpncconfig.h" #include "newprofilewizardtypeselection.h" #include "newprofilewizardgeneral.h" #include "newprofilewizardciscoselection.h" #include "newprofilewizardciscomanually.h" #include "importprofiledialog.h" // PCF import #include "importopenvpnprofiledialog.h" //< OpenVPN import #include "importipsecprofiledialog.h" //< IPSec import #include "newprofilewizardracoon.h" #include "newprofilewizardfreeswan.h" #include "newprofilewizardopenvpn.h" #include "newprofilewizardopenvpnauth.h" #include "newprofilewizardopenvpnselection.h" #include "newprofilewizardpptp.h" #include "profilevtunoptions.h" #include "profilesshoptions.h" #include "newprofilewizardauthselection.h" #include "newprofilewizardpsk.h" #include "newprofilewizardcert.h" #include "newprofilewizardstart.h" #include "newprofilewizarduser.h" #include "newprofilewizardnetwork.h" #include "newprofilewizardnetworkroute.h" #include "newprofilewizardnat.h" #include "newprofilewizardp12certselection.h" #include "importcertificatedialog.h" #include "newprofilewizardconnectoptions.h" #include "newprofilewizardconnectionstatuscheck.h" #include "profilenetworkvirtualipoptions.h" #include "profilenetworkrouteoptions.h" //END INCLUDES /** Provides a wizard for creating a new profile @author Christoph Thielecke */ class NewProfileWizard : public QWizard { Q_OBJECT public: NewProfileWizard(KVpncConfig* GlobalConfig); void dataChanged( const QString & ); QString getName(); QString getProfile(); bool getFinished(); bool newProfileCreated; bool daemonavailable; //< true if required is found, used for connecting after creating bool connectaftercreating; //< connect if successful created VpnAccountData *profileData; public slots: void showPage( QWidget* page ); void next (); void back(); void accept(); void reject(); void userdefinedOpenvpnPortToggeled(bool); void nsCertTypeOpenvpnToggled(bool); void additionalNetworkRoutesToggled(bool); void addNetworkRouteClicked(); void delNetworkRouteClicked(); void pskIsInFileToggled(bool); void useNatToggled(bool); void udpPortToggled(bool); void pingIpAfterConnectToggled(bool); void useSpecialServerCertificateToggled(bool); void useUserdefiniedCipherToggled(bool); void useHttpProxyToggeled(bool); void useTlsAuthToggled(bool); void useTlsRemoteHostToggled(bool); void connectionStatusCheckToggled(bool); void authenticateWithUsernameAndPasswordToggled(bool); void pskInputToggled(const QString& str); void userpassToggled(const QString& str); void usernameToggled(const QString& str); void pskToggled(const QString& str); void useRightNextHopToggled(bool); void useLeftNextHopToggled(bool); void domainNameToggled(bool); void idTypeToggled(); void usePkcs11ProvidersToggled(bool); void useSmartcardToggled(bool); void useSmartcardOnCertFormateToggled(bool); void detectPkcs11Ids(); void detectPkcs11Slots(); void mtuToggled(bool); void mruToggled(bool); void useVirtualIpAddressToggled(bool); void usePortToggled(bool); void useAuthenticationAlgorithmToggled(bool); void useRemoteNetworkToggled(bool); void useEspToogled(bool); void useIkeToggled(bool); void remoteIDTypeRacoonToggled(const QString&); void localIDTypeRacoonToggled(const QString&); void remoteIDTypeIpsecToggled(const QString&); void localIDTypeIpsecToggled(const QString&); void defaultRouteToggled(const QString&); void ikeGroupToggled(bool); void useXauthFreeswanToggled(bool); void useXauthRacoonToggled(bool); void tunnelDeviceTypeChanged(const QString &); void useDnsServerToggled(bool); void useSearchDomainInResolvConfToggled(bool); void useDomainInResolvConfToggled(bool); //void reject(); protected: QString ConnectionType; QString Gateway; QString ID; QString Username; QString UserPassword; QString PreSharedKey; QString ApplicationVersion; QString NtDomainName; QString PerfectForwardSecrecy; QString IkeGroup; QString DnsServer; //< userdefined DNS server for pptp QString Name; QString Description; bool saveUserPassword; bool savePsk; bool useApplicationVersion; bool useGlobalIpsecSecret; bool useIkeGroup; bool useLocalPort; bool useNtDomainName; bool useSingleDes; bool useAdvancedSettings; bool usePerfectSecrecy; bool useUdp; //< True if NAT-T should be used bool useUdpPort; //< True if userdefined UDP port should be used bool useDnsServer; //< True if userdefined DNS server should be used bool useGetDnsFromPeer; //< True if DNS servers should be retrieved from peer (pptp)bool bool refuse40BitEncryption; //< True if 40 bit encryption is refused (pptp) bool refuse128BitEncryption; //< True if 128 bit encryption is refused (pptp) bool allowStatefulMode; bool useNoBsdComp; bool useNoDeflate; bool requireMppe; //< True if MPPE is required (pptp) bool refuseEap; //< True if EAP is refused (pptp) int Port; int UdpPort; //< Port number of UDP port private: void setupPages(); bool importProfile(VpnAccountData::ConnectionType ConnType); bool importCertificate(); QHBox *page1; QHBox *newprofilewizardtypeselectionpage; QHBox *newprofilewizardgeneralpage; QHBox *newprofilewizardciscoselectionpage; QHBox *newprofilewizardciscomanuallypage; QHBox *newprofilewizardracoonpage; QHBox *newprofilewizardfreeswanpage; QHBox *newprofilewizardfreeswanselectionpage; QHBox *newprofilewizardopenvpnpage; QHBox *newprofilewizardopenvpnselectionpage; QHBox *newprofilewizardopenvpnauthpage; QHBox *newprofilewizardpptppage; QHBox *newprofilewizardvtunpage; QHBox *newprofilewizardsshpage; QHBox *newprofilewizardauthselectionpage; QHBox *newprofilewizardpskpage; QHBox *newprofilewizardcertpage; QHBox *newprofilewizardp12certselectionpage; QHBox *newprofilewizarduserpage; QHBox *newprofilewizardnetworkpage; QHBox *newprofilewizardvirtualipaddresspage; QHBox *newprofilewizardnetworkroutepage; QHBox *newprofilewizardnatpage; QHBox *newprofilewizardconnectionstatuscheckpage; QHBox *newprofilewizardconnectoptionspage; QHBox *endpage; NewProfileWizardTypeSelection *newprofilewizardtypeselectionpagecontent; NewProfileWizardGeneral *newprofilewizardgeneralpagecontent; NewProfileWizardCiscoSelection *newprofilewizardciscoselectionpagecontent; NewProfileWizardCiscoManually *newprofilewizardciscomanuallypagecontent; NewProfileWizardRacoon *newprofilewizardracoonpagecontent; NewProfileWizardFreeswan *newprofilewizardfreeswanpagecontent; NewProfileWizardOpenvpnSelection *newprofilewizardfreeswanselectionpagecontent; NewProfileWizardOpenvpn *newprofilewizardopenvpnpagecontent; NewProfileWizardOpenvpnAuth *newprofilewizardopenvpnauthpagecontent; NewProfileWizardOpenvpnSelection *newprofilewizardopenvpnselectionpagecontent; NewProfileWizardPptp *newprofilewizardpptppagecontent; ProfileVtunOptions *newprofilewizardvtunpagecontent; ProfileSshOptions *newprofilewizardsshpagecontent; NewProfileWizardAuthSelection *newprofilewizardauthselectioncontent; NewProfileWizardPsk *newprofilewizardpskcontent; NewProfileWizardCert *newprofilewizardcertcontent; NewProfileWizardStart *newprofilewizardstartcontent; NewProfileWizardP12CertSelection *newprofilewizardp12certselectioncontent; NewProfileWizardUser *newprofilewizarduserpagecontent; NewProfileWizardNetwork *newprofilewizardnetworkcontent; ProfileNetworkRouteOptions *newprofilewizardnetworkroutecontent; NewProfileWizardNat *newprofilewizardnatcontent; NewProfileWizardConnectionStatusCheck *newprofilewizardconnectionstatuscheckcontent; NewProfileWizardConnectOptions *newprofilewizardconnectoptionscontent; ProfileNetworkVirtualIpOptions *profilenetworkvirtualipoptionscontent; KVpncConfig* GlobalConfig; //< pointer to global config class QWidget* currentpage; // pointer to current page QWidget* previouspage; //< pointer to previous page bool finished; bool enterdatamanually; //< enter data manually bool useCert; //< use certificate for authentication bool importOK; //< import was successful QPixmap *SetupPixmap; QPixmap *SetupPixmapFinal; }; #endif