wlanutilities/eapwizard/src/eapwizard_p.cpp
author hgs
Fri, 03 Sep 2010 09:37:37 +0300
changeset 60 822a45792fdd
parent 49 fb81b597edf1
permissions -rw-r--r--
201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39
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
 *   EAP Wizard: Private implementation.
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// System includes
hgs
parents:
diff changeset
    19
#include <QDebug>
hgs
parents:
diff changeset
    20
#include <QDataStream>
hgs
parents:
diff changeset
    21
#include <HbTranslator>
hgs
parents:
diff changeset
    22
#include <HbParameterLengthLimiter>
hgs
parents:
diff changeset
    23
#include <eapqtconfiginterface.h>
hgs
parents:
diff changeset
    24
#include <eapqtplugininfo.h>
hgs
parents:
diff changeset
    25
#include <eapqtpluginhandle.h>
hgs
parents:
diff changeset
    26
#include <eapqtconfig.h>
hgs
parents:
diff changeset
    27
#include <eapqtpacstoreconfig.h>
hgs
parents:
diff changeset
    28
#include <eapqtcertificateinfo.h>
hgs
parents:
diff changeset
    29
#include <wlanerrorcodes.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// User includes
hgs
parents:
diff changeset
    32
#include "wlanwizardhelper.h"
hgs
parents:
diff changeset
    33
#include "wlanwizardplugin.h"
hgs
parents:
diff changeset
    34
#include "eapwizard.h"
hgs
parents:
diff changeset
    35
#include "eapwizard_p.h"
hgs
parents:
diff changeset
    36
#include "eapwizarduistrings.h"
hgs
parents:
diff changeset
    37
#include "eapwizardpageoutertype.h"
hgs
parents:
diff changeset
    38
#include "eapwizardpagecertca.h"
hgs
parents:
diff changeset
    39
#include "eapwizardpagecertuser.h"
hgs
parents:
diff changeset
    40
#include "eapwizardpageidentity.h"
hgs
parents:
diff changeset
    41
#include "eapwizardpageinnertype.h"
hgs
parents:
diff changeset
    42
#include "eapwizardpageusernamepassword.h"
hgs
parents:
diff changeset
    43
#include "eapwizardpagenewpacstore.h"
hgs
parents:
diff changeset
    44
#include "eapwizardpagepacstorepasswordconfirm.h"
hgs
parents:
diff changeset
    45
#include "OstTraceDefinitions.h"
hgs
parents:
diff changeset
    46
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
    47
#include "eapwizard_pTraces.h"
hgs
parents:
diff changeset
    48
#endif
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
/*!
hgs
parents:
diff changeset
    51
   \class EapWizardPrivate
hgs
parents:
diff changeset
    52
   \brief Implements the EAP wizard plugin for WLAN wizard.
hgs
parents:
diff changeset
    53
 */
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
// External function prototypes
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
// Local constants
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
// ======== LOCAL FUNCTIONS ========
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
/*!
hgs
parents:
diff changeset
    65
   Constructor of EAP Wizard.
43
hgs
parents: 39
diff changeset
    66
39
hgs
parents:
diff changeset
    67
   @param [in] wizardHelper pointer to the helper instance.
hgs
parents:
diff changeset
    68
 */
hgs
parents:
diff changeset
    69
EapWizardPrivate::EapWizardPrivate(
hgs
parents:
diff changeset
    70
    WlanWizardHelper *wizardHelper) :
hgs
parents:
diff changeset
    71
    mWizardHelper(wizardHelper), 
hgs
parents:
diff changeset
    72
    mTranslator(new HbTranslator("eapwizard")), 
hgs
parents:
diff changeset
    73
    mEapConfIf(new EapQtConfigInterface(
hgs
parents:
diff changeset
    74
        EapQtConfigInterface::EapBearerTypeWlan, 
hgs
parents:
diff changeset
    75
        EapQtConfigInterface::IapIdUndefined))
hgs
parents:
diff changeset
    76
{
43
hgs
parents: 39
diff changeset
    77
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_EAPWIZARDPRIVATE_ENTRY );
39
hgs
parents:
diff changeset
    78
    Q_ASSERT(wizardHelper);
hgs
parents:
diff changeset
    79
    createPages();
43
hgs
parents: 39
diff changeset
    80
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_EAPWIZARDPRIVATE_EXIT );
39
hgs
parents:
diff changeset
    81
}
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
/*!
hgs
parents:
diff changeset
    84
   Destructor.
hgs
parents:
diff changeset
    85
 */
hgs
parents:
diff changeset
    86
EapWizardPrivate::~EapWizardPrivate()
hgs
parents:
diff changeset
    87
{
43
hgs
parents: 39
diff changeset
    88
    OstTraceFunctionEntry0( DUP1_EAPWIZARDPRIVATE_EAPWIZARDPRIVATE_ENTRY );
hgs
parents: 39
diff changeset
    89
    OstTraceFunctionExit0( DUP1_EAPWIZARDPRIVATE_EAPWIZARDPRIVATE_EXIT );
39
hgs
parents:
diff changeset
    90
}
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
/*!
hgs
parents:
diff changeset
    93
   See EapWizard::summary().
hgs
parents:
diff changeset
    94
 */
hgs
parents:
diff changeset
    95
bool EapWizardPrivate::summary(
hgs
parents:
diff changeset
    96
    WlanWizardPlugin::Summary sum, 
hgs
parents:
diff changeset
    97
    QString &item, 
hgs
parents:
diff changeset
    98
    QString &value)
hgs
parents:
diff changeset
    99
{
43
hgs
parents: 39
diff changeset
   100
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_SUMMARY_ENTRY );
39
hgs
parents:
diff changeset
   101
    bool ret = false;
