diff -r 000000000000 -r c8830336c852 wlansecuritysettings/wpasecuritysettingsui/inc/WPASecuritySettingsImpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlansecuritysettings/wpasecuritysettingsui/inc/WPASecuritySettingsImpl.h Thu Dec 17 08:47:43 2009 +0200 @@ -0,0 +1,302 @@ +/* +* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Declaration of class CWPASecuritySettingsImpl. +* +*/ + + +#ifndef WPASECURITYSETTINGSIMPL_H +#define WPASECURITYSETTINGSIMPL_H + +// INCLUDES +#include +#include + +#include + +#include +using namespace CommsDat; + + + +// CONST DECLARATIONS +#define KWLANEAPLISTLENGTH 1024 // Max length of the EAP Plugin list + + +// FORWARD DECLARATIONS +class CCommsDatabase; +class CEAPPluginConfigurationIf; + +// CLASS DECLARATION + +/** +* WPA Security Settings. +* Implementation behind proxy class CWPASecuritySettings. +*/ +NONSHARABLE_CLASS( CWPASecuritySettingsImpl ) : public CBase + { + + public: // Constructors and destructor + + /** + * Two-phased constructor. Leaves on failure. + * @param aSecurityMode The chosen security mode. It can be + * ESecurityMode8021x or ESecurityModeWpa + * @return The constructed CWPASecuritySettings object. + */ + static CWPASecuritySettingsImpl* NewL( TSecurityMode aSecurityMode ); + + /** + * Destructor. + */ + virtual ~CWPASecuritySettingsImpl(); + + + protected: // Constructors + + /** + * Constructor. + * @param aSecurityMode The chosen security mode. It can be + * ESecurityMode8021x or ESecurityModeWpa + */ + CWPASecuritySettingsImpl( TSecurityMode aSecurityMode ); + + /** + * Second-phase constructor. + */ + void ConstructL(); + + + public: // New methods + + /** + * Load from database. + * @param aIapId Wlan Service Table Id of the IAP to be loaded + * @param aCommsDb Comms database. + */ + void LoadL( TUint32 aIapId, CCommsDatabase& aCommsDb ); + + + /** + * Save to database. + * @param aIapId Wlan Service Table Id of the IAP to be saved + * @param aCommsDb Comms database. + * @param aTypeOfSaving Tells what kind of AP we are going to save: it + * can be ESavingEditedAP, ESavingBrandNewAP, or + * ESavingNewAPAsACopy + * @param aOldIapId The old Id of the IAP; it is used to save the EAP + * configuration, only when aIsNewAP is ETrue + */ + void SaveL( TUint32 aIapId, CCommsDatabase& aCommsDb, + TTypeOfSaving aTypeOfSaving, TUint32 aOldIapId ); + + + /** + * Delete from database. It actually just removes EAP Configuration. + * @param aIapId Id of the IAP to be saved + */ + void DeleteL( TUint32 aIapId ); + + + /** + * Tells if the settings are valid and can be saved + * @return ETrue if all the compulsory settings have been entered + */ + TBool IsValid(); + + + /** + * Sets the Pre-shared key + * @param aPreSharedKey The key to be set + * @return KErrNone if successful, or an error code + */ + TInt SetWPAPreSharedKey( const TDesC& aPreSharedKey ); + + /** + * Gets the type of Security set. + * @return The security mode in use. It can be ESecurityMode8021x or + * ESecurityModeWpa + */ + inline TSecurityMode SecurityMode() const; + + + /** + * Tells if Pre-shared key is in use or not + * @return ETrue if Pre-shared key is in use + */ + inline TBool WPAMode() const; + + + /** + * Sets the use of Pre-shared key. + * @param aWPAMode ETrue if pre-shared key is in use + */ + inline void SetWPAMode( const TBool aWPAMode ); + + + /** + * Tells if it is WPA2 Only mode + * @return ETrue if it is WPA2 Only mode + */ + inline TBool Wpa2Only() const; + + + /** + * Sets the WPA2 Only mode enabling variable + * @param aAllowed ETrue if WPA2 Only mode is enabled + */ + inline void SetWpa2Only( const TBool aAllowed ); + + + /** + * Returns the Pre-shared key + * @return The pre-shared key + */ + inline TDes8* WPAPreSharedKey(); + + + /** + * Sets the Pre-shared key + * @param aPreSharedKey The key to be set + */ + inline void SetWPAPreSharedKey( const TDesC8& aPreSharedKey ); + + + /** + * Returns the content of the WlanEapList column of WLANServiceTable + * @return The content string + */ + inline TDes* WPAEAPPlugin(); + + /** + * Returns the content of the WlanEnabledEapList column of + * WLANServiceTable + * @return The content string. Ownership not passed! + */ + inline HBufC8* WPAEnabledEAPPlugin(); + + /** + * Returns the content of the WlanDisabledEapList column of + * WLANServiceTable + * @return The content string. Ownership not passed! + */ + inline HBufC8* WPADisabledEAPPlugin(); + + /** + * Sets the content of the WlanEapList column of WLANServiceTable + * @param aPluginList The content string to be set + */ + inline void SetWPAEAPPlugin( const TDes& aPluginList ); + + /** + * Sets the content of the WlanEnabledEapList column of WLANServiceTable + * (for expanded EAP types) + * @param aEnabledPluginList Enumeration of enabled plugins + * @return KErrNone if successful, or an error code + */ + TInt SetWPAEnabledEAPPlugin( const TDesC8& aEnabledPluginList ); + + /** + * Sets the content of the WlanDisabledEapList column of WLANServiceTable + * (for expanded EAP types) + * @param aDisabledPluginList Enumeration of disabled plugins + * @return KErrNone if successful, or an error code + */ + TInt SetWPADisabledEAPPlugin( const TDesC8& aDisabledPluginList ); + + /** + * Sets the Id of the AP + * @param aIapId The Id to be set + */ + inline void SetIapId( const TUint32 aIapId ); + + /** + * Returns the Id of the AP + * @return The Id + */ + inline const TUint32 IapId(); + + /** + * Returns the pointer to the EAP Configuration plugin + * @return The EAP Configuration plugin + */ + inline CEAPPluginConfigurationIf* Plugin(); + + /** + * Load from database. + * @param aIapId Wlan Service Table Id of the IAP to be loaded + * @param aSession CommsDat session. + */ + void LoadL( TUint32 aIapId, CMDBSession& aSession ); + + + /** + * Save to database. + * @param aIapId Wlan Service Table Id of the IAP to be saved + * @param aSession CommsDat session. + * @param aTypeOfSaving Tells what kind of AP we are going to save: it + * can be ESavingEditedAP, ESavingBrandNewAP, or + * ESavingNewAPAsACopy + * @param aOldIapId The old Id of the IAP; it is used to save the EAP + * configuration, only when aIsNewAP is ETrue + */ + void SaveL( TUint32 aIapId, CMDBSession& aSession, + TTypeOfSaving aTypeOfSaving, TUint32 aOldIapId ); + + private: + /** + * Checks whether the given string is a valid PSK + * @since S60 5.0 + * @param aPsk The string to be checked + * @return ETrue if the string is a valid PSK, EFalse otherwise. + */ + TBool IsValidPsk( const TDesC8& aPsk ); + + private: // Data + + // Security mode in use + TSecurityMode iSecurityMode; + + // Pre-shared key in use or not + TBool iWPAMode; + + // The content of the WlanEapList column of WLANServiceTable + TBuf iWPAEAPPlugin; + + // The pre-shared key + TBuf8 iWPAPreSharedKey; + + // The content of the WlanEnabledEapList column of WLANServiceTable. + // Owned. + HBufC8 *iWPAEnabledEAPPlugin; + + // The content of the WlanDisabledEapList column of WLANServiceTable. + // Owned. + HBufC8 *iWPADisabledEAPPlugin; + + // WPA2 Only mode enabled or not + TBool iWpa2Only; + + // The Id of the AP. + TUint32 iIapId; + + // The EAP Configuration plugin. Owned. + CEAPPluginConfigurationIf* iPlugin; + }; + +// Include inline functions +#include "WPASecuritySettingsImpl.inl" + + +#endif