eapol/eapol_framework/eapol_symbian/am/eap_notifier/src/eap_auth_observer.cpp
author hgs
Mon, 24 May 2010 20:32:47 +0300
changeset 26 9abfd4f00d37
child 34 ad1f037f1ac2
permissions -rw-r--r--
201021
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
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: Dialog observer implementation
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <hb/hbcore/hbsymbianvariant.h>
hgs
parents:
diff changeset
    19
#include <e32debug.h>
hgs
parents:
diff changeset
    20
#include "eap_auth_notifier.h"
hgs
parents:
diff changeset
    21
#include "eap_auth_observer.h"
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// ---------------------------------------------------------
hgs
parents:
diff changeset
    25
// CEapAuthObserver* CEapAuthObserver::NewL
hgs
parents:
diff changeset
    26
// ---------------------------------------------------------
hgs
parents:
diff changeset
    27
//
hgs
parents:
diff changeset
    28
CEapAuthObserver* CEapAuthObserver::NewL( 
hgs
parents:
diff changeset
    29
    CEapAuthNotifier* aNotifier,
hgs
parents:
diff changeset
    30
    CEapAuthNotifier::EEapNotifierType aType )
hgs
parents:
diff changeset
    31
    {
hgs
parents:
diff changeset
    32
    RDebug::Print(_L("CEapAuthObserver::NewL") );
hgs
parents:
diff changeset
    33
    
hgs
parents:
diff changeset
    34
    CEapAuthObserver* self = new ( ELeave ) CEapAuthObserver( aNotifier, aType );
hgs
parents:
diff changeset
    35
    return self;
hgs
parents:
diff changeset
    36
    }
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
// ---------------------------------------------------------
hgs
parents:
diff changeset
    39
// CEapAuthObserver::CEapAuthObserver
hgs
parents:
diff changeset
    40
// ---------------------------------------------------------
hgs
parents:
diff changeset
    41
//
hgs
parents:
diff changeset
    42
CEapAuthObserver::CEapAuthObserver( 
hgs
parents:
diff changeset
    43
    CEapAuthNotifier* aNotifier,
hgs
parents:
diff changeset
    44
    CEapAuthNotifier::EEapNotifierType aType ): 
hgs
parents:
diff changeset
    45
    iNotifier( aNotifier ),
hgs
parents:
diff changeset
    46
    iType(aType)
hgs
parents:
diff changeset
    47
    {
hgs
parents:
diff changeset
    48
    RDebug::Print(_L("CEapAuthObserver::CEapAuthObserver") );
hgs
parents:
diff changeset
    49
    }
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
// ---------------------------------------------------------
hgs
parents:
diff changeset
    52
// CEapAuthObserver::~CEapAuthObserver()
hgs
parents:
diff changeset
    53
// ---------------------------------------------------------
hgs
parents:
diff changeset
    54
//
hgs
parents:
diff changeset
    55
CEapAuthObserver::~CEapAuthObserver()
hgs
parents:
diff changeset
    56
    {
hgs
parents:
diff changeset
    57
    RDebug::Print(_L("CEapAuthObserver::~CEapAuthObserver") );
hgs
parents:
diff changeset
    58
    }
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
// ---------------------------------------------------------
hgs
parents:
diff changeset
    61
// void CEapAuthObserver::DataReceived
hgs
parents:
diff changeset
    62
// ---------------------------------------------------------
hgs
parents:
diff changeset
    63
//
hgs
parents:
diff changeset
    64
void CEapAuthObserver::DataReceived( CHbSymbianVariantMap& aData )
hgs
parents:
diff changeset
    65
{
hgs
parents:
diff changeset
    66
    RDebug::Print(_L("CEapAuthObserver::DataReceived") );
hgs
parents:
diff changeset
    67
    
hgs
parents:
diff changeset
    68
    if ( iType == CEapAuthNotifier::EEapNotifierTypeLEapUsernamePasswordDialog )
hgs
parents:
diff changeset
    69
        {
hgs
parents:
diff changeset
    70
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeLEapUsernamePasswordDialog") );
hgs
parents:
diff changeset
    71
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
    72
        }
hgs
parents:
diff changeset
    73
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeGTCUsernamePasswordDialog )
hgs
parents:
diff changeset
    74
        {
hgs
parents:
diff changeset
    75
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeGTCUsernamePasswordDialog") );
hgs
parents:
diff changeset
    76
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
    77
        }