hgs
parents:
diff changeset
   102
    int outerType = configurations(EapWizardPrivate::OuterType).toInt();
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
    switch (sum) {
hgs
parents:
diff changeset
   105
    case WlanWizardPlugin::SummaryEapInnerType:
hgs
parents:
diff changeset
   106
        if (hasInnerMethod()) {
hgs
parents:
diff changeset
   107
            item = hbTrId("txt_occ_dblist_inner_eap");
hgs
parents:
diff changeset
   108
            value = eapTypeToString(configurations(EapWizardPrivate::InnerType).toInt());
hgs
parents:
diff changeset
   109
            ret = true;
hgs
parents:
diff changeset
   110
        }
hgs
parents:
diff changeset
   111
        break;
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    case WlanWizardPlugin::SummaryEapFastProvisioningMode:
hgs
parents:
diff changeset
   114
        if (outerType == EapQtPluginHandle::PluginEapFast) {
hgs
parents:
diff changeset
   115
            item = hbTrId("txt_occ_dblist_provisioning_mode_for_eapfast");
hgs
parents:
diff changeset
   116
            value = hbTrId("txt_occ_dblist_provisioning_mode_for_val_unauthent");
hgs
parents:
diff changeset
   117
            ret = true;
hgs
parents:
diff changeset
   118
        }
hgs
parents:
diff changeset
   119
        break;
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    default:
hgs
parents:
diff changeset
   122
        Q_ASSERT(sum == WlanWizardPlugin::SummaryEapOuterType);
hgs
parents:
diff changeset
   123
        item = hbTrId("txt_occ_dblist_outer_eap");
hgs
parents:
diff changeset
   124
        value = eapTypeToString(outerType);
hgs
parents:
diff changeset
   125
        ret = true;
hgs
parents:
diff changeset
   126
        break;
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
    }
43
hgs
parents: 39
diff changeset
   129
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_SUMMARY_EXIT );
39
hgs
parents:
diff changeset
   130
    return ret;
hgs
parents:
diff changeset
   131
}
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
/*!
hgs
parents:
diff changeset
   134
   See EapWizard::storeSettings().
43
hgs
parents: 39
diff changeset
   135
39
hgs
parents:
diff changeset
   136
   @return true - ok, false - failed
hgs
parents:
diff changeset
   137
 */
hgs
parents:
diff changeset
   138
bool EapWizardPrivate::storeSettings()
hgs
parents:
diff changeset
   139
{
43
hgs
parents: 39
diff changeset
   140
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_STORESETTINGS_ENTRY );
39
hgs
parents:
diff changeset
   141
    bool ret = false;
hgs
parents:
diff changeset
   142
    EapQtPluginHandle outerType(static_cast<EapQtPluginHandle::Plugin>(
hgs
parents:
diff changeset
   143
        configurations(OuterType).toInt()));
43
hgs
parents: 39
diff changeset
   144
39
hgs
parents:
diff changeset
   145
    int iapId = mWizardHelper->configuration(WlanWizardHelper::ConfIapId).toInt();
43
hgs
parents: 39
diff changeset
   146
39
hgs
parents:
diff changeset
   147
    if (mEapConfIf->setConfigurationReference(iapId) 
hgs
parents:
diff changeset
   148
        && storeOuterTypeSettings(outerType)
hgs
parents:
diff changeset
   149
        && storeInnerTypeSettings(outerType)) {
hgs
parents:
diff changeset
   150
        ret = true;
hgs
parents:
diff changeset
   151
    }
hgs
parents:
diff changeset
   152
43
hgs
parents: 39
diff changeset
   153
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_STORESETTINGS_EXIT );
39
hgs
parents:
diff changeset
   154
    return ret;
hgs
parents:
diff changeset
   155
}
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
/*!
hgs
parents:
diff changeset
   158
   See WlanWizardPlugin::errorString().
43
hgs
parents: 39
diff changeset
   159
39
hgs
parents:
diff changeset
   160
   Returns EAP spesific error string.
hgs
parents:
diff changeset
   161
 */
hgs
parents:
diff changeset
   162
QString EapWizardPrivate::errorString(int errorCode)
hgs
parents:
diff changeset
   163
{
43
hgs
parents: 39
diff changeset
   164
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_ERRORSTRING_ENTRY );
39
hgs
parents:
diff changeset
   165
    char* textId = NULL;
hgs
parents:
diff changeset
   166
    int eapType = EapQtPluginHandle::PluginUndefined;
43
hgs
parents: 39
diff changeset
   167
