accesssec_plat/eap_qt_configuration_api/inc/eapqtconfiginterface.h
author hgs
Thu, 16 Sep 2010 13:07:04 +0300
changeset 49 43351a4f2da3
parent 34 ad1f037f1ac2
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
34
hgs
parents: 27
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
26
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: 
hgs
parents:
diff changeset
    15
 *   EAP method configuration QT interface
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/*
49
hgs
parents: 34
diff changeset
    20
 * %version: 9 %
26
hgs
parents:
diff changeset
    21
 */
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#ifndef EAPQTCONFIGINTERFACE_H
hgs
parents:
diff changeset
    24
#define EAPQTCONFIGINTERFACE_H
hgs
parents:
diff changeset
    25
34
hgs
parents: 27
diff changeset
    26
// System includes
26
hgs
parents:
diff changeset
    27
#include <qglobal.h>
hgs
parents:
diff changeset
    28
#include <eapqtconfig.h>
34
hgs
parents: 27
diff changeset
    29
#include <eapqtconfigexport.h>
hgs
parents: 27
diff changeset
    30
#include <eapqtpacstoreconfig.h>
26
hgs
parents:
diff changeset
    31
34
hgs
parents: 27
diff changeset
    32
// User includes
26
hgs
parents:
diff changeset
    33
34
hgs
parents: 27
diff changeset
    34
// Forward declarations
26
hgs
parents:
diff changeset
    35
class CpBaseSettingView;
hgs
parents:
diff changeset
    36
class EapQtValidator;
hgs
parents:
diff changeset
    37
class EapQtPluginInfo;
hgs
parents:
diff changeset
    38
class EapQtPluginHandle;
hgs
parents:
diff changeset
    39
class EapQtExpandedEapType;
hgs
parents:
diff changeset
    40
class EapQtCertificateInfo;
hgs
parents:
diff changeset
    41
class EapQtConfigInterfacePrivate;
34
hgs
parents: 27
diff changeset
    42
hgs
parents: 27
diff changeset
    43
// External data types
hgs
parents: 27
diff changeset
    44
hgs
parents: 27
diff changeset
    45
// Constants
hgs
parents: 27
diff changeset
    46
hgs
parents: 27
diff changeset
    47
// Class declaration
26
hgs
parents:
diff changeset
    48
