eapol/eapol_framework/eapol_symbian/am/eap_notifier/inc/eap_auth_notifier.h
author hgs
Fri, 09 Jul 2010 10:14:51 +0300
changeset 36 c98682f98478
parent 34 ad1f037f1ac2
child 49 43351a4f2da3
permissions -rw-r--r--
201027
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
*
36
hgs
parents: 34
diff changeset
    14
* Description: EAP Authentication Notifier
26
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
34
hgs
parents: 26
diff changeset
    18
/*
36
hgs
parents: 34
diff changeset
    19
* %version: 15 %
34
hgs
parents: 26
diff changeset
    20
*/
hgs
parents: 26
diff changeset
    21
26
hgs
parents:
diff changeset
    22
#ifndef __EAPAUTHNOTIFIER_H__
hgs
parents:
diff changeset
    23
#define __EAPAUTHNOTIFIER_H__
hgs
parents:
diff changeset
    24
36
hgs
parents: 34
diff changeset
    25
// System includes
26
hgs
parents:
diff changeset
    26
#include <e32base.h>
hgs
parents:
diff changeset
    27
#include <hb/hbcore/hbdevicedialogsymbian.h>
hgs
parents:
diff changeset
    28
36
hgs
parents: 34
diff changeset
    29
// User includes
hgs
parents: 34
diff changeset
    30
hgs
parents: 34
diff changeset
    31
// Forward declarations
hgs
parents: 34
diff changeset
    32
hgs
parents: 34
diff changeset
    33
class TEapExpandedType; 
hgs
parents: 34
diff changeset
    34
class CEapAuthObserver;
hgs
parents: 34
diff changeset
    35
hgs
parents: 34
diff changeset
    36
// External data types
hgs
parents: 34
diff changeset
    37
hgs
parents: 34
diff changeset
    38
//Global function prototypes
hgs
parents: 34
diff changeset
    39
hgs
parents: 34
diff changeset
    40
//Constants
hgs
parents: 34
diff changeset
    41
26
hgs
parents:
diff changeset
    42
const TUint KMaxNotifItemLength = 256;
hgs
parents:
diff changeset
    43
const TUint KMaxUiDataLength = 1024;
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
/**
hgs
parents:
diff changeset
    46
 * Callback interface
hgs
parents:
diff changeset
    47
 */
hgs
parents:
diff changeset
    48
class MNotificationCallback
hgs
parents:
diff changeset
    49
    {
hgs
parents:
diff changeset
    50
    public:
36
hgs
parents: 34
diff changeset
    51
       /**
hgs
parents: 34
diff changeset
    52
        * Notify for the client that the Dialog is complete
hgs
parents: 34
diff changeset
    53
        *
hgs
parents: 34
diff changeset
    54
        * @param  aStatus status
hgs
parents: 34
diff changeset
    55
        * return  -
hgs
parents: 34
diff changeset
    56
        */
26
hgs
parents:
diff changeset
    57
        virtual void DlgComplete( TInt aStatus ) = 0;
hgs
parents:
diff changeset
    58
    };
hgs
parents:
diff changeset
    59
36
hgs
parents: 34
diff changeset
    60
/**
hgs
parents: 34
diff changeset
    61
 * EAP Notifier
hgs
parents: 34
diff changeset
    62
 */
26
hgs
parents:
diff changeset
    63