39
hgs
parents:
diff changeset
   168
    switch (errorCode){
hgs
parents:
diff changeset
   169
    case KErrWlanUserRejected:
hgs
parents:
diff changeset
   170
        textId = "txt_occ_dialog_1_auth_failed_user_cert_rej";
hgs
parents:
diff changeset
   171
        eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   172
        break;
43
hgs
parents: 39
diff changeset
   173
39
hgs
parents:
diff changeset
   174
    case KErrWlanUserCertificateExpired:
hgs
parents:
diff changeset
   175
        textId = "txt_occ_dialog_1_auth_failed_user_cert_exp";
hgs
parents:
diff changeset
   176
        eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   177
        break;
43
hgs
parents: 39
diff changeset
   178
39
hgs
parents:
diff changeset
   179
    case KErrWlanServerCertificateExpired:
hgs
parents:
diff changeset
   180
        textId = "txt_occ_dialog_1_authentication_failed_server_ce";
hgs
parents:
diff changeset
   181
        eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   182
        break;
43
hgs
parents: 39
diff changeset
   183
39
hgs
parents:
diff changeset
   184
    case KErrWlanCerficateVerifyFailed:
hgs
parents:
diff changeset
   185
        textId = "txt_occ_dialog_1_authentication_failed_could_not";
hgs
parents:
diff changeset
   186
        eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   187
        break;
43
hgs
parents: 39
diff changeset
   188
39
hgs
parents:
diff changeset
   189
    case KErrWlanNoCipherSuite:
hgs
parents:
diff changeset
   190
        textId = "txt_occ_dialog_1_authentication_failed_cipher_su";
hgs
parents:
diff changeset
   191
        eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   192
        break;
43
hgs
parents: 39
diff changeset
   193
39
hgs
parents:
diff changeset
   194
    case KErrWlanSimNotInstalled:
hgs
parents:
diff changeset
   195
        textId = "txt_occ_dialog_1_authentication_failed_check_sim";
hgs
parents:
diff changeset
   196
        eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   197
        break;
43
hgs
parents: 39
diff changeset
   198
39
hgs
parents:
diff changeset
   199
    case KErrWlanEapFastPacStoreCorrupted:
hgs
parents:
diff changeset
   200
        textId = "txt_occ_dialog_1_authentication_failed_reset_pac";
hgs
parents:
diff changeset
   201
        eapType = EapQtPluginHandle::PluginEapFast;
hgs
parents:
diff changeset
   202
        break;
43
hgs
parents: 39
diff changeset
   203
39
hgs
parents:
diff changeset
   204
    case KErrWlanEapSimFailed:
hgs
parents:
diff changeset
   205
    case KErrWlanEapTlsFailed:
hgs
parents:
diff changeset
   206
    case KErrWlanEapPeapFailed:
hgs
parents:
diff changeset
   207
    case KErrWlanEapAkaFailed:
hgs
parents:
diff changeset
   208
    case KErrWlanEapTtlsFailed:
hgs
parents:
diff changeset
   209
    case KErrWlanLeapFailed:
hgs
parents:
diff changeset
   210
    case KErrWlanNoUserCertificate:
hgs
parents:
diff changeset
   211
    case KErrWlanEapFastTunnelCompromiseError:
hgs
parents:
diff changeset
   212
    case KErrWlanEapFastUnexpextedTlvExhanged:
hgs
parents:
diff changeset
   213
    case KErrWlanEapFastNoPacNorCertsToAuthenticateWithProvDisabled:
hgs
parents:
diff changeset
   214
    case KErrWlanEapFastNoMatchingPacForAid:
hgs
parents:
diff changeset
   215
    case KErrWlanEapFastAuthFailed:
hgs
parents:
diff changeset
   216
        textId = "txt_occ_dialog_1_authentication_failed";
hgs
parents:
diff changeset
   217
        eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   218
        break;
43
hgs
parents: 39
diff changeset
   219
39
hgs
parents:
diff changeset
   220
    case KErrWlanEapMsChapv2:
hgs
parents:
diff changeset
   221
    case KErrWlanEapGtcFailed:
hgs
parents:
diff changeset
   222
        textId = "txt_occ_dialog_1_authentication_failed";
hgs
parents:
diff changeset
   223
        eapType = configurations(InnerType).toInt();
hgs
parents:
diff changeset
   224
        break;
43
hgs
parents: 39
diff changeset
   225
39
hgs
parents:
diff changeset
   226
    case KErrWlanNotSubscribed:
hgs
parents:
diff changeset
   227
    case KErrWlanAccessBarred:
hgs
parents:
diff changeset
   228
    case KErrWlanPasswordExpired:
hgs
parents:
diff changeset
   229
    case KErrWlanNoDialinPermissions:
hgs
parents:
diff changeset
   230
    case KErrWlanAccountDisabled:
hgs
parents:
diff changeset
   231
    case KErrWlanRestrictedLogonHours:
hgs
parents:
diff changeset
   232
        textId = "txt_occ_dialog_1_authentication_failed";
hgs
parents:
diff changeset
   233
        if (hasInnerMethod()){
hgs
parents:
diff changeset
   234
            eapType = configurations(InnerType).toInt();
hgs
parents:
diff changeset
   235
        } else {
hgs
parents:
diff changeset
   236
            eapType = configurations(OuterType).toInt();
hgs
parents:
diff changeset
   237
        }
hgs
parents:
diff changeset
   238
        break;
43
hgs
parents: 39
diff changeset
   239
39
hgs
parents:
diff changeset
   240
    default:
hgs
parents:
diff changeset
   241
        // Return empty string
hgs
parents:
diff changeset
   242
        break;
hgs
parents:
diff changeset
   243
    }
43
hgs
parents: 39
diff changeset
   244
39
hgs
parents:
diff changeset
   245
    QString string;
hgs
parents:
diff changeset
   246
    if (textId) {
49
hgs
parents: 43
diff changeset
   247
        string = HbParameterLengthLimiter(textId).arg(eapTypeToString(eapType));
39
hgs
parents:
diff changeset
   248
    }
43
hgs
parents: 39
diff changeset
   249
hgs
parents: 39
diff changeset
   250
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_ERRORSTRING_EXIT );
39
hgs
parents:
diff changeset
   251
    return string;
hgs
parents:
diff changeset
   252
}
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
/*!
hgs
parents:
diff changeset
   255
   Reader method for eap configurations.
43
hgs
parents: 39
diff changeset
   256
39
hgs
parents:
diff changeset
   257
   See ConfigurationId for further details about the data types in QVariant.
43
hgs
parents: 39
diff changeset
   258
39
hgs
parents:
diff changeset
   259
   @param [in] confId Defines what configuration is read.
43
hgs
parents: 39
diff changeset
   260
39
hgs
parents:
diff changeset
   261
   @return configuration value.
hgs
parents:
diff changeset
   262
 */
hgs
parents:
diff changeset
   263
QVariant EapWizardPrivate::configurations(ConfigurationId confId) const
hgs
parents:
diff changeset
   264
{
43
hgs
parents: 39
diff changeset
   265
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_CONFIGURATIONS_ENTRY );
39
hgs
parents:
diff changeset
   266
    Q_ASSERT(mConfigurations.contains(confId));
43
hgs
parents: 39
diff changeset
   267
39
hgs
parents:
diff changeset
   268
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
   269
    QString tmp;
hgs
parents:
diff changeset
   270
    QDebug tmpStream(&tmp );
hgs
parents:
diff changeset
   271
    tmpStream << mConfigurations[confId];
hgs
parents:
diff changeset
   272
    TPtrC16 string(tmp.utf16(), tmp.length() );
43
hgs
parents: 39
diff changeset
   273
39
hgs
parents:
diff changeset
   274
    OstTraceExt2( 
hgs
parents:
diff changeset
   275
        TRACE_NORMAL, 
hgs
parents:
diff changeset
   276
        EAPWIZARDPRIVATE_CONFIGURATIONS, 
hgs
parents:
diff changeset
   277
        "EapWizardPrivate::configurations;confId=%{ConfigurationId};string=%S", 
hgs
parents:
diff changeset
   278
        (TUint)confId, string );
hgs
parents:
diff changeset
   279
#endif
43
hgs
parents: 39
diff changeset
   280
hgs
parents: 39
diff changeset
   281
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_CONFIGURATIONS_EXIT );
39
hgs
parents:
diff changeset
   282
    return mConfigurations[confId];
hgs
parents:
diff changeset
   283
}
hgs
parents:
diff changeset
   284
hgs
parents:
diff changeset
   285
/*!
hgs
parents:
diff changeset
   286
   Sets EAP configuration value for given configuration identifier.
hgs
parents:
diff changeset
   287
   See ConfigurationId for further details about the data types in QVariant.
43
hgs
parents: 39
diff changeset
   288
39
hgs
parents:
diff changeset
   289
   @param [in] confId Configuration Identifier do to be set
hgs
parents:
diff changeset
   290
   @param [in] value  Value for configuration.
hgs
parents:
diff changeset
   291
 */
hgs
parents:
diff changeset
   292
void EapWizardPrivate::setConfigurations(
hgs
parents:
diff changeset
   293
    ConfigurationId confId, const QVariant &value)
hgs
parents:
diff changeset
   294
{
43
hgs
parents: 39
diff changeset
   295
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_SETCONFIGURATIONS_ENTRY );
39
hgs
parents:
diff changeset
   296
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
   297
    QString tmp;
hgs
parents:
diff changeset
   298
    QDebug tmpStream(&tmp );
hgs
parents:
diff changeset
   299
    tmpStream << value;
hgs
parents:
diff changeset
   300
    TPtrC16 string( tmp.utf16(), tmp.length() );
43
hgs
parents: 39
diff changeset
   301
39
hgs
parents:
diff changeset
   302
    OstTraceExt2( 
hgs
parents:
diff changeset
   303
        TRACE_NORMAL, 
hgs
parents:
diff changeset
   304
        EAPWIZARDPRIVATE_SETCONFIGURATIONS, 
hgs
parents:
diff changeset
   305
        "EapWizardPrivate::setConfigurations;confId=%{ConfigurationId};string=%S", 
hgs
parents:
diff changeset
   306
        (TUint)confId, string );
hgs
parents:
diff changeset
   307
#endif
hgs
parents:
diff changeset
   308
hgs
parents:
diff changeset
   309
    mConfigurations[confId] = value;
43
hgs
parents: 39
diff changeset
   310
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_SETCONFIGURATIONS_EXIT );
39
hgs
parents:
diff changeset
   311
}
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
/*!
hgs
parents:
diff changeset
   314
   @return pointer to EapQtConfigInterface.
hgs
parents:
diff changeset
   315
 */
hgs
parents:
diff changeset
   316
EapQtConfigInterface* EapWizardPrivate::eapConfigurationInterface() const
hgs
parents:
diff changeset
   317
{
43
hgs
parents: 39
diff changeset
   318
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_EAPCONFIGURATIONINTERFACE_ENTRY );
39
hgs
parents:
diff changeset
   319
    Q_ASSERT(mEapConfIf.data());
43
hgs
parents: 39
diff changeset
   320
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_EAPCONFIGURATIONINTERFACE_EXIT );
39
hgs
parents:
diff changeset
   321
    return mEapConfIf.data();
hgs
parents:
diff changeset
   322
}
hgs
parents:
diff changeset
   323
hgs
parents:
diff changeset
   324
/*!
hgs
parents:
diff changeset
   325
   Maps given EAP Qt Plugin handle into string.
43
hgs
parents: 39
diff changeset
   326
39
hgs
parents:
diff changeset
   327
   @param [in] id EapQtPluginHandle::Handle, id to be mapped to string.
43
hgs
parents: 39
diff changeset
   328
39
hgs
parents:
diff changeset
   329
   @return EAP String.
hgs
parents:
diff changeset
   330
 */
hgs
parents:
diff changeset
   331
QString EapWizardPrivate::eapTypeToString(int id) const
hgs
parents:
diff changeset
   332
{
43
hgs
parents: 39
diff changeset
   333
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_EAPTYPETOSTRING_ENTRY );
39
hgs
parents:
diff changeset
   334
    QString locId;
hgs
parents:
diff changeset
   335
    switch (id) {
hgs
parents:
diff changeset
   336
    case EapQtPluginHandle::PluginEapAka:
hgs
parents:
diff changeset
   337
        locId = EapWizardUiStrings::EapAka;
hgs
parents:
diff changeset
   338
        break;
43
hgs
parents: 39
diff changeset
   339
39
hgs
parents:
diff changeset
   340
    case EapQtPluginHandle::PluginEapFast:
hgs
parents:
diff changeset
   341
        locId = EapWizardUiStrings::EapFast;
hgs
parents:
diff changeset
   342
        break;
43
hgs
parents: 39
diff changeset
   343
39
hgs
parents:
diff changeset
   344
    case EapQtPluginHandle::PluginLeap:
hgs
parents:
diff changeset
   345
        locId = EapWizardUiStrings::Leap;
hgs
parents:
diff changeset
   346
        break;
43
hgs
parents: 39
diff changeset
   347
39
hgs
parents:
diff changeset
   348
    case EapQtPluginHandle::PluginPeap:
hgs
parents:
diff changeset
   349
        locId = EapWizardUiStrings::Peap;
hgs
parents:
diff changeset
   350
        break;
43
hgs
parents: 39
diff changeset
   351
39
hgs
parents:
diff changeset
   352
    case EapQtPluginHandle::PluginEapSim:
hgs
parents:
diff changeset
   353
        locId = EapWizardUiStrings::EapSim;
hgs
parents:
diff changeset
   354
        break;
43
hgs
parents: 39
diff changeset
   355
39
hgs
parents:
diff changeset
   356
    case EapQtPluginHandle::PluginEapTls:
hgs
parents:
diff changeset
   357
        locId = EapWizardUiStrings::EapTls;
hgs
parents:
diff changeset
   358
        break;
43
hgs
parents: 39
diff changeset
   359
39
hgs
parents:
diff changeset
   360
    case EapQtPluginHandle::PluginEapTtls:
hgs
parents:
diff changeset
   361
        locId = EapWizardUiStrings::EapTtls;
hgs
parents:
diff changeset
   362
        break;
43
hgs
parents: 39
diff changeset
   363
39
hgs
parents:
diff changeset
   364
    case EapQtPluginHandle::PluginEapMschapv2:
hgs
parents:
diff changeset
   365
        locId = EapWizardUiStrings::EapMschapv2;
hgs
parents:
diff changeset
   366
        break;
43
hgs
parents: 39
diff changeset
   367
39
hgs
parents:
diff changeset
   368
    case EapQtPluginHandle::PluginEapGtc:
hgs
parents:
diff changeset
   369
        locId = EapWizardUiStrings::EapGtc;
hgs
parents:
diff changeset
   370
        break;
43
hgs
parents: 39
diff changeset
   371
39
hgs
parents:
diff changeset
   372
    case EapQtPluginHandle::PluginPap:
hgs
parents:
diff changeset
   373
        locId = EapWizardUiStrings::Pap;
hgs
parents:
diff changeset
   374
        break;
43
hgs
parents: 39
diff changeset
   375
39
hgs
parents:
diff changeset
   376
    default:
hgs
parents:
diff changeset
   377
        // Invalid enum
hgs
parents:
diff changeset
   378
        Q_ASSERT(EapQtPluginHandle::PluginPlainMschapv2 == id);
hgs
parents:
diff changeset
   379
        locId = EapWizardUiStrings::Mschapv2;
hgs
parents:
diff changeset
   380
        break;
hgs
parents:
diff changeset
   381
    }
43
hgs
parents: 39
diff changeset
   382
hgs
parents: 39
diff changeset
   383
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_EAPTYPETOSTRING_EXIT );
39
hgs
parents:
diff changeset
   384
    return locId;
hgs
parents:
diff changeset
   385
}
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
/*!
hgs
parents:
diff changeset
   388
   Accessor to WLAN Wizard Helper objects.
43
hgs
parents: 39
diff changeset
   389
39
hgs
parents:
diff changeset
   390
   @return a pointer to helper object.
hgs
parents:
diff changeset
   391
 */
hgs
parents:
diff changeset
   392
WlanWizardHelper *EapWizardPrivate::wizardHelper() const
hgs
parents:
diff changeset
   393
{
43
hgs
parents: 39
diff changeset
   394
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_WIZARDHELPER_ENTRY );
39
hgs
parents:
diff changeset
   395
    Q_ASSERT(mWizardHelper);
43
hgs
parents: 39
diff changeset
   396
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_WIZARDHELPER_EXIT );
39
hgs
parents:
diff changeset
   397
    return mWizardHelper;
hgs
parents:
diff changeset
   398
}
hgs
parents:
diff changeset
   399
hgs
parents:
diff changeset
   400
/*!
hgs
parents:
diff changeset
   401
   Creates EAP Wizard pages and add those to the wizard framework.
hgs
parents:
diff changeset
   402
 */
hgs
parents:
diff changeset
   403
void EapWizardPrivate::createPages()
hgs
parents:
diff changeset
   404
{
43
hgs
parents: 39
diff changeset
   405
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_CREATEPAGES_ENTRY );
39
hgs
parents:
diff changeset
   406
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   407
        EapWizardPage::PageOuterType,
hgs
parents:
diff changeset
   408
        new EapWizardPageOuterType(this));
43
hgs
parents: 39
diff changeset
   409
39
hgs
parents:
diff changeset
   410
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   411
        EapWizardPage::PageCertificateCa,
hgs
parents:
diff changeset
   412
        new EapWizardPageCertCa(this));
43
hgs
parents: 39
diff changeset
   413
39
hgs
parents:
diff changeset
   414
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   415
        EapWizardPage::PageCertificateUser,
hgs
parents:
diff changeset
   416
        new EapWizardPageCertUser(this));
43
hgs
parents: 39
diff changeset
   417
39
hgs
parents:
diff changeset
   418
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   419
        EapWizardPage::PageIdentity,
hgs
parents:
diff changeset
   420
        new EapWizardPageIdentity(this));
43
hgs
parents: 39
diff changeset
   421
39
hgs
parents:
diff changeset
   422
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   423
        EapWizardPage::PageInnerTypeEapTtls, 
hgs
parents:
diff changeset
   424
        new EapWizardPageInnerType(
hgs
parents:
diff changeset
   425
            this, 
hgs
parents:
diff changeset
   426
            EapQtPluginHandle::PluginEapTtls));
43
hgs
parents: 39
diff changeset
   427
39
hgs
parents:
diff changeset
   428
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   429
        EapWizardPage::PageInnerTypePeap, 
hgs
parents:
diff changeset
   430
        new EapWizardPageInnerType(
hgs
parents:
diff changeset
   431
            this,
hgs
parents:
diff changeset
   432
            EapQtPluginHandle::PluginPeap));
43
hgs
parents: 39
diff changeset
   433
39
hgs
parents:
diff changeset
   434
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   435
        EapWizardPage::PageUsernamePassword, 
hgs
parents:
diff changeset
   436
        new EapWizardPageUsernamePassword(this));
43
hgs
parents: 39
diff changeset
   437
39
hgs
parents:
diff changeset
   438
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   439
        EapWizardPage::PageNewPacStorePassword, 
hgs
parents:
diff changeset
   440
        new EapWizardPageNewPacStore(this));
43
hgs
parents: 39
diff changeset
   441
39
hgs
parents:
diff changeset
   442
    mWizardHelper->addPage(
hgs
parents:
diff changeset
   443
        EapWizardPage::PagePromptPacStorePassword,
hgs
parents:
diff changeset
   444
        new EapWizardPagePacStorePasswordConfirm(this));
43
hgs
parents: 39
diff changeset
   445
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_CREATEPAGES_EXIT );
39
hgs
parents:
diff changeset
   446
}
hgs
parents:
diff changeset
   447
hgs
parents:
diff changeset
   448
/*!
hgs
parents:
diff changeset
   449
   Check whether selected outer type has inner method.
43
hgs
parents: 39
diff changeset
   450
39
hgs
parents:
diff changeset
   451
   @return true if inner method exists, false otherwise.
hgs
parents:
diff changeset
   452
 */
hgs
parents:
diff changeset
   453
bool EapWizardPrivate::hasInnerMethod() const
hgs
parents:
diff changeset
   454
{
43
hgs
parents: 39
diff changeset
   455
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_HASINNERMETHOD_ENTRY );
39
hgs
parents:
diff changeset
   456
    int outerType = configurations(EapWizardPrivate::OuterType).toInt();
hgs
parents:
diff changeset
   457
    bool ret = false;
43
hgs
parents: 39
diff changeset
   458
hgs
parents: 39
diff changeset
   459
    switch (outerType) {
39
hgs
parents:
diff changeset
   460
    case EapQtPluginHandle::PluginEapTtls:
hgs
parents:
diff changeset
   461
    case EapQtPluginHandle::PluginPeap:
hgs
parents:
diff changeset
   462
    case EapQtPluginHandle::PluginEapFast:
hgs
parents:
diff changeset
   463
        ret = true;
hgs
parents:
diff changeset
   464
        break;
hgs
parents:
diff changeset
   465
    }
43
hgs
parents: 39
diff changeset
   466
hgs
parents: 39
diff changeset
   467
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_HASINNERMETHOD_EXIT );
39
hgs
parents:
diff changeset
   468
    return ret;
hgs
parents:
diff changeset
   469
}
hgs
parents:
diff changeset
   470
hgs
parents:
diff changeset
   471
hgs
parents:
diff changeset
   472
/*
hgs
parents:
diff changeset
   473
   Handles TLS methods (PEAP, EAP-TLS and EAP-TTLS) settings.
43
hgs
parents: 39
diff changeset
   474
39
hgs
parents:
diff changeset
   475
   Stores configurations to eapConf
43
hgs
parents: 39
diff changeset
   476
39
hgs
parents:
diff changeset
   477
   @param [in,out] eapConf configuration is written to this object.
hgs
parents:
diff changeset
   478
   @param [in] outerType Outer EAP method
hgs
parents:
diff changeset
   479
 */
hgs
parents:
diff changeset
   480
void EapWizardPrivate::handleTlsMethodsSettings(
hgs
parents:
diff changeset
   481
    EapQtConfig &eapConf,
hgs
parents:
diff changeset
   482
    EapQtPluginHandle &outerType)
hgs
parents:
diff changeset
   483
{
43
hgs
parents: 39
diff changeset
   484
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_HANDLETLSMETHODSSETTINGS_ENTRY );
39
hgs
parents:
diff changeset
   485
    // Common stuff for all tls methods
hgs
parents:
diff changeset
   486
    eapConf.setValue(EapQtConfig::UseIdentityPrivacy, false);
hgs
parents:
diff changeset
   487
    eapConf.setValue(EapQtConfig::VerifyServerRealm, false);
hgs
parents:
diff changeset
   488
    eapConf.setValue(EapQtConfig::ClientAuthenticationRequired, false);
hgs
parents:
diff changeset
   489
    eapConf.setValue(EapQtConfig::UsernameAutomatic, configurations(TunnelUsernameAutomatic));
hgs
parents:
diff changeset
   490
    eapConf.setValue(EapQtConfig::Username, configurations(TunnelUsername));
hgs
parents:
diff changeset
   491
    eapConf.setValue(EapQtConfig::RealmAutomatic, configurations(TunnelRealmAutomatic));
hgs
parents:
diff changeset
   492
    eapConf.setValue(EapQtConfig::Realm, configurations(TunnelRealm));
43
hgs
parents: 39
diff changeset
   493
39
hgs
parents:
diff changeset
   494
    QVariant certVariant = configurations(CertificateCa);
43
hgs
parents: 39
diff changeset
   495
39
hgs
parents:
diff changeset
   496
    if (certVariant.canConvert<EapQtCertificateInfo> ()) {
hgs
parents:
diff changeset
   497
        QList<QVariant> caCerts;
hgs
parents:
diff changeset
   498
        caCerts.append(certVariant);
hgs
parents:
diff changeset
   499
        eapConf.setValue(EapQtConfig::AuthorityCertificate, caCerts);
hgs
parents:
diff changeset
   500
        eapConf.setValue(EapQtConfig::AuthorityCertificateAutomatic, false);
hgs
parents:
diff changeset
   501
    } else {
hgs
parents:
diff changeset
   502
        eapConf.setValue(EapQtConfig::AuthorityCertificateAutomatic, true);
hgs
parents:
diff changeset
   503
    }
43
hgs
parents: 39
diff changeset
   504
39
hgs
parents:
diff changeset
   505
    // type specific configurations
hgs
parents:
diff changeset
   506
    if (outerType == EapQtPluginHandle::PluginEapTls) {
hgs
parents:
diff changeset
   507
        QList<QVariant> userCerts;
hgs
parents:
diff changeset
   508
        userCerts.append(configurations(CertificateUser));
hgs
parents:
diff changeset
   509
        eapConf.setValue(EapQtConfig::ClientAuthenticationRequired, true);
hgs
parents:
diff changeset
   510
        eapConf.setValue(EapQtConfig::UserCertificate, userCerts);
43
hgs
parents: 39
diff changeset
   511
39
hgs
parents:
diff changeset
   512
    } else if (outerType == EapQtPluginHandle::PluginPeap) {
43
hgs
parents: 39
diff changeset
   513
39
hgs
parents:
diff changeset
   514
        switch (configurations(InnerType).toInt()) {
hgs
parents:
diff changeset
   515
        case EapQtPluginHandle::PluginEapMschapv2:
hgs
parents:
diff changeset
   516
            // EAP-MSCHAPv2: enable v0 only
hgs
parents:
diff changeset
   517
            eapConf.setValue(EapQtConfig::PeapVersion0Allowed, true);
hgs
parents:
diff changeset
   518
            eapConf.setValue(EapQtConfig::PeapVersion1Allowed, false);
hgs
parents:
diff changeset
   519
            break;
43
hgs
parents: 39
diff changeset
   520
39
hgs
parents:
diff changeset
   521
        case EapQtPluginHandle::PluginEapGtc:
hgs
parents:
diff changeset
   522
            // EAP-GTC: enable v1 only
hgs
parents:
diff changeset
   523
            eapConf.setValue(EapQtConfig::PeapVersion0Allowed, false);
hgs
parents:
diff changeset
   524
            eapConf.setValue(EapQtConfig::PeapVersion1Allowed, true);
hgs
parents:
diff changeset
   525
            break;
hgs
parents:
diff changeset
   526
        }
hgs
parents:
diff changeset
   527
        eapConf.setValue(EapQtConfig::PeapVersion2Allowed, false);
hgs
parents:
diff changeset
   528
    }
43
hgs
parents: 39
diff changeset
   529
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_HANDLETLSMETHODSSETTINGS_EXIT );
39
hgs
parents:
diff changeset
   530
}
hgs
parents:
diff changeset
   531
hgs
parents:
diff changeset
   532
/*!
hgs
parents:
diff changeset
   533
   Handles configurations for EAP-FAST.
43
hgs
parents: 39
diff changeset
   534
39
hgs
parents:
diff changeset
   535
   @param [in,out] eapConf EAP Configuration
43
hgs
parents: 39
diff changeset
   536
39
hgs
parents:
diff changeset
   537
   @param false in case of failure.
hgs
parents:
diff changeset
   538
 */
hgs
parents:
diff changeset
   539
bool EapWizardPrivate::handleEapFastSettings(EapQtConfig &eapConf)
hgs
parents:
diff changeset
   540
{
43
hgs
parents: 39
diff changeset
   541
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_HANDLEEAPFASTSETTINGS_ENTRY );
39
hgs
parents:
diff changeset
   542
    bool ret = true;
hgs
parents:
diff changeset
   543
    EapQtPacStoreConfig pacStoreConf;
43
hgs
parents: 39
diff changeset
   544
60
hgs
parents: 49
diff changeset
   545
    eapConf.setValue(EapQtConfig::ProvisioningModeAuthenticated, true);
39
hgs
parents:
diff changeset
   546
    eapConf.setValue(EapQtConfig::ProvisioningModeUnauthenticated, true);
hgs
parents:
diff changeset
   547
    eapConf.setValue(EapQtConfig::VerifyServerRealm, false);
hgs
parents:
diff changeset
   548
    eapConf.setValue(EapQtConfig::UseIdentityPrivacy, false);
hgs
parents:
diff changeset
   549
hgs
parents:
diff changeset
   550
    switch (configurations(PacStoreState).toInt()) {
hgs
parents:
diff changeset
   551
    case EapQtPacStoreConfig::PacStoreStateStoreNotExists:
hgs
parents:
diff changeset
   552
    case EapQtPacStoreConfig::PacStoreStatePasswordRequired:            
hgs
parents:
diff changeset
   553
        pacStoreConf.setValue(
hgs
parents:
diff changeset
   554
            EapQtPacStoreConfig::PacStorePassword, 
hgs
parents:
diff changeset
   555
            configurations(PacStorePassword));
43
hgs
parents: 39
diff changeset
   556
39
hgs
parents:
diff changeset
   557
        pacStoreConf.setValue(
hgs
parents:
diff changeset
   558
            EapQtPacStoreConfig::PacStoreSavePassword, 
hgs
parents:
diff changeset
   559
            true);
43
hgs
parents: 39
diff changeset
   560
39
hgs
parents:
diff changeset
   561
        if (!mEapConfIf->savePacStoreConfiguration(pacStoreConf)) {
hgs
parents:
diff changeset
   562
            // no cleaning required
hgs
parents:
diff changeset
   563
            ret = false;
hgs
parents:
diff changeset
   564
        }
hgs
parents:
diff changeset
   565
        break;
43
hgs
parents: 39
diff changeset
   566
39
hgs
parents:
diff changeset
   567
    default:
hgs
parents:
diff changeset
   568
        // Do nothing
hgs
parents:
diff changeset
   569
        break;
hgs
parents:
diff changeset
   570
    }
43
hgs
parents: 39
diff changeset
   571
hgs
parents: 39
diff changeset
   572
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_HANDLEEAPFASTSETTINGS_EXIT );
39
hgs
parents:
diff changeset
   573
    return ret;
hgs
parents:
diff changeset
   574
}
hgs
parents:
diff changeset
   575
hgs
parents:
diff changeset
   576
/*!
hgs
parents:
diff changeset
   577
   Handles configurations for EAP-AKA and EAP-SIM.
43
hgs
parents: 39
diff changeset
   578
39
hgs
parents:
diff changeset
   579
   @param [in,out] eapConf EAP Configuration
hgs
parents:
diff changeset
   580
 */
hgs
parents:
diff changeset
   581
void EapWizardPrivate::handleEapAkaSimSettings(EapQtConfig &eapConf)
hgs
parents:
diff changeset
   582
{
43
hgs
parents: 39
diff changeset
   583
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_HANDLEEAPAKASIMSETTINGS_ENTRY );
39
hgs
parents:
diff changeset
   584
    eapConf.setValue(EapQtConfig::UsernameAutomatic, true);
hgs
parents:
diff changeset
   585
    eapConf.setValue(EapQtConfig::RealmAutomatic, true);    
43
hgs
parents: 39
diff changeset
   586
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_HANDLEEAPAKASIMSETTINGS_EXIT );
39
hgs
parents:
diff changeset
   587
}
hgs
parents:
diff changeset
   588
hgs
parents:
diff changeset
   589
/*!
hgs
parents:
diff changeset
   590
   Handles configurations for LEAP.
43
hgs
parents: 39
diff changeset
   591
39
hgs
parents:
diff changeset
   592
   @param [in,out] eapConf EAP Configuration
hgs
parents:
diff changeset
   593
 */
hgs
parents:
diff changeset
   594
void EapWizardPrivate::handleLeapSettings(EapQtConfig &eapConf)
hgs
parents:
diff changeset
   595
{
43
hgs
parents: 39
diff changeset
   596
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_HANDLELEAPSETTINGS_ENTRY );
39
hgs
parents:
diff changeset
   597
    eapConf.setValue(EapQtConfig::UsernameAutomatic, false);
hgs
parents:
diff changeset
   598
    eapConf.setValue(EapQtConfig::Username, configurations(Username));
hgs
parents:
diff changeset
   599
    eapConf.setValue(EapQtConfig::PasswordPrompt, false);
hgs
parents:
diff changeset
   600
    eapConf.setValue(EapQtConfig::Password, configurations(Password));    
43
hgs
parents: 39
diff changeset
   601
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_HANDLELEAPSETTINGS_EXIT );
39
hgs
parents:
diff changeset
   602
}
hgs
parents:
diff changeset
   603
hgs
parents:
diff changeset
   604
/*!
hgs
parents:
diff changeset
   605
   Store outer type settings.
43
hgs
parents: 39
diff changeset
   606
39
hgs
parents:
diff changeset
   607
   @param outerType reference to outertype
43
hgs
parents: 39
diff changeset
   608
39
hgs
parents:
diff changeset
   609
   @return false in case of failure.
hgs
parents:
diff changeset
   610
 */
hgs
parents:
diff changeset
   611
bool EapWizardPrivate::storeOuterTypeSettings(EapQtPluginHandle &outerType)
hgs
parents:
diff changeset
   612
{
43
hgs
parents: 39
diff changeset
   613
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_STOREOUTERTYPESETTINGS_ENTRY );
39
hgs
parents:
diff changeset
   614
    EapQtConfig eapConf;
43
hgs
parents: 39
diff changeset
   615
39
hgs
parents:
diff changeset
   616
    // 1. Store outer type settings
