diff -r 30e048a7b597 -r bad0cc58d154 accesssec_plat/eap_qt_configuration_api/inc/eapqtconfiginterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/accesssec_plat/eap_qt_configuration_api/inc/eapqtconfiginterface.h Tue Aug 31 15:16:37 2010 +0300 @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "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: + * EAP method configuration QT interface + * + */ + +/* + * %version: 8 % + */ + +#ifndef EAPQTCONFIGINTERFACE_H +#define EAPQTCONFIGINTERFACE_H + +// System includes +#include +#include +#include +#include + +// User includes + +// Forward declarations +class CpBaseSettingView; +class EapQtValidator; +class EapQtPluginInfo; +class EapQtPluginHandle; +class EapQtExpandedEapType; +class EapQtCertificateInfo; +class EapQtConfigInterfacePrivate; + +// External data types + +// Constants + +// Class declaration +class EAP_QT_CONFIG_INTERFACE_EXPORT EapQtConfigInterface +{ + +public: + + // Data types + + // bearer type used for creating an interface object + enum EapBearerType + { + // EAP configuration interface for WLAN + EapBearerTypeWlan = 0, + // EAP configuration interface for VPN + EapBearerTypeVpn + }; + + // IAP ID to be used for accessing limited number of + // API methods, see below the method descriptions + static const int IapIdUndefined = -1; + + // NOTE: the default constuctor can only be used for creating validators + // with validatorEap() and validatorPacStore(), and accessing EAP-FAST PAC store, + // any other call throws an exeption; + // also, throws an exception if the construction fails + EapQtConfigInterface(); + + // this is the constructor for using the interface for all + // available operations, including validators; + // throws an exception if the construction fails; + // the parameter iapId is the identifier of the configured IAP; + // if iapId is negative (i.e. IapIdUndefined or negative), only a limited set of + // methods are available and setConfigurationReference must be later called to + // correct the IAP ID and use the rest of the API methods + EapQtConfigInterface(const EapBearerType bearerType, const int iapId); + + // destructor + ~EapQtConfigInterface(); + + // method for creating a setting validator for the specified EAP method + // NOTE: CALLER OWNS the returned object + // returns NULL on failure (e.g. if the requested validator does not exist) + EapQtValidator *validatorEap(const EapQtExpandedEapType &type, const EapQtConfig::SettingsId id) const; + + // method for creating a EAP-FAST PAC store validator, see also EapQtPacStoreConfig + // NOTE: CALLER OWNS the returned object + // returns NULL on failure (e.g. if EAP-FAST is not supported) + EapQtValidator *validatorPacStore(const EapQtPacStoreConfig::PacStoreSettings id) const; + + // reads EAP-FAST PAC store configuration, see EapQtPacStoreConfig + // returns false on failure (e.g. if EAP-FAST is not supported) + bool readPacStoreConfiguration(EapQtPacStoreConfig &config) const; + + // stores EAP-FAST PAC store configuration, see EapQtPacStoreConfig + // returns false on failure (e.g. if EAP-FAST is not supported) + bool savePacStoreConfiguration(const EapQtPacStoreConfig &config) const; + + /** + * NOTE: all the following methods throw an exception if the interface + * instance was created with the default (validator) constructor; + * otherwise the return value is as defined + */ + + // sets the IAP ID for accesssing EAP settings with the other methods + // returns false on failure (e.g. WLAN IAP with the specified ID + // [if the ID is other than IapIdUndefined] does not exist) + bool setConfigurationReference(const int iapId) const; + + // returns supported outer EAP types + // returns empty list on failure + QList supportedOuterTypes() const; + + // returns supported inner EAP types for the specified outer type + // returns empty list on failure + QList supportedInnerTypes(const EapQtPluginHandle &outerType) const; + + // retrieves the list of installed CA certificates; + // list returned from device database only when called for the first time, + // otherwise returns the list from cache; + // call updateCertificates() to update the cache; + // returns empty list on failure or if CA certificates do not exist + QList certificateAuthorityCertificates() const; + + // retrieves the lsit of installed user certificate list; + // list returned from device database only when called for the first time, + // otherwise returns the list from cache; + // call updateCertificates() to update the cache; + // returns empty list on failure or if user certificates do not exist + QList userCertificates() const; + + // updates CA and user certificate lists from the device database + bool updateCertificates() const; + + // checks if the specified outer EAP is supported + // returns true if supported, false otherwise + bool isSupportedOuterType(const EapQtPluginHandle &handle) const; + + // checks if the specified inner EAP is supported inside the specified outer EAP + // returns true if supported, false otherwise + bool isSupportedInnerType(const EapQtPluginHandle &outerHandle, + const EapQtPluginHandle &innerHandle) const; + + /** + * NOTE: all the following methods return failure if the current IAP + * ID is IapIdUndefined (or negative); + * setConfigurationReference must be called first to correct the IAP ID + */ + + // returns the list of activated outer EAP methods for the IAP + // returns empty list on failure + QList selectedOuterTypes() const; + + // sets the list of activated outer EAP methods for the IAP + // returns empty list on failure + bool setSelectedOuterTypes(const QList &outerHandles) const; + + // reads the configuration for pluginHandle inside outerHandle + // if outerHandle is EapQtPluginHandle::PluginUndefined, the configuration is read for + // pluginHandle as outer type; + // returns false on failure (e.g. outerHandle/pluginHandle is not supported) + bool readConfiguration(const EapQtPluginHandle &outerHandle, + const EapQtPluginHandle &pluginHandle, EapQtConfig &config) const; + + // stores the configuration for pluginHandle + // in config: + // if OuterType is defined, the configuration for pluginHandle is set inside this OuterType + // if OuterType is not defined, pluginHandle is for an outer type + // if InnerType is defined, the defined inner types in config are activated for pluginHandle + // if InnerType is not defined, the pluginHandle does not activate any inner type (or they do not exist) + // returns false on failure (e.g. pluginHandle is not supported) + bool saveConfiguration(const EapQtPluginHandle &pluginHandle, const EapQtConfig &config) const; + + // deletes all EAP configurations for the current IAP ID + bool deleteConfiguration() const; + + // returns control panel UI instance for the specified EAP method (pluginHandle) + // outerHandle specifies if the UI is for pluginHandle as outer (EapQtPluginHandle::PluginUndefined) or + // inner (other than EapQtPluginHandle::PluginUndefined) EAP method; + // NOTE: CALLER OWNS the returned object; + // returns NULL on failure (e.g. if the combination of outerHandle/pluginHandle is not supported) + // NOTE: the method throws an exception if current IAP ID is IapIdUndefined (or negative); + CpBaseSettingView *uiInstance(const EapQtPluginHandle &outerHandle, + const EapQtPluginHandle &pluginHandle) const; + +private: + + Q_DISABLE_COPY(EapQtConfigInterface) + +private: // data + + QScopedPointer d_ptr; + +}; + +#endif // EAPQTCONFIGINTERFACE_H +