securitysettings/cpeapuiplugins/cpeaptlsmethodsui/inc/cpeaptlsmethodsui.h
author hgs
Thu, 24 Jun 2010 11:23:08 +0300
changeset 34 ad1f037f1ac2
child 49 43351a4f2da3
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34
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
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
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
 *   Control Panel QT UI for TLS-based EAP methods configuration
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/*
hgs
parents:
diff changeset
    20
 * %version: 17 %
hgs
parents:
diff changeset
    21
 */
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#ifndef CPEAPTLSMETHODSUI_H
hgs
parents:
diff changeset
    24
#define CPEAPTLSMETHODSUI_H
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
// System includes
hgs
parents:
diff changeset
    27
#include <cpbasesettingview.h>
hgs
parents:
diff changeset
    28
#include <eapqtconfiginterface.h>
hgs
parents:
diff changeset
    29
#include <eapqtplugininfo.h>
hgs
parents:
diff changeset
    30
#include <eapqtpluginhandle.h>
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// User includes
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
// Forward declarations
hgs
parents:
diff changeset
    35
class HbDataForm;
hgs
parents:
diff changeset
    36
class HbDataFormModel;
hgs
parents:
diff changeset
    37
class HbDataFormModelItem;
hgs
parents:
diff changeset
    38
class HbMessageBox;
hgs
parents:
diff changeset
    39
class CpSettingFormItemData;
hgs
parents:
diff changeset
    40
class EapQtValidator;
hgs
parents:
diff changeset
    41
class EapQtCertificateInfo;
hgs
parents:
diff changeset
    42