hgs
parents:
diff changeset
   617
    switch (outerType.pluginId()) {
hgs
parents:
diff changeset
   618
    case EapQtPluginHandle::PluginEapTtls: 
hgs
parents:
diff changeset
   619
    case EapQtPluginHandle::PluginPeap:
hgs
parents:
diff changeset
   620
    case EapQtPluginHandle::PluginEapTls:
hgs
parents:
diff changeset
   621
        handleTlsMethodsSettings(eapConf, outerType);
hgs
parents:
diff changeset
   622
        break;
43
hgs
parents: 39
diff changeset
   623
39
hgs
parents:
diff changeset
   624
    case EapQtPluginHandle::PluginEapFast:
hgs
parents:
diff changeset
   625
        if (!handleEapFastSettings(eapConf)) {
43
hgs
parents: 39
diff changeset
   626
            OstTraceFunctionExit0( EAPWIZARDPRIVATE_STOREOUTERTYPESETTINGS_EXIT );
39
hgs
parents:
diff changeset
   627
            return false;
hgs
parents:
diff changeset
   628
        }
hgs
parents:
diff changeset
   629
        break;
43
hgs
parents: 39
diff changeset
   630
39
hgs
parents:
diff changeset
   631
    case EapQtPluginHandle::PluginEapAka: 
hgs
parents:
diff changeset
   632
    case EapQtPluginHandle::PluginEapSim:
hgs
parents:
diff changeset
   633
        handleEapAkaSimSettings(eapConf);
hgs
parents:
diff changeset
   634
        break;
43
hgs
parents: 39
diff changeset
   635
39
hgs
parents:
diff changeset
   636
    default:
hgs
parents:
diff changeset
   637
        Q_ASSERT(outerType == EapQtPluginHandle::PluginLeap);
hgs
parents:
diff changeset
   638
        handleLeapSettings(eapConf);
hgs
parents:
diff changeset
   639
        break;
hgs
parents:
diff changeset
   640
    }
43
hgs
parents: 39
diff changeset
   641
39
hgs
parents:
diff changeset
   642
    if (hasInnerMethod()) {
hgs
parents:
diff changeset
   643
        EapQtPluginHandle inner = static_cast<EapQtPluginHandle::Plugin>(
hgs
parents:
diff changeset
   644
            configurations(InnerType).toInt());
43
hgs
parents: 39
diff changeset
   645
39
hgs
parents:
diff changeset
   646
        QList<QVariant> innerType;
hgs
parents:
diff changeset
   647
        innerType.append(qVariantFromValue(inner));
hgs
parents:
diff changeset
   648
        eapConf.setValue(EapQtConfig::InnerType, innerType);
hgs
parents:
diff changeset
   649
    }
43
hgs
parents: 39
diff changeset
   650
39
hgs
parents:
diff changeset
   651
    // store outer type configurations
hgs
parents:
diff changeset
   652
    if (!mEapConfIf->saveConfiguration(outerType, eapConf)){
hgs
parents:
diff changeset
   653
        mEapConfIf->deleteConfiguration();
43
hgs
parents: 39
diff changeset
   654
        OstTraceFunctionExit0( DUP1_EAPWIZARDPRIVATE_STOREOUTERTYPESETTINGS_EXIT );
39
hgs
parents:
diff changeset
   655
        return false;
hgs
parents:
diff changeset
   656
    }
43
hgs
parents: 39
diff changeset
   657
39
hgs
parents:
diff changeset
   658
    QList<EapQtPluginHandle> selectedOuterTypes;
hgs
parents:
diff changeset
   659
    selectedOuterTypes.append(outerType);
hgs
parents:
diff changeset
   660
    if (!mEapConfIf->setSelectedOuterTypes(selectedOuterTypes)){
hgs
parents:
diff changeset
   661
        mEapConfIf->deleteConfiguration();
43
hgs
parents: 39
diff changeset
   662
        OstTraceFunctionExit0( DUP2_EAPWIZARDPRIVATE_STOREOUTERTYPESETTINGS_EXIT );
39
hgs
parents:
diff changeset
   663
        return false;
hgs
parents:
diff changeset
   664
    }
43
hgs
parents: 39
diff changeset
   665
hgs
parents: 39
diff changeset
   666
    OstTraceFunctionExit0( DUP3_EAPWIZARDPRIVATE_STOREOUTERTYPESETTINGS_EXIT );
39
hgs
parents:
diff changeset
   667
    return true;
hgs
parents:
diff changeset
   668
}
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
hgs
parents:
diff changeset
   671
/*!
hgs
parents:
diff changeset
   672
   Store inner type settings if exists.
43
hgs
parents: 39
diff changeset
   673
39
hgs
parents:
diff changeset
   674
   @param outerType reference to outertype
43
hgs
parents: 39
diff changeset
   675
39
hgs
parents:
diff changeset
   676
   @return false in case of failure.
hgs
parents:
diff changeset
   677
 */
hgs
parents:
diff changeset
   678
bool EapWizardPrivate::storeInnerTypeSettings(EapQtPluginHandle &outerType)
hgs
parents:
diff changeset
   679
{
43
hgs
parents: 39
diff changeset
   680
    OstTraceFunctionEntry0( EAPWIZARDPRIVATE_STOREINNERTYPESETTINGS_ENTRY );
39
hgs
parents:
diff changeset
   681
    bool ret = true;
43
hgs
parents: 39
diff changeset
   682
39
hgs
parents:
diff changeset
   683
    if (hasInnerMethod()) {
hgs
parents:
diff changeset
   684
        EapQtPluginHandle inner = static_cast<EapQtPluginHandle::Plugin>(
hgs
parents:
diff changeset
   685
            configurations(InnerType).toInt());
43
hgs
parents: 39
diff changeset
   686
39
hgs
parents:
diff changeset
   687
        // All inner methods supported by wizard use password / username. 
hgs
parents:
diff changeset
   688
        EapQtConfig eapConfInner;
hgs
parents:
diff changeset
   689
        eapConfInner.setValue(EapQtConfig::OuterType, qVariantFromValue(outerType));
hgs
parents:
diff changeset
   690
        eapConfInner.setValue(EapQtConfig::UsernameAutomatic, false);
hgs
parents:
diff changeset
   691
        eapConfInner.setValue(EapQtConfig::Username, configurations(Username));
hgs
parents:
diff changeset
   692
        eapConfInner.setValue(EapQtConfig::PasswordPrompt, false);
hgs
parents:
diff changeset
   693
        eapConfInner.setValue(EapQtConfig::Password, configurations(Password));
43
hgs
parents: 39
diff changeset
   694
39
hgs
parents:
diff changeset
   695
        if (!mEapConfIf->saveConfiguration(inner, eapConfInner)){
hgs
parents:
diff changeset
   696
            mEapConfIf->deleteConfiguration();
hgs
parents:
diff changeset
   697
            ret = false;
hgs
parents:
diff changeset
   698
        }
hgs
parents:
diff changeset
   699
    }
43
hgs
parents: 39
diff changeset
   700
    OstTraceFunctionExit0( EAPWIZARDPRIVATE_STOREINNERTYPESETTINGS_EXIT );
39
hgs
parents:
diff changeset
   701
    return ret;
hgs
parents:
diff changeset
   702
}