securitysettings/qtconfigutils/eapqtconfiginterface/inc/eapqtconfiginterface_p.h
author hgs
Thu, 24 Jun 2010 11:23:08 +0300
changeset 34 ad1f037f1ac2
parent 27 9660a5eb236f
child 49 43351a4f2da3
permissions -rw-r--r--
201025
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 private implementation
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/*
34
hgs
parents: 27
diff changeset
    20
 * %version: 36 %
26
hgs
parents:
diff changeset
    21
 */
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#ifndef EAPQTCONFIGINTERFACEPRIVATE_H
hgs
parents:
diff changeset
    24
#define EAPQTCONFIGINTERFACEPRIVATE_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 <EapSettings.h>
hgs
parents:
diff changeset
    29
#include <EapTypeDefinitions.h>
hgs
parents:
diff changeset
    30
#include <eapqtconfig.h>
hgs
parents:
diff changeset
    31
#include <eapqtpluginhandle.h>
hgs
parents:
diff changeset
    32
#include <eapqtconfiginterface.h>
34
hgs
parents: 27
diff changeset
    33
#include <eapqtpacstoreconfig.h>
26
hgs
parents:
diff changeset
    34
34
hgs
parents: 27
diff changeset
    35
// User includes
hgs
parents: 27
diff changeset
    36
hgs
parents: 27
diff changeset
    37
// Forward declarations
26
hgs
parents:
diff changeset
    38
class HbTranslator;
hgs
parents:
diff changeset
    39
class CEapType;
hgs
parents:
diff changeset
    40
class CEapGeneralSettings;
hgs
parents:
diff changeset
    41
class CpEapPluginInterface;
hgs
parents:
diff changeset
    42
class EapQtConfigInterface;
hgs
parents:
diff changeset
    43
34
hgs
parents: 27
diff changeset
    44
// External data types
hgs
parents: 27
diff changeset
    45
hgs
parents: 27
diff changeset
    46
// Constants
hgs
parents: 27
diff changeset
    47
hgs
parents: 27
diff changeset
    48
// Class declaration
26
hgs
parents:
diff changeset
    49
class EapQtConfigInterfacePrivate
hgs
parents:
diff changeset
    50
{
34
hgs
parents: 27
diff changeset
    51
26
hgs
parents:
diff changeset
    52
public:
hgs
parents:
diff changeset
    53
34
hgs
parents: 27
diff changeset
    54
    // Data types
hgs
parents: 27
diff changeset
    55
26
hgs
parents:
diff changeset
    56
    // maximum lenghts (number of characters) for UTF-16 strings copied to EAP settings
hgs
parents:
diff changeset
    57
    static const unsigned int StringMaxLength = KGeneralStringMaxLength;
hgs
parents:
diff changeset
    58
    static const unsigned int CertLabelMaxLength = KMaxCertLabelLength;
hgs
parents:
diff changeset
    59
    static const unsigned int CertThumbprintMaxLength = KThumbprintMaxLength;
hgs
parents:
diff changeset
    60
    static const unsigned int CertSubjectKeyIdLength = KSHA1HashLengthBytes;
hgs
parents:
diff changeset
    61
34
hgs
parents: 27
diff changeset
    62
    // see eapqtinterface.h for documentation
26
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    EapQtConfigInterfacePrivate();
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    EapQtConfigInterfacePrivate(const EapQtConfigInterface::EapBearerType bearerType,
hgs
parents:
diff changeset
    67
        const int iapId);
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    ~EapQtConfigInterfacePrivate();
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
    QList<EapQtPluginInfo> supportedOuterTypes();
hgs
parents:
diff changeset
    72
    QList<EapQtPluginInfo> supportedInnerTypes(const EapQtPluginHandle &outerType);
hgs
parents:
diff changeset
    73
34
hgs
parents: 27
diff changeset
    74
    bool isSupportedOuterType(const EapQtPluginHandle &handle);
hgs
parents: 27
diff changeset
    75
    bool isSupportedInnerType(const EapQtPluginHandle &outerHandle,
hgs
parents: 27
diff changeset
    76
        const EapQtPluginHandle &innerHandle);
26
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
    QList<EapQtCertificateInfo> certificateAuthorityCertificates();
hgs
parents:
diff changeset
    79
    QList<EapQtCertificateInfo> userCertificates();
34
hgs
parents: 27
diff changeset
    80
    bool updateCertificates();
26
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
    bool setConfigurationReference(const int iapId);
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
    QList<EapQtPluginHandle> selectedOuterTypes();
34
hgs
parents: 27
diff changeset
    85
    bool setSelectedOuterTypes(const QList<EapQtPluginHandle> &outerHandles);
26
hgs
parents:
diff changeset
    86
34
hgs
parents: 27
diff changeset
    87
    bool readConfiguration(const EapQtPluginHandle &outerHandle,
hgs
parents: 27
diff changeset
    88
        const EapQtPluginHandle &pluginHandle, EapQtConfig &config);
hgs
parents: 27
diff changeset
    89
    bool saveConfiguration(const EapQtPluginHandle &pluginHandle, const EapQtConfig &config);
26
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
    bool deleteConfiguration();
hgs
parents:
diff changeset
    92
34
hgs
parents: 27
diff changeset
    93
    EapQtValidator *validatorEap(const EapQtExpandedEapType &type, const EapQtConfig::SettingsId id);
hgs
parents: 27
diff changeset
    94
hgs
parents: 27
diff changeset
    95
    CpBaseSettingView *uiInstance(const EapQtPluginHandle &outerHandle,
hgs
parents: 27
diff changeset
    96
        const EapQtPluginHandle &pluginHandle);
hgs
parents: 27
diff changeset
    97
hgs
parents: 27
diff changeset
    98
    bool readPacStoreConfiguration(EapQtPacStoreConfig &config);
hgs
parents: 27
diff changeset
    99
    bool savePacStoreConfiguration(const EapQtPacStoreConfig &config);
hgs
parents: 27
diff changeset
   100
    EapQtValidator *validatorPacStore(const EapQtPacStoreConfig::PacStoreSettings id);
hgs
parents: 27
diff changeset
   101
26
hgs
parents:
diff changeset
   102
private:
hgs
parents:
diff changeset
   103
34
hgs
parents: 27
diff changeset
   104
    // see cpp for documentation
hgs
parents: 27
diff changeset
   105
26
hgs
parents:
diff changeset
   106
    void loadPlugins();
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
    bool fetchCertificates(QList<EapQtCertificateInfo>* const caInfos,
hgs
parents:
diff changeset
   109
        QList<EapQtCertificateInfo>* const clientInfos);
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
    void copyCertificateInfo(const RPointerArray<EapCertificateEntry>* const certEntries, QList<
hgs
parents:
diff changeset
   112
        EapQtCertificateInfo>* const certInfos);
hgs
parents:
diff changeset
   113
34
hgs
parents: 27
diff changeset
   114
    void appendCertificateInfo(bool isCaCertificate, const EapQtCertificateInfo &certInfo,
26
hgs
parents:
diff changeset
   115
        RPointerArray<EapCertificateEntry>* const certList);
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    void appendEapTypes(const RArray<TEapExpandedType>* const eapTypes,
hgs
parents:
diff changeset
   118
        QList<QByteArray>* const eapList);
hgs
parents:
diff changeset
   119
34
hgs
parents: 27
diff changeset
   120
    void getEapTypeIf(const EapQtPluginHandle &pluginHandle);
26
hgs
parents:
diff changeset
   121
34
hgs
parents: 27
diff changeset
   122
    void copyFromEapSettings(EAPSettings &eapSettings, EapQtConfig &config);
26
hgs
parents:
diff changeset
   123
34
hgs
parents: 27
diff changeset
   124
    void copyToEapSettings(const EapQtConfig &config, EAPSettings &eapSettings);
26
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
    TBool convertToTbool(bool value);
hgs
parents:
diff changeset
   127
    bool convertToBool(TBool value);
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
    bool isUiSupported(const QByteArray &eapType, int &pluginIndex) const;
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
    void checkInstanceThrowing() const;
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
    bool setEapDbIndex(const int iapId);
hgs
parents:
diff changeset
   134
    bool setEapWlanDbIndex(const int iapId);
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    void shutdown();
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
    EapQtConfigInterface::EapBearerType getEapBearer();
hgs
parents:
diff changeset
   139
34
hgs
parents: 27
diff changeset
   140
    // comparison mehtod for qSort
hgs
parents: 27
diff changeset
   141
    // must be static for using via function pointers
hgs
parents: 27
diff changeset
   142
    static bool pluginLessThan(const EapQtPluginInfo &plugin1, const EapQtPluginInfo &plugin2);
26
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
    Q_DISABLE_COPY(EapQtConfigInterfacePrivate)
hgs
parents:
diff changeset
   145
34
hgs
parents: 27
diff changeset
   146
private: // data
hgs
parents: 27
diff changeset
   147
hgs
parents: 27
diff changeset
   148
    /// QT members
hgs
parents: 27
diff changeset
   149
hgs
parents: 27
diff changeset
   150
    // is current instance for validators only
26
hgs
parents:
diff changeset
   151
    const bool mValidatorInstance;
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
    // list of available EAP UIs
hgs
parents:
diff changeset
   154
    QList<CpEapPluginInterface*> mPlugins;
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
    // list of EAPs supported by UI
hgs
parents:
diff changeset
   157
    QList<EapQtPluginInfo> mPluginInfos;
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
    // list of supported outer EAP methods,
hgs
parents:
diff changeset
   160
    // combination of UI and EAP server support
hgs
parents:
diff changeset
   161
    QList<EapQtPluginInfo> mSupportedOuterTypes;
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
    // list of supported inner EAP methods queried last time,
hgs
parents:
diff changeset
   164
    // combination of UI and EAP server support
hgs
parents:
diff changeset
   165
    QList<EapQtPluginInfo> mSupportedInnerTypes;
34
hgs
parents: 27
diff changeset
   166
hgs
parents: 27
diff changeset
   167
    // currenly loaded outer EAP type
26
hgs
parents:
diff changeset
   168
    EapQtPluginHandle mLastOuterHandle;
hgs
parents:
diff changeset
   169
34
hgs
parents: 27
diff changeset
   170
    // translator object for EAP UIs
26
hgs
parents:
diff changeset
   171
    QScopedPointer<HbTranslator> mTranslator;
hgs
parents:
diff changeset
   172
34
hgs
parents: 27
diff changeset
   173
    // read CA and user certificates
hgs
parents: 27
diff changeset
   174
    QList<EapQtCertificateInfo> mCaCertificates;
hgs
parents: 27
diff changeset
   175
    QList<EapQtCertificateInfo> mUserCertificates;
26
hgs
parents:
diff changeset
   176
34
hgs
parents: 27
diff changeset
   177
    /// Symbian members
hgs
parents: 27
diff changeset
   178
hgs
parents: 27
diff changeset
   179
    // pointers to EAP server interfaces
26
hgs
parents:
diff changeset
   180
    QScopedPointer<CEapGeneralSettings> mEapGsIf;
hgs
parents:
diff changeset
   181
    QScopedPointer<CEapType> mEapTypeIf;
hgs
parents:
diff changeset
   182
34
hgs
parents: 27
diff changeset
   183
    // current IAP ID
26
hgs
parents:
diff changeset
   184
    int mIapId;
34
hgs
parents: 27
diff changeset
   185
hgs
parents: 27
diff changeset
   186
    // current bearer
26
hgs
parents:
diff changeset
   187
    TIndexType mEapBearer;
34
hgs
parents: 27
diff changeset
   188
hgs
parents: 27
diff changeset
   189
    // current EAP database reference to current IAP
26
hgs
parents:
diff changeset
   190
    TInt mEapDbIndex;
34
hgs
parents: 27
diff changeset
   191
hgs
parents: 27
diff changeset
   192
    // if mEapDbIndex is valid (i.e. current IAP is not
hgs
parents: 27
diff changeset
   193
    // EapQtConfigInterface::IapIdUndefined)
26
hgs
parents:
diff changeset
   194
    bool mEapDbIndexValid;
34
hgs
parents: 27
diff changeset
   195
hgs
parents: 27
diff changeset
   196
    // current loaded EAP server type interface
26
hgs
parents:
diff changeset
   197
    TEapExpandedType mCurrentServerEapType;
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
    // EAP server lists of its supported outer EAP methods
hgs
parents:
diff changeset
   200
    RArray<TEapExpandedType> mOuterEapsOn;
hgs
parents:
diff changeset
   201
    RArray<TEapExpandedType> mOuterEapsOff;
hgs
parents:
diff changeset
   202
hgs
parents:
diff changeset
   203
};
hgs
parents:
diff changeset
   204
34
hgs
parents: 27
diff changeset
   205
#endif // EAPQTCONFIGINTERFACEPRIVATE_H