class EAP_QT_CONFIG_INTERFACE_EXPORT EapQtConfigInterface
hgs
parents:
diff changeset
    49
{
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
public:
hgs
parents:
diff changeset
    52
34
hgs
parents: 27
diff changeset
    53
    // Data types
hgs
parents: 27
diff changeset
    54
hgs
parents: 27
diff changeset
    55
    // bearer type used for creating an interface object
hgs
parents: 27
diff changeset
    56
    enum EapBearerType
hgs
parents: 27
diff changeset
    57
    {
hgs
parents: 27
diff changeset
    58
        // EAP configuration interface for WLAN
hgs
parents: 27
diff changeset
    59
        EapBearerTypeWlan = 0,
hgs
parents: 27
diff changeset
    60
        // EAP configuration interface for VPN
hgs
parents: 27
diff changeset
    61
        EapBearerTypeVpn
hgs
parents: 27
diff changeset
    62
    };
hgs
parents: 27
diff changeset
    63
hgs
parents: 27
diff changeset
    64
    // IAP ID to be used for accessing limited number of
hgs
parents: 27
diff changeset
    65
    // API methods, see below the method descriptions
hgs
parents: 27
diff changeset
    66
    static const int IapIdUndefined = -1;
hgs
parents: 27
diff changeset
    67
hgs
parents: 27
diff changeset
    68
    // NOTE: the default constuctor can only be used for creating validators
hgs
parents: 27
diff changeset
    69
    // with validatorEap() and validatorPacStore(), and accessing EAP-FAST PAC store,
49
hgs
parents: 34
diff changeset
    70
    // any other call throws an exception;
34
hgs
parents: 27
diff changeset
    71
    // also, throws an exception if the construction fails
26
hgs
parents:
diff changeset
    72
    EapQtConfigInterface();
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
    // this is the constructor for using the interface for all
hgs
parents:
diff changeset
    75
    // available operations, including validators;
34
hgs
parents: 27
diff changeset
    76
    // throws an exception if the construction fails;
hgs
parents: 27
diff changeset
    77
    // the parameter iapId is the identifier of the configured IAP;
hgs
parents: 27
diff changeset
    78
    // if iapId is negative (i.e. IapIdUndefined or negative), only a limited set of
hgs
parents: 27
diff changeset
    79
    // methods are available and setConfigurationReference must be later called to
hgs
parents: 27
diff changeset
    80
    // correct the IAP ID and use the rest of the API methods
26
hgs
parents:
diff changeset
    81
    EapQtConfigInterface(const EapBearerType bearerType, const int iapId);
hgs
parents:
diff changeset
    82
34
hgs
parents: 27
diff changeset
    83
    // destructor
26
hgs
parents:
diff changeset
    84
    ~EapQtConfigInterface();
hgs
parents:
diff changeset
    85
34
hgs
parents: 27
diff changeset
    86
    // method for creating a setting validator for the specified EAP method
hgs
parents: 27
diff changeset
    87
    // NOTE: CALLER OWNS the returned object
hgs
parents: 27
diff changeset
    88
    // returns NULL on failure (e.g. if the requested validator does not exist)
hgs
parents: 27
diff changeset
    89
    EapQtValidator *validatorEap(const EapQtExpandedEapType &type, const EapQtConfig::SettingsId id) const;
hgs
parents: 27
diff changeset
    90
hgs
parents: 27
diff changeset
    91
    // method for creating a EAP-FAST PAC store validator, see also EapQtPacStoreConfig
hgs
parents: 27
diff changeset
    92
    // NOTE: CALLER OWNS the returned object
hgs
parents: 27
diff changeset
    93
    // returns NULL on failure (e.g. if EAP-FAST is not supported)
hgs
parents: 27
diff changeset
    94
    EapQtValidator *validatorPacStore(const EapQtPacStoreConfig::PacStoreSettings id) const;
hgs
parents: 27
diff changeset
    95
hgs
parents: 27
diff changeset
    96
    // reads EAP-FAST PAC store configuration, see EapQtPacStoreConfig
hgs
parents: 27
diff changeset
    97
    // returns false on failure (e.g. if EAP-FAST is not supported)
hgs
parents: 27
diff changeset
    98
    bool readPacStoreConfiguration(EapQtPacStoreConfig &config) const;
hgs
parents: 27
diff changeset
    99
hgs
parents: 27
diff changeset
   100
    // stores EAP-FAST PAC store configuration, see EapQtPacStoreConfig
hgs
parents: 27
diff changeset
   101
    // returns false on failure (e.g. if EAP-FAST is not supported)
hgs
parents: 27
diff changeset
   102
    bool savePacStoreConfiguration(const EapQtPacStoreConfig &config) const;
26
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
    /**
34
hgs
parents: 27
diff changeset
   105
     * NOTE: all the following methods throw an exception if the interface
hgs
parents: 27
diff changeset
   106
     * instance was created with the default (validator) constructor;
26
hgs
parents:
diff changeset
   107
     * otherwise the return value is as defined
hgs
parents:
diff changeset
   108
     */
hgs
parents:
diff changeset
   109
34
hgs
parents: 27
diff changeset
   110
    // sets the IAP ID for accesssing EAP settings with the other methods
hgs
parents: 27
diff changeset
   111
    // returns false on failure (e.g. WLAN IAP with the specified ID
hgs
parents: 27
diff changeset
   112
    // [if the ID is other than IapIdUndefined] does not exist)
hgs
parents: 27
diff changeset
   113
    bool setConfigurationReference(const int iapId) const;
hgs
parents: 27
diff changeset
   114
hgs
parents: 27
diff changeset
   115
    // returns supported outer EAP types
26
hgs
parents:
diff changeset
   116
    // returns empty list on failure
hgs
parents:
diff changeset
   117
    QList<EapQtPluginInfo> supportedOuterTypes() const;
34
hgs
parents: 27
diff changeset
   118
hgs
parents: 27
diff changeset
   119
    // returns supported inner EAP types for the specified outer type
26
hgs
parents:
diff changeset
   120
    // returns empty list on failure
34
hgs
parents: 27
diff changeset
   121
    QList<EapQtPluginInfo> supportedInnerTypes(const EapQtPluginHandle &outerType) const;
26
hgs
parents:
diff changeset
   122
34
hgs
parents: 27
diff changeset
   123
    // retrieves the list of installed CA certificates;
hgs
parents: 27
diff changeset
   124
    // list returned from device database only when called for the first time,
hgs
parents: 27
diff changeset
   125
    // otherwise returns the list from cache;
hgs
parents: 27
diff changeset
   126
    // call updateCertificates() to update the cache;
hgs
parents: 27
diff changeset
   127
    // returns empty list on failure or if CA certificates do not exist
26
hgs
parents:
diff changeset
   128
    QList<EapQtCertificateInfo> certificateAuthorityCertificates() const;
34
hgs
parents: 27
diff changeset
   129
hgs
parents: 27
diff changeset
   130
    // retrieves the lsit of installed user certificate list;
hgs
parents: 27
diff changeset
   131
    // list returned from device database only when called for the first time,
hgs
parents: 27
diff changeset
   132
    // otherwise returns the list from cache;
hgs
parents: 27
diff changeset
   133
    // call updateCertificates() to update the cache;
hgs
parents: 27
diff changeset
   134
    // returns empty list on failure or if user certificates do not exist
26
hgs
parents:
diff changeset
   135
    QList<EapQtCertificateInfo> userCertificates() const;
hgs
parents:
diff changeset
   136
34
hgs
parents: 27
diff changeset
   137
    // updates CA and user certificate lists from the device database
hgs
parents: 27
diff changeset
   138
    bool updateCertificates() const;
hgs
parents: 27
diff changeset
   139
hgs
parents: 27
diff changeset
   140
    // checks if the specified outer EAP is supported
hgs
parents: 27
diff changeset
   141
    // returns true if supported, false otherwise
hgs
parents: 27
diff changeset
   142
    bool isSupportedOuterType(const EapQtPluginHandle &handle) const;
26
hgs
parents:
diff changeset
   143
34
hgs
parents: 27
diff changeset
   144
    // checks if the specified inner EAP is supported inside the specified outer EAP
hgs
parents: 27
diff changeset
   145
    // returns true if supported, false otherwise
hgs
parents: 27
diff changeset
   146
    bool isSupportedInnerType(const EapQtPluginHandle &outerHandle,
hgs
parents: 27
diff changeset
   147
        const EapQtPluginHandle &innerHandle) const;
hgs
parents: 27
diff changeset
   148
hgs
parents: 27
diff changeset
   149
    /**
hgs
parents: 27
diff changeset
   150
     * NOTE: all the following methods return failure if the current IAP
hgs
parents: 27
diff changeset
   151
     * ID is IapIdUndefined (or negative);
hgs
parents: 27
diff changeset
   152
     * setConfigurationReference must be called first to correct the IAP ID
hgs
parents: 27
diff changeset
   153
     */
hgs
parents: 27
diff changeset
   154
hgs
parents: 27
diff changeset
   155
    // returns the list of activated outer EAP methods for the IAP
26
hgs
parents:
diff changeset
   156
    // returns empty list on failure
hgs
parents:
diff changeset
   157
    QList<EapQtPluginHandle> selectedOuterTypes() const;
hgs
parents:
diff changeset
   158
34
hgs
parents: 27
diff changeset
   159
    // sets the list of activated outer EAP methods for the IAP
hgs
parents: 27
diff changeset
   160
    // returns empty list on failure
hgs
parents: 27
diff changeset
   161
    bool setSelectedOuterTypes(const QList<EapQtPluginHandle> &outerHandles) const;
hgs
parents: 27
diff changeset
   162
hgs
parents: 27
diff changeset
   163
    // reads the configuration for pluginHandle inside outerHandle
hgs
parents: 27
diff changeset
   164
    // if outerHandle is EapQtPluginHandle::PluginUndefined, the configuration is read for
hgs
parents: 27
diff changeset
   165
    // pluginHandle as outer type;
hgs
parents: 27
diff changeset
   166
    // returns false on failure (e.g. outerHandle/pluginHandle is not supported)
hgs
parents: 27
diff changeset
   167
    bool readConfiguration(const EapQtPluginHandle &outerHandle,
hgs
parents: 27
diff changeset
   168
        const EapQtPluginHandle &pluginHandle, EapQtConfig &config) const;
26
hgs
parents:
diff changeset
   169
34
hgs
parents: 27
diff changeset
   170
    // stores the configuration for pluginHandle
hgs
parents: 27
diff changeset
   171
    // in config:
hgs
parents: 27
diff changeset
   172
    // if OuterType is defined, the configuration for pluginHandle is set inside this OuterType
hgs
parents: 27
diff changeset
   173
    // if OuterType is not defined, pluginHandle is for an outer type
hgs
parents: 27
diff changeset
   174
    // if InnerType is defined, the defined inner types in config are activated for pluginHandle
hgs
parents: 27
diff changeset
   175
    // if InnerType is not defined, the pluginHandle does not activate any inner type (or they do not exist)
hgs
parents: 27
diff changeset
   176
    // returns false on failure (e.g. pluginHandle is not supported)
hgs
parents: 27
diff changeset
   177
    bool saveConfiguration(const EapQtPluginHandle &pluginHandle, const EapQtConfig &config) const;
26
hgs
parents:
diff changeset
   178
34
hgs
parents: 27
diff changeset
   179
    // deletes all EAP configurations for the current IAP ID
26
hgs
parents:
diff changeset
   180
    bool deleteConfiguration() const;
hgs
parents:
diff changeset
   181
34
hgs
parents: 27
diff changeset
   182
    // returns control panel UI instance for the specified EAP method (pluginHandle)
hgs
parents: 27
diff changeset
   183
    // outerHandle specifies if the UI is for pluginHandle as outer (EapQtPluginHandle::PluginUndefined) or
hgs
parents: 27
diff changeset
   184
    // inner (other than EapQtPluginHandle::PluginUndefined) EAP method;
hgs
parents: 27
diff changeset
   185
    // NOTE: CALLER OWNS the returned object;
hgs
parents: 27
diff changeset
   186
    // returns NULL on failure (e.g. if the combination of outerHandle/pluginHandle is not supported)
hgs
parents: 27
diff changeset
   187
    // NOTE: the method throws an exception if current IAP ID is IapIdUndefined (or negative);
hgs
parents: 27
diff changeset
   188
    CpBaseSettingView *uiInstance(const EapQtPluginHandle &outerHandle,
hgs
parents: 27
diff changeset
   189
        const EapQtPluginHandle &pluginHandle) const;
hgs
parents: 27
diff changeset
   190
26
hgs
parents:
diff changeset
   191
private:
34
hgs
parents: 27
diff changeset
   192
26
hgs
parents:
diff changeset
   193
    Q_DISABLE_COPY(EapQtConfigInterface)
34
hgs
parents: 27
diff changeset
   194
hgs
parents: 27
diff changeset
   195
private: // data
hgs
parents: 27
diff changeset
   196
26
hgs
parents:
diff changeset
   197
    QScopedPointer<EapQtConfigInterfacePrivate> d_ptr;
34
hgs
parents: 27
diff changeset
   198
26
hgs
parents:
diff changeset
   199
};
hgs
parents:
diff changeset
   200
34
hgs
parents: 27
diff changeset
   201
#endif // EAPQTCONFIGINTERFACE_H
26
hgs
parents:
diff changeset
   202