hgs
parents:
diff changeset
    78
    else if ( iType == CEapAuthNotifier::EEapNotifierTypePapUsernamePasswordDialog )
hgs
parents:
diff changeset
    79
        {
hgs
parents:
diff changeset
    80
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypePapUsernamePasswordDialog") );
hgs
parents:
diff changeset
    81
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
    82
        }
hgs
parents:
diff changeset
    83
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeEapMsChapV2UsernamePasswordDialog )
hgs
parents:
diff changeset
    84
        {
hgs
parents:
diff changeset
    85
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeEapMsChapV2UsernamePasswordDialog") );
hgs
parents:
diff changeset
    86
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
    87
        }
hgs
parents:
diff changeset
    88
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeMsChapV2UsernamePasswordDialog )
hgs
parents:
diff changeset
    89
        {
hgs
parents:
diff changeset
    90
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeMsChapV2UsernamePasswordDialog") );
hgs
parents:
diff changeset
    91
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
    92
        }
hgs
parents:
diff changeset
    93
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeGTCSecurIDPasscodeQueryUidDialog )
hgs
parents:
diff changeset
    94
        {
hgs
parents:
diff changeset
    95
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeGTCSecurIDPasscodeQueryUidDialog") ); 
hgs
parents:
diff changeset
    96
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
    97
        }
hgs
parents:
diff changeset
    98
    else if ( iType == CEapAuthNotifier::EEapNotifierTypePapChallengeReplyQueryDialog )
hgs
parents:
diff changeset
    99
        {
hgs
parents:
diff changeset
   100
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypePapChallengeReplyQueryDialog") ); 
hgs
parents:
diff changeset
   101
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   102
        }
hgs
parents:
diff changeset
   103
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeFastPacStorePwQueryDialog )
hgs
parents:
diff changeset
   104
        {
hgs
parents:
diff changeset
   105
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeFastPacStorePwQueryDialog") ); 
hgs
parents:
diff changeset
   106
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   107
        }
hgs
parents:
diff changeset
   108
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeFastCreateMasterkeyQueryDialog )
hgs
parents:
diff changeset
   109
        {
hgs
parents:
diff changeset
   110
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeFastCreateMasterkeyQueryDialog") ); 
hgs
parents:
diff changeset
   111
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   112
        }
hgs
parents:
diff changeset
   113
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeFastPacFilePwQueryDialog )
hgs
parents:
diff changeset
   114
        {
hgs
parents:
diff changeset
   115
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeFastPacFilePwQueryDialog") ); 
hgs
parents:
diff changeset
   116
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   117
        }
hgs
parents:
diff changeset
   118
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeMsChapV2OldPasswordDialog )
hgs
parents:
diff changeset
   119
        {
hgs
parents:
diff changeset
   120
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeMsChapV2OldPasswordDialog") ); 
hgs
parents:
diff changeset
   121
        OldPwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   122
        }
hgs
parents:
diff changeset
   123
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeMsChapV2NewPasswordDialog )
hgs
parents:
diff changeset
   124
        {
hgs
parents:
diff changeset
   125
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeMsChapV2NewPasswordDialog") ); 
hgs
parents:
diff changeset
   126
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   127
        }
hgs
parents:
diff changeset
   128
    
hgs
parents:
diff changeset
   129
    TInt status = KErrNone;
hgs
parents:
diff changeset
   130
    
hgs
parents:
diff changeset
   131
    TRAP_IGNORE( iNotifier->CompleteL( status ));
hgs
parents:
diff changeset
   132
}
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
// ---------------------------------------------------------
hgs
parents:
diff changeset
   135
// void CEapAuthObserver::UsernamePasswordDlgDataReceived
hgs
parents:
diff changeset
   136
// ---------------------------------------------------------
hgs
parents:
diff changeset
   137
//
hgs
parents:
diff changeset
   138
void CEapAuthObserver::UsernamePasswordDlgDataReceived( CHbSymbianVariantMap& aData )
hgs
parents:
diff changeset
   139
{
hgs
parents:
diff changeset
   140
    RDebug::Print(_L("CEapAuthObserver::UsernamePasswordDlgDataReceived") ); 
hgs
parents:
diff changeset
   141
    
hgs
parents:
diff changeset
   142
    _LIT(KUsername, "username");
hgs
parents:
diff changeset
   143
    _LIT(KPassword, "password");
hgs
parents:
diff changeset
   144
    
hgs
parents:
diff changeset
   145
    CEapAuthNotifier::TEapDialogInfo PasswordInfo;
hgs
parents:
diff changeset
   146
    TDesC* Data = NULL;
hgs
parents:
diff changeset
   147
       
hgs
parents:
diff changeset
   148
    PasswordInfo.iIsIdentityQuery = EFalse; 
hgs
parents:
diff changeset
   149
    PasswordInfo.iPasswordPromptEnabled = EFalse;
hgs
parents:
diff changeset
   150
    
hgs
parents:
diff changeset
   151
    const CHbSymbianVariant *my_variant = aData.Get(KUsername); 
hgs
parents:
diff changeset
   152
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   153
        {
hgs
parents:
diff changeset
   154
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   155
    
hgs
parents:
diff changeset
   156
        Data = reinterpret_cast<TDesC*>(my_variant->Data());       
hgs
parents:
diff changeset
   157
        PasswordInfo.iUsername.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   158
        PasswordInfo.iIsIdentityQuery = ETrue; 
hgs
parents:
diff changeset
   159
        RDebug::Print(_L("CEapAuthObserver::DataReceived: PasswordInfo.iUsername = %S\n"), &PasswordInfo.iUsername );
hgs
parents:
diff changeset
   160
        }
hgs
parents:
diff changeset
   161
    my_variant = aData.Get(KPassword);
hgs
parents:
diff changeset
   162
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   163
        {
hgs
parents:
diff changeset
   164
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   165
    
hgs
parents:
diff changeset
   166
        Data = reinterpret_cast<TDesC*>(my_variant->Data());     
hgs
parents:
diff changeset
   167
        PasswordInfo.iPassword.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   168
        PasswordInfo.iPasswordPromptEnabled = ETrue;
hgs
parents:
diff changeset
   169
        RDebug::Print(_L("CEapAuthObserver::DataReceived: PasswordInfo.iPassword = %S\n"), &PasswordInfo.iPassword );
hgs
parents:
diff changeset
   170
        }
hgs
parents:
diff changeset
   171
       
hgs
parents:
diff changeset
   172
    iNotifier->SetSelectedUnameAndPwd( PasswordInfo );   
hgs
parents:
diff changeset
   173
}
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
// ---------------------------------------------------------
hgs
parents:
diff changeset
   176
// void CEapAuthObserver::OldPwdQueryDataReceived
hgs
parents:
diff changeset
   177
// ---------------------------------------------------------
hgs
parents:
diff changeset
   178
//
hgs
parents:
diff changeset
   179
void CEapAuthObserver::OldPwdQueryDataReceived( CHbSymbianVariantMap& aData )
hgs
parents:
diff changeset
   180
{
hgs
parents:
diff changeset
   181
    RDebug::Print(_L("CEapAuthObserver::OldPwdQueryDataReceived") ); 
hgs
parents:
diff changeset
   182
    
hgs
parents:
diff changeset
   183
    _LIT(KPassword, "password");
hgs
parents:
diff changeset
   184
    
hgs
parents:
diff changeset
   185
    CEapAuthNotifier::TEapDialogInfo PasswordInfo;
hgs
parents:
diff changeset
   186
    TDesC* Data = NULL;
hgs
parents:
diff changeset
   187
          
hgs
parents:
diff changeset
   188
    const CHbSymbianVariant *my_variant = aData.Get(KPassword); 
hgs
parents:
diff changeset
   189
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   190
        {
hgs
parents:
diff changeset
   191
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   192
    
hgs
parents:
diff changeset
   193
        Data = reinterpret_cast<TDesC*>(my_variant->Data());     
hgs
parents:
diff changeset
   194
        PasswordInfo.iOldPassword.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
        RDebug::Print(_L("CEapAuthObserver::OldPwdQueryDataReceived: PasswordInfo.iOldPassword = %S\n"), &PasswordInfo.iOldPassword );
hgs
parents:
diff changeset
   197
        }
hgs
parents:
diff changeset
   198
       
hgs
parents:
diff changeset
   199
    iNotifier->SetSelectedOldPassword( PasswordInfo );   
hgs
parents:
diff changeset
   200
}
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
// ---------------------------------------------------------
hgs
parents:
diff changeset
   203
// void CEapAuthObserver::PwdQueryDataReceived
hgs
parents:
diff changeset
   204
// ---------------------------------------------------------
hgs
parents:
diff changeset
   205
//
hgs
parents:
diff changeset
   206
void CEapAuthObserver::PwdQueryDataReceived( CHbSymbianVariantMap& aData )
hgs
parents:
diff changeset
   207
{
hgs
parents:
diff changeset
   208
    RDebug::Print(_L("CEapAuthObserver::PwdQueryDataReceived") ); 
hgs
parents:
diff changeset
   209
    
hgs
parents:
diff changeset
   210
    _LIT(KPassword, "password");
hgs
parents:
diff changeset
   211
    
hgs
parents:
diff changeset
   212
    CEapAuthNotifier::TEapDialogInfo PasswordInfo;
hgs
parents:
diff changeset
   213
    TDesC* Data = NULL;
hgs
parents:
diff changeset
   214
           
hgs
parents:
diff changeset
   215
    const CHbSymbianVariant *my_variant = aData.Get(KPassword); 
hgs
parents:
diff changeset
   216
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   217
        {
hgs
parents:
diff changeset
   218
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   219
    
hgs
parents:
diff changeset
   220
        Data = reinterpret_cast<TDesC*>(my_variant->Data());     
hgs
parents:
diff changeset
   221
        PasswordInfo.iPassword.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
        RDebug::Print(_L("CEapAuthObserver::PwdQueryDataReceived: PasswordInfo.iPassword = %S\n"), &PasswordInfo.iPassword );
hgs
parents:
diff changeset
   224
        }
hgs
parents:
diff changeset
   225
       
hgs
parents:
diff changeset
   226
    iNotifier->SetSelectedPassword( PasswordInfo );   
hgs
parents:
diff changeset
   227
}
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
// ---------------------------------------------------------
hgs
parents:
diff changeset
   230
// void CEapAuthObserver::DeviceDialogClosed
hgs
parents:
diff changeset
   231
// ---------------------------------------------------------
hgs
parents:
diff changeset
   232
//
hgs
parents:
diff changeset
   233
void CEapAuthObserver::DeviceDialogClosed( TInt /*aCompletionCode*/ )
hgs
parents:
diff changeset
   234
{
hgs
parents:
diff changeset
   235
    // Dialog was closed, let's complete with that error code
hgs
parents:
diff changeset
   236
    RDebug::Print(_L("CEapAuthObserver::DeviceDialogClosed"));
hgs
parents:
diff changeset
   237
    
hgs
parents:
diff changeset
   238
    TInt status = KErrCancel;
hgs
parents:
diff changeset
   239
    
hgs
parents:
diff changeset
   240
    if ( iType != CEapAuthNotifier::EEapNotifierTypeFastStartAuthProvWaitNote &&
hgs
parents:
diff changeset
   241
         iType != CEapAuthNotifier::EEapNotifierTypeFastStartUnauthProvWaitNote )
hgs
parents:
diff changeset
   242
        {
hgs
parents:
diff changeset
   243
        TRAP_IGNORE( iNotifier->CompleteL( status ));
hgs
parents:
diff changeset
   244
        }
hgs
parents:
diff changeset
   245
}
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247