NONSHARABLE_CLASS ( CEapAuthNotifier ): public CBase
hgs
parents:
diff changeset
    64
    {
hgs
parents:
diff changeset
    65
    public:
36
hgs
parents: 34
diff changeset
    66
        // Data types
26
hgs
parents:
diff changeset
    67
        
36
hgs
parents: 34
diff changeset
    68
        /** EAP Notifier types */
26
hgs
parents:
diff changeset
    69
        enum EEapNotifierType
hgs
parents:
diff changeset
    70
        {
hgs
parents:
diff changeset
    71
            EEapNotifierTypeLEapUsernamePasswordDialog, 
hgs
parents:
diff changeset
    72
            EEapNotifierTypeGTCQueryDialog,
hgs
parents:
diff changeset
    73
            EEapNotifierTypePapAuthQueryDialog,
34
hgs
parents: 26
diff changeset
    74
            EEapNotifierTypePapChallengeDialog, 
hgs
parents: 26
diff changeset
    75
            EEapNotifierTypeGtcChallengeDialog, 
26
hgs
parents:
diff changeset
    76
            EEapNotifierTypeFastInstallPacQueryDialog,
hgs
parents:
diff changeset
    77
            EEapNotifierTypeFastPacStorePwQueryDialog,
hgs
parents:
diff changeset
    78
            EEapNotifierTypeFastCreateMasterkeyQueryDialog, 
hgs
parents:
diff changeset
    79
            EEapNotifierTypeFastPacFilePwQueryDialog, 
hgs
parents:
diff changeset
    80
            EEapNotifierTypeFastStartAuthProvWaitNote, 
hgs
parents:
diff changeset
    81
            EEapNotifierTypeFastStartUnauthProvWaitNote,
hgs
parents:
diff changeset
    82
            EEapNotifierTypePapUsernamePasswordDialog,
hgs
parents:
diff changeset
    83
            EEapNotifierTypeFastShowProvNotSuccessNote, 
hgs
parents:
diff changeset
    84
            EEapNotifierTypeEapMsChapV2UsernamePasswordDialog,
hgs
parents:
diff changeset
    85
            EEapNotifierTypeMsChapV2UsernamePasswordDialog, 
hgs
parents:
diff changeset
    86
            EEapNotifierTypeMsChapV2NewPasswordDialog, 
hgs
parents:
diff changeset
    87
            EEapNotifierTypeMsChapV2OldPasswordDialog,
hgs
parents:
diff changeset
    88
            EEapNotifierTypeMsChapV2PasswordExpiredNote,
hgs
parents:
diff changeset
    89
            EEapNotifierTypeGTCUsernamePasswordDialog,
hgs
parents:
diff changeset
    90
        }; 
hgs
parents:
diff changeset
    91
        
36
hgs
parents: 34
diff changeset
    92
        /**  EAP Notifier Data struct */
26
hgs
parents:
diff changeset
    93
        struct TEapDialogInfo
hgs
parents:
diff changeset
    94
        {
hgs
parents:
diff changeset
    95
            TBool iPasswordPromptEnabled;
hgs
parents:
diff changeset
    96
            TBool iIsIdentityQuery;
hgs
parents:
diff changeset
    97
            TBuf16<KMaxNotifItemLength> iUsername;
hgs
parents:
diff changeset
    98
            TBuf16<KMaxNotifItemLength> iPassword;
hgs
parents:
diff changeset
    99
            TBuf16<KMaxNotifItemLength> iOldPassword; 
hgs
parents:
diff changeset
   100
            TBool iIsFirstQuery;
hgs
parents:
diff changeset
   101
            TBuf16<KMaxUiDataLength> iUidata;
hgs
parents:
diff changeset
   102
        };
36
hgs
parents: 34
diff changeset
   103
                     
26
hgs
parents:
diff changeset
   104
        /**
hgs
parents:
diff changeset
   105
        * Two-phased constructor.
hgs
parents:
diff changeset
   106
        */
hgs
parents:
diff changeset
   107
        IMPORT_C  static CEapAuthNotifier* NewL( MNotificationCallback& aClient );
hgs
parents:
diff changeset
   108
        
hgs
parents:
diff changeset
   109
        /**
hgs
parents:
diff changeset
   110
        * Destructor
hgs
parents:
diff changeset
   111
        */
hgs
parents:
diff changeset
   112
        ~CEapAuthNotifier();
36
hgs
parents: 34
diff changeset
   113
    
hgs
parents: 34
diff changeset
   114
    public:          
26
hgs
parents:
diff changeset
   115
        /**
hgs
parents:
diff changeset
   116
        * Start the Notifier
36
hgs
parents: 34
diff changeset
   117
        *
26
hgs
parents:
diff changeset
   118
        * @param  aType            notifier type
hgs
parents:
diff changeset
   119
        * @param  aPasswordInfo    data to be filled
hgs
parents:
diff changeset
   120
        * @param  aEapType         eap type
hgs
parents:
diff changeset
   121
        * return -
hgs
parents:
diff changeset
   122
        */
hgs
parents:
diff changeset
   123
        IMPORT_C void StartL( EEapNotifierType aType,
hgs
parents:
diff changeset
   124
                              TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   125
                              TEapExpandedType& aEapType );
hgs
parents:
diff changeset
   126
        
hgs
parents:
diff changeset
   127
        /**
hgs
parents:
diff changeset
   128
        * Cancel() the notifier
36
hgs
parents: 34
diff changeset
   129
        *
26
hgs
parents:
diff changeset
   130
        * @param  -
hgs
parents:
diff changeset
   131
        * return -
hgs
parents:
diff changeset
   132
        */
hgs
parents:
diff changeset
   133
        IMPORT_C void Cancel();
36
hgs
parents: 34
diff changeset
   134
                 
26
hgs
parents:
diff changeset
   135
        /**
hgs
parents:
diff changeset
   136
        * CompleteL the notifier is complete
36
hgs
parents: 34
diff changeset
   137
        *
26
hgs
parents:
diff changeset
   138
        * @param  aStatus status
hgs
parents:
diff changeset
   139
        * return  -
hgs
parents:
diff changeset
   140
        */
hgs
parents:
diff changeset
   141
        void CompleteL( TInt aStatus );
hgs
parents:
diff changeset
   142
        
hgs
parents:
diff changeset
   143
        /**
hgs
parents:
diff changeset
   144
        * Sets the selected user name and password of the presented dialog
36
hgs
parents: 34
diff changeset
   145
        *
26
hgs
parents:
diff changeset
   146
        * @param  aPasswordInfo password 
hgs
parents:
diff changeset
   147
        * return  -
hgs
parents:
diff changeset
   148
        */
hgs
parents:
diff changeset
   149
        void SetSelectedUnameAndPwd( TEapDialogInfo& aPasswordInfo );
hgs
parents:
diff changeset
   150
                
hgs
parents:
diff changeset
   151
        /**
hgs
parents:
diff changeset
   152
        * Sets the selected password of the presented dialog
36
hgs
parents: 34
diff changeset
   153
        *
26
hgs
parents:
diff changeset
   154
        * @param  aPasswordInfo password 
hgs
parents:
diff changeset
   155
        * return  -
hgs
parents:
diff changeset
   156
        */
hgs
parents:
diff changeset
   157
        void SetSelectedPassword(
hgs
parents:
diff changeset
   158
                TEapDialogInfo& aPasswordInfo );
hgs
parents:
diff changeset
   159
        
hgs
parents:
diff changeset
   160
        /**
hgs
parents:
diff changeset
   161
        * Sets the selected Old password of the presented dialog
36
hgs
parents: 34
diff changeset
   162
        *
26
hgs
parents:
diff changeset
   163
        * @param  aPasswordInfo old password 
hgs
parents:
diff changeset
   164
        * return  -
hgs
parents:
diff changeset
   165
        */
hgs
parents:
diff changeset
   166
        void SetSelectedOldPassword(
hgs
parents:
diff changeset
   167
                TEapDialogInfo& aPasswordInfo );
hgs
parents:
diff changeset
   168
       
hgs
parents:
diff changeset
   169
    private:
hgs
parents:
diff changeset
   170
        /**
hgs
parents:
diff changeset
   171
        * Constructor
hgs
parents:
diff changeset
   172
        */
hgs
parents:
diff changeset
   173
        CEapAuthNotifier( MNotificationCallback& aClient );
hgs
parents:
diff changeset
   174
        
hgs
parents:
diff changeset
   175
        /**
34
hgs
parents: 26
diff changeset
   176
        * ConstructL
hgs
parents: 26
diff changeset
   177
        */
hgs
parents: 26
diff changeset
   178
        void ConstructL();
hgs
parents: 26
diff changeset
   179
        
hgs
parents: 26
diff changeset
   180
        /**
26
hgs
parents:
diff changeset
   181
        * Set data for the UsernamePassword Dialog(s)
36
hgs
parents: 34
diff changeset
   182
        *
26
hgs
parents:
diff changeset
   183
        * @param  aPasswordInfo    data to be filled
hgs
parents:
diff changeset
   184
        * @param  aEapType         Eap type to be used
hgs
parents:
diff changeset
   185
        * @param  aMap             Pointer to variant data
36
hgs
parents: 34
diff changeset
   186
        * @param  aAuthMethod      Authentication method to be used
26
hgs
parents:
diff changeset
   187
        * return -
hgs
parents:
diff changeset
   188
        */
hgs
parents:
diff changeset
   189
        void SetUsernamePasswordDataL( 
hgs
parents:
diff changeset
   190
            TEapDialogInfo* aPasswordInfo,
hgs
parents:
diff changeset
   191
            TEapExpandedType& aEapType,
hgs
parents:
diff changeset
   192
            CHbSymbianVariantMap* aMap,
34
hgs
parents: 26
diff changeset
   193
            const TDesC& aAuthMethod );
26
hgs
parents:
diff changeset
   194
                
hgs
parents:
diff changeset
   195
        
hgs
parents:
diff changeset
   196
        /**
hgs
parents:
diff changeset
   197
        * Set data for the query Dialog(s)
36
hgs
parents: 34
diff changeset
   198
        *
26
hgs
parents:
diff changeset
   199
        * @param  aEapInfo         data to be filled
hgs
parents:
diff changeset
   200
        * @param  aMap             Pointer to variant data
36
hgs
parents: 34
diff changeset
   201
        * @param  aAuthMethod      Authentication method to be used
26
hgs
parents:
diff changeset
   202
        * return -
hgs
parents:
diff changeset
   203
        */
hgs
parents:
diff changeset
   204
        void SetQueryDialogDataL( 
hgs
parents:
diff changeset
   205
            TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   206
            CHbSymbianVariantMap* aMap,
34
hgs
parents: 26
diff changeset
   207
            const TDesC& aAuthMethod );
26
hgs
parents:
diff changeset
   208
        
hgs
parents:
diff changeset
   209
       /**
hgs
parents:
diff changeset
   210
        * Set data for the Install Pac query Dialog(s)
36
hgs
parents: 34
diff changeset
   211
        *
26
hgs
parents:
diff changeset
   212
        * @param  aEapInfo         data to be filled
hgs
parents:
diff changeset
   213
        * @param  aMap             Pointer to variant data
hgs
parents:
diff changeset
   214
        * return -
hgs
parents:
diff changeset
   215
        */
hgs
parents:
diff changeset
   216
        void SetFastInstallPacQueryDialogDataL( 
hgs
parents:
diff changeset
   217
            TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   218
            CHbSymbianVariantMap* aMap );
hgs
parents:
diff changeset
   219
        
hgs
parents:
diff changeset
   220
       /**
hgs
parents:
diff changeset
   221
        * Set data for the Pac file query Dialog(s)
36
hgs
parents: 34
diff changeset
   222
        *
26
hgs
parents:
diff changeset
   223
        * @param  aEapInfo         data to be filled
hgs
parents:
diff changeset
   224
        * @param  aMap             Pointer to variant data
hgs
parents:
diff changeset
   225
        * return -
hgs
parents:
diff changeset
   226
        */
36
hgs
parents: 34
diff changeset
   227
        void SetFastPacFileQueryPwDialogDataL( 
26
hgs
parents:
diff changeset
   228
            TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   229
            CHbSymbianVariantMap* aMap );
hgs
parents:
diff changeset
   230
        
hgs
parents:
diff changeset
   231
       /**
hgs
parents:
diff changeset
   232
        * Set data for the prov wait note Dialog(s)
36
hgs
parents: 34
diff changeset
   233
        *
26
hgs
parents:
diff changeset
   234
        * @param  aMap                  Pointer to variant data
36
hgs
parents: 34
diff changeset
   235
        * @param  aAuthProvWaitNote     Tells whether auth or unauth 
26
hgs
parents:
diff changeset
   236
        * return -
hgs
parents:
diff changeset
   237
        */
36
hgs
parents: 34
diff changeset
   238
        void SetFastProvWaitNoteDialogDataL( 
26
hgs
parents:
diff changeset
   239
            CHbSymbianVariantMap* aMap,
hgs
parents:
diff changeset
   240
            TBool aAuthProvWaitNote );
hgs
parents:
diff changeset
   241
                    
hgs
parents:
diff changeset
   242
       /**
hgs
parents:
diff changeset
   243
        * Set data for the Password Dialog(s)
36
hgs
parents: 34
diff changeset
   244
        *
26
hgs
parents:
diff changeset
   245
        * @param  aEapType         Eap type to be used
hgs
parents:
diff changeset
   246
        * @param  aMap             Pointer to variant data
36
hgs
parents: 34
diff changeset
   247
        * @param  aAuthMethod      Authentication method to be used
26
hgs
parents:
diff changeset
   248
        * return -
hgs
parents:
diff changeset
   249
        */
hgs
parents:
diff changeset
   250
        void SetPasswordQueryDataL( 
hgs
parents:
diff changeset
   251
            TEapExpandedType& aEapType,
hgs
parents:
diff changeset
   252
            CHbSymbianVariantMap* aMap,
34
hgs
parents: 26
diff changeset
   253
            const TDesC& aAuthMethod );
26
hgs
parents:
diff changeset
   254
        
36
hgs
parents: 34
diff changeset
   255
    private: // Data
34
hgs
parents: 26
diff changeset
   256
        
36
hgs
parents: 34
diff changeset
   257
        /** 
hgs
parents: 34
diff changeset
   258
         * For callback 
hgs
parents: 34
diff changeset
   259
         */
34
hgs
parents: 26
diff changeset
   260
        MNotificationCallback& iClient;  
hgs
parents: 26
diff changeset
   261
        
36
hgs
parents: 34
diff changeset
   262
        /** 
hgs
parents: 34
diff changeset
   263
         * Pointer to the device dialog interface for handling the dialog 
hgs
parents: 34
diff changeset
   264
         */
26
hgs
parents:
diff changeset
   265
        CHbDeviceDialogSymbian* iDialog;
36
hgs
parents: 34
diff changeset
   266
        
hgs
parents: 34
diff changeset
   267
        /** 
hgs
parents: 34
diff changeset
   268
         * The observer to handle the data received from the orbit dialog 
hgs
parents: 34
diff changeset
   269
         */
26
hgs
parents:
diff changeset
   270
        CEapAuthObserver* iObserver;
34
hgs
parents: 26
diff changeset
   271
                        
36
hgs
parents: 34
diff changeset
   272
        /** 
hgs
parents: 34
diff changeset
   273
         * Information if request was already completed, in case the
26
hgs
parents:
diff changeset
   274
         * observer receives the data signal and the signal about closing the
hgs
parents:
diff changeset
   275
         * dialog.
hgs
parents:
diff changeset
   276
         */
hgs
parents:
diff changeset
   277
        TBool iCompleted;
hgs
parents:
diff changeset
   278
        
36
hgs
parents: 34
diff changeset
   279
        /**
hgs
parents: 34
diff changeset
   280
         * Information if request was already cancelled.
hgs
parents: 34
diff changeset
   281
         */
26
hgs
parents:
diff changeset
   282
        TBool iCancelled;
hgs
parents:
diff changeset
   283
        
36
hgs
parents: 34
diff changeset
   284
        /** 
hgs
parents: 34
diff changeset
   285
         * Pointer to the Eap Dialog Info structure 
hgs
parents: 34
diff changeset
   286
         */
34
hgs
parents: 26
diff changeset
   287
        TEapDialogInfo* iEapInfo;
hgs
parents: 26
diff changeset
   288
        
26
hgs
parents:
diff changeset
   289
    
hgs
parents:
diff changeset
   290
    };
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
#endif //__EAPAUTHNOTIFIER_H__
hgs
parents:
diff changeset
   293