class CpEapCiphersuiteUi;
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// External data types
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
// Constants
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
/*!
hgs
parents:
diff changeset
    49
 * @addtogroup group_eap_ui_plugin_eap_tlsmethods
hgs
parents:
diff changeset
    50
 * @{
hgs
parents:
diff changeset
    51
 */
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
class CpEapTlsMethodsUi : public CpBaseSettingView
hgs
parents:
diff changeset
    54
{
hgs
parents:
diff changeset
    55
Q_OBJECT
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
public:
hgs
parents:
diff changeset
    58
    CpEapTlsMethodsUi(
hgs
parents:
diff changeset
    59
        const EapQtConfigInterface::EapBearerType bearer,
hgs
parents:
diff changeset
    60
        const int iapId,
hgs
parents:
diff changeset
    61
        const EapQtPluginInfo &plugin,
hgs
parents:
diff changeset
    62
        const EapQtPluginHandle& outerHandle);
hgs
parents:
diff changeset
    63
    ~CpEapTlsMethodsUi();
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
    CpBaseSettingView *innerUiInstance();
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
protected:
hgs
parents:
diff changeset
    68
    void close();
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
private:
hgs
parents:
diff changeset
    71
    // Supported PEAP versions
hgs
parents:
diff changeset
    72
    enum PeapVersions {
hgs
parents:
diff changeset
    73
        //PEAPv0
hgs
parents:
diff changeset
    74
        PeapVersion0,
hgs
parents:
diff changeset
    75
        //PEAPv1
hgs
parents:
diff changeset
    76
        PeapVersion1,
hgs
parents:
diff changeset
    77
        //PEAPv0 or PEAPv1
hgs
parents:
diff changeset
    78
        PeapVersionBoth
hgs
parents:
diff changeset
    79
    };
hgs
parents:
diff changeset
    80
    
hgs
parents:
diff changeset
    81
private:
hgs
parents:
diff changeset
    82
    void createUi();
hgs
parents:
diff changeset
    83
    void createTlsUi();
hgs
parents:
diff changeset
    84
    void createTtlsUi();
hgs
parents:
diff changeset
    85
    void createPeapUi();
hgs
parents:
diff changeset
    86
    void createFastUi();
hgs
parents:
diff changeset
    87
    
hgs
parents:
diff changeset
    88
    void createUsername();
hgs
parents:
diff changeset
    89
    void createRealm();
hgs
parents:
diff changeset
    90
    void createUserCerts();
hgs
parents:
diff changeset
    91
    void createAuthorityCerts();
hgs
parents:
diff changeset
    92
    void createPeapVersion();
hgs
parents:
diff changeset
    93
    void createInnerMethod();
hgs
parents:
diff changeset
    94
    void createEapSelector();
hgs
parents:
diff changeset
    95
    
hgs
parents:
diff changeset
    96
    void defaultInnerPlugin();
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
    bool checkStateToBool(const int state);
hgs
parents:
diff changeset
    99
    int boolToCheckState(const bool state);
hgs
parents:
diff changeset
   100
    
hgs
parents:
diff changeset
   101
    bool validate();
hgs
parents:
diff changeset
   102
    bool validateUsernameGroup();
hgs
parents:
diff changeset
   103
    bool validateRealmGroup();
hgs
parents:
diff changeset
   104
    bool validateAuthorityCertificate();
hgs
parents:
diff changeset
   105
    bool validateUserCertificate();
hgs
parents:
diff changeset
   106
    bool validateCiphersuites();
hgs
parents:
diff changeset
   107
    void setPeapVersion(EapQtConfig &eapConfig);
hgs
parents:
diff changeset
   108
    bool storeSettings();
hgs
parents:
diff changeset
   109
    
hgs
parents:
diff changeset
   110
private slots:  
hgs
parents:
diff changeset
   111
    void setValidator(const QModelIndex);
hgs
parents:
diff changeset
   112
    void usernameAutomaticChanged(int state);
hgs
parents:
diff changeset
   113
    void realmAutomaticChanged(int state);
hgs
parents:
diff changeset
   114
    void userCertChanged(int value);
hgs
parents:
diff changeset
   115
    void authorityCertAutomaticChanged(int state);
hgs
parents:
diff changeset
   116
    void authorityCertChanged(int value);
hgs
parents:
diff changeset
   117
    void peapVersionChanged(int value);
hgs
parents:
diff changeset
   118
    void innerEapTypeChanged(int value);
hgs
parents:
diff changeset
   119
    
hgs
parents:
diff changeset
   120
private:
hgs
parents:
diff changeset
   121
    //! Pointer to EapQtConfigInterface
hgs
parents:
diff changeset
   122
    QScopedPointer <EapQtConfigInterface> mConfigIf;
hgs
parents:
diff changeset
   123
    //! List of supported Inner EAP types
hgs
parents:
diff changeset
   124
    QList<EapQtPluginInfo> mPlugins;
hgs
parents:
diff changeset
   125
    //! Plugin info
hgs
parents:
diff changeset
   126
    EapQtPluginInfo mPluginInfo;
hgs
parents:
diff changeset
   127
    //! Outer handle
hgs
parents:
diff changeset
   128
    EapQtPluginHandle mOuterHandle;
hgs
parents:
diff changeset
   129
    //! Current EAP configuration
hgs
parents:
diff changeset
   130
    EapQtConfig mEapConfig;
hgs
parents:
diff changeset
   131
    
hgs
parents:
diff changeset
   132
    //! Dataform
hgs
parents:
diff changeset
   133
    HbDataForm *mForm;
hgs
parents:
diff changeset
   134
    //! Datform model
hgs
parents:
diff changeset
   135
    HbDataFormModel *mModel;
hgs
parents:
diff changeset
   136
    //! Control Panel item data helper for TLS methods plugins
hgs
parents:
diff changeset
   137
    CpItemDataHelper *mItemDataHelper;
hgs
parents:
diff changeset
   138
    //! TLS based methods settings group
hgs
parents:
diff changeset
   139
    HbDataFormModelItem *mGroupItem;    
hgs
parents:
diff changeset
   140
    //! Username generate automatically checkBox
hgs
parents:
diff changeset
   141
    CpSettingFormItemData *mUsernameAutomatic;
hgs
parents:
diff changeset
   142
    //! Username lineEdit
hgs
parents:
diff changeset
   143
    CpSettingFormItemData *mUsername;
hgs
parents:
diff changeset
   144
    //! Realm generate automatically checkBox
hgs
parents:
diff changeset
   145
    CpSettingFormItemData *mRealmAutomatic;
hgs
parents:
diff changeset
   146
    //! Realm lineEdit
hgs
parents:
diff changeset
   147
    CpSettingFormItemData *mRealm;
hgs
parents:
diff changeset
   148
    //! Authority certificate select automatically checkBox
hgs
parents:
diff changeset
   149
    CpSettingFormItemData *mCaCertAutomatic;
hgs
parents:
diff changeset
   150
    //! Authority certificate comboBox
hgs
parents:
diff changeset
   151
    CpSettingFormItemData *mCaCert;
hgs
parents:
diff changeset
   152
    //! Peap version comboBox
hgs
parents:
diff changeset
   153
    CpSettingFormItemData *mPeapVersion;
hgs
parents:
diff changeset
   154
    //! Inner EAP type comboBox
hgs
parents:
diff changeset
   155
    CpSettingFormItemData *mInnerEapType;
hgs
parents:
diff changeset
   156
    //! Cipher suites group
hgs
parents:
diff changeset
   157
    CpEapCiphersuiteUi *mGroupItemCs;
hgs
parents:
diff changeset
   158
    
hgs
parents:
diff changeset
   159
    //! Realm validator
hgs
parents:
diff changeset
   160
    QScopedPointer<EapQtValidator> mValidatorRealm;
hgs
parents:
diff changeset
   161
    //! Username validator
hgs
parents:
diff changeset
   162
    QScopedPointer<EapQtValidator> mValidatorUsername;
hgs
parents:
diff changeset
   163
    
hgs
parents:
diff changeset
   164
    //! List of system's user certificates
hgs
parents:
diff changeset
   165
    QList<EapQtCertificateInfo> mUserCerts;
hgs
parents:
diff changeset
   166
    //! Index of selected user certificate
hgs
parents:
diff changeset
   167
    int mCurrentUserCert;
hgs
parents:
diff changeset
   168
    //! List if system's authority certificates
hgs
parents:
diff changeset
   169
    QList<EapQtCertificateInfo> mAuthorityCerts;
hgs
parents:
diff changeset
   170
    //! Index of selected authority certificate
hgs
parents:
diff changeset
   171
    int mCurrentAuthorityCert;
hgs
parents:
diff changeset
   172
    //! Index of current PEAP version 
hgs
parents:
diff changeset
   173
    //  0:PEAPv0, 1:PEAPv2, 2:PEAPv0 or PEAPv1
hgs
parents:
diff changeset
   174
    int mCurrentPeapVersion;
hgs
parents:
diff changeset
   175
    //! Index of selected Inner EAP type
hgs
parents:
diff changeset
   176
    int mCurrentInnerPlugin;
hgs
parents:
diff changeset
   177
    //! Index of inner type EAP-MSCHAPv2, default value for PEAP and EAP-FAST 
hgs
parents:
diff changeset
   178
    int mInnerEapMschapv2;
hgs
parents:
diff changeset
   179
    //! Index of inner type EAP-GTC, default value for PEAPv1
hgs
parents:
diff changeset
   180
    int mInnerEapGtc;
hgs
parents:
diff changeset
   181
    //! Tells if no inner EAP type is stored and default value is used instead
hgs
parents:
diff changeset
   182
    bool mDefaultPluginInUse;
hgs
parents:
diff changeset
   183
};
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
/*! @} */
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
#endif