eapol/eapol_framework/eapol_symbian/am/eap_notifier/inc/eap_auth_notifier.h
author hgs
Thu, 24 Jun 2010 11:23:08 +0300
changeset 34 ad1f037f1ac2
parent 26 9abfd4f00d37
child 36 c98682f98478
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
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
*
34
hgs
parents: 26
diff changeset
    14
* Description: EAP Auth Notifier
26
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
34
hgs
parents: 26
diff changeset
    18
/*
hgs
parents: 26
diff changeset
    19
* %version: 3 %
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
hgs
parents:
diff changeset
    25
#include <e32base.h>
hgs
parents:
diff changeset
    26
#include <hb/hbcore/hbdevicedialogsymbian.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
const TUint KMaxNotifItemLength = 256;
hgs
parents:
diff changeset
    29
const TUint KMaxUiDataLength = 1024;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
/**
hgs
parents:
diff changeset
    32
 * Callback interface
hgs
parents:
diff changeset
    33
 */
hgs
parents:
diff changeset
    34
class MNotificationCallback
hgs
parents:
diff changeset
    35
    {
hgs
parents:
diff changeset
    36
    public:
hgs
parents:
diff changeset
    37
        virtual void DlgComplete( TInt aStatus ) = 0;
hgs
parents:
diff changeset
    38
    };
hgs
parents:
diff changeset
    39
34
hgs
parents: 26
diff changeset
    40
class TEapExpandedType; 
26
hgs
parents:
diff changeset
    41
class CEapAuthObserver;
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
NONSHARABLE_CLASS ( CEapAuthNotifier ): public CBase
hgs
parents:
diff changeset
    45
    {
hgs
parents:
diff changeset
    46
    public:
hgs
parents:
diff changeset
    47
        
hgs
parents:
diff changeset
    48
        enum EEapNotifierType
hgs
parents:
diff changeset
    49
        {
hgs
parents:
diff changeset
    50
            EEapNotifierTypeLEapUsernamePasswordDialog, 
hgs
parents:
diff changeset
    51
            EEapNotifierTypeGTCQueryDialog,
hgs
parents:
diff changeset
    52
            EEapNotifierTypePapAuthQueryDialog,
34
hgs
parents: 26
diff changeset
    53
            EEapNotifierTypePapChallengeDialog, 
hgs
parents: 26
diff changeset
    54
            EEapNotifierTypeGtcChallengeDialog, 
26
hgs
parents:
diff changeset
    55
            EEapNotifierTypeFastInstallPacQueryDialog,
hgs
parents:
diff changeset
    56
            EEapNotifierTypeFastPacStorePwQueryDialog,
hgs
parents:
diff changeset
    57
            EEapNotifierTypeFastCreateMasterkeyQueryDialog, 
hgs
parents:
diff changeset
    58
            EEapNotifierTypeFastPacFilePwQueryDialog, 
hgs
parents:
diff changeset
    59
            EEapNotifierTypeFastStartAuthProvWaitNote, 
hgs
parents:
diff changeset
    60
            EEapNotifierTypeFastStartUnauthProvWaitNote,
hgs
parents:
diff changeset
    61
            EEapNotifierTypePapUsernamePasswordDialog,
hgs
parents:
diff changeset
    62
            EEapNotifierTypeFastShowProvNotSuccessNote, 
hgs
parents:
diff changeset
    63
            EEapNotifierTypeEapMsChapV2UsernamePasswordDialog,
hgs
parents:
diff changeset
    64
            EEapNotifierTypeMsChapV2UsernamePasswordDialog, 
hgs
parents:
diff changeset
    65
            EEapNotifierTypeMsChapV2NewPasswordDialog, 
hgs
parents:
diff changeset
    66
            EEapNotifierTypeMsChapV2OldPasswordDialog,
hgs
parents:
diff changeset
    67
            EEapNotifierTypeMsChapV2PasswordExpiredNote,
hgs
parents:
diff changeset
    68
            EEapNotifierTypeGTCUsernamePasswordDialog,
hgs
parents:
diff changeset
    69
        }; 
hgs
parents:
diff changeset
    70
        
hgs
parents:
diff changeset
    71
        struct TEapDialogInfo
hgs
parents:
diff changeset
    72
        {
hgs
parents:
diff changeset
    73
            TBool iPasswordPromptEnabled;
hgs
parents:
diff changeset
    74
            TBool iIsIdentityQuery;
hgs
parents:
diff changeset
    75
            TBuf16<KMaxNotifItemLength> iUsername;
hgs
parents:
diff changeset
    76
            TBuf16<KMaxNotifItemLength> iPassword;
hgs
parents:
diff changeset
    77
            TBuf16<KMaxNotifItemLength> iOldPassword; 
hgs
parents:
diff changeset
    78
            TBool iIsFirstQuery;
hgs
parents:
diff changeset
    79
            TBuf16<KMaxUiDataLength> iUidata;
hgs
parents:
diff changeset
    80
        };
hgs
parents:
diff changeset
    81
          
hgs
parents:
diff changeset
    82
        /**
hgs
parents:
diff changeset
    83
        * Two-phased constructor.
hgs
parents:
diff changeset
    84
        */
hgs
parents:
diff changeset
    85
        IMPORT_C  static CEapAuthNotifier* NewL( MNotificationCallback& aClient );
hgs
parents:
diff changeset
    86
        
hgs
parents:
diff changeset
    87
        /**
hgs
parents:
diff changeset
    88
        * Destructor
hgs
parents:
diff changeset
    89
        */
hgs
parents:
diff changeset
    90
        ~CEapAuthNotifier();
hgs
parents:
diff changeset
    91
        
hgs
parents:
diff changeset
    92
        /**
hgs
parents:
diff changeset
    93
        * Start the Notifier
hgs
parents:
diff changeset
    94
        * @param  aType            notifier type
hgs
parents:
diff changeset
    95
        * @param  aPasswordInfo    data to be filled
hgs
parents:
diff changeset
    96
        * @param  aEapType         eap type
hgs
parents:
diff changeset
    97
        * return -
hgs
parents:
diff changeset
    98
        */
hgs
parents:
diff changeset
    99
        IMPORT_C void StartL( EEapNotifierType aType,
hgs
parents:
diff changeset
   100
                              TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   101
                              TEapExpandedType& aEapType );
hgs
parents:
diff changeset
   102
        
hgs
parents:
diff changeset
   103
        /**
hgs
parents:
diff changeset
   104
        * Cancel() the notifier
hgs
parents:
diff changeset
   105
        * @param  -
hgs
parents:
diff changeset
   106
        * return -
hgs
parents:
diff changeset
   107
        */
hgs
parents:
diff changeset
   108
        IMPORT_C void Cancel();
hgs
parents:
diff changeset
   109
        
hgs
parents:
diff changeset
   110
    public:           
hgs
parents:
diff changeset
   111
        /**
hgs
parents:
diff changeset
   112
        * CompleteL the notifier is complete
hgs
parents:
diff changeset
   113
        * @param  aStatus status
hgs
parents:
diff changeset
   114
        * return  -
hgs
parents:
diff changeset
   115
        */
hgs
parents:
diff changeset
   116
        void CompleteL( TInt aStatus );
hgs
parents:
diff changeset
   117
        
hgs
parents:
diff changeset
   118
        /**
hgs
parents:
diff changeset
   119
        * Sets the selected user name and password of the presented dialog
hgs
parents:
diff changeset
   120
        * @param  aPasswordInfo password 
hgs
parents:
diff changeset
   121
        * return  -
hgs
parents:
diff changeset
   122
        */
hgs
parents:
diff changeset
   123
        void SetSelectedUnameAndPwd( TEapDialogInfo& aPasswordInfo );
hgs
parents:
diff changeset
   124
                
hgs
parents:
diff changeset
   125
        /**
hgs
parents:
diff changeset
   126
        * Sets the selected password of the presented dialog
hgs
parents:
diff changeset
   127
        * @param  aPasswordInfo password 
hgs
parents:
diff changeset
   128
        * return  -
hgs
parents:
diff changeset
   129
        */
hgs
parents:
diff changeset
   130
        void SetSelectedPassword(
hgs
parents:
diff changeset
   131
                TEapDialogInfo& aPasswordInfo );
hgs
parents:
diff changeset
   132
        
hgs
parents:
diff changeset
   133
        /**
hgs
parents:
diff changeset
   134
        * Sets the selected Old password of the presented dialog
hgs
parents:
diff changeset
   135
        * @param  aPasswordInfo old password 
hgs
parents:
diff changeset
   136
        * return  -
hgs
parents:
diff changeset
   137
        */
hgs
parents:
diff changeset
   138
        void SetSelectedOldPassword(
hgs
parents:
diff changeset
   139
                TEapDialogInfo& aPasswordInfo );
hgs
parents:
diff changeset
   140
       
hgs
parents:
diff changeset
   141
    private:
hgs
parents:
diff changeset
   142
        /**
hgs
parents:
diff changeset
   143
        * Constructor
hgs
parents:
diff changeset
   144
        */
hgs
parents:
diff changeset
   145
        CEapAuthNotifier( MNotificationCallback& aClient );
hgs
parents:
diff changeset
   146
        
hgs
parents:
diff changeset
   147
        /**
34
hgs
parents: 26
diff changeset
   148
        * ConstructL
hgs
parents: 26
diff changeset
   149
        */
hgs
parents: 26
diff changeset
   150
        void ConstructL();
hgs
parents: 26
diff changeset
   151
        
hgs
parents: 26
diff changeset
   152
        /**
26
hgs
parents:
diff changeset
   153
        * Set data for the UsernamePassword Dialog(s)
hgs
parents:
diff changeset
   154
        * @param  aPasswordInfo    data to be filled
hgs
parents:
diff changeset
   155
        * @param  aEapType         Eap type to be used
hgs
parents:
diff changeset
   156
        * @param  aMap             Pointer to variant data
hgs
parents:
diff changeset
   157
        * @param  aAuthMethod      Auth method to be used
hgs
parents:
diff changeset
   158
        * return -
hgs
parents:
diff changeset
   159
        */
hgs
parents:
diff changeset
   160
        void SetUsernamePasswordDataL( 
hgs
parents:
diff changeset
   161
            TEapDialogInfo* aPasswordInfo,
hgs
parents:
diff changeset
   162
            TEapExpandedType& aEapType,
hgs
parents:
diff changeset
   163
            CHbSymbianVariantMap* aMap,
34
hgs
parents: 26
diff changeset
   164
            const TDesC& aAuthMethod );
26
hgs
parents:
diff changeset
   165
                
hgs
parents:
diff changeset
   166
        
hgs
parents:
diff changeset
   167
        /**
hgs
parents:
diff changeset
   168
        * Set data for the query Dialog(s)
hgs
parents:
diff changeset
   169
        * @param  aEapInfo         data to be filled
hgs
parents:
diff changeset
   170
        * @param  aMap             Pointer to variant data
hgs
parents:
diff changeset
   171
        * @param  aAuthMethod      Auth method to be used
hgs
parents:
diff changeset
   172
        * return -
hgs
parents:
diff changeset
   173
        */
hgs
parents:
diff changeset
   174
        void SetQueryDialogDataL( 
hgs
parents:
diff changeset
   175
            TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   176
            CHbSymbianVariantMap* aMap,
34
hgs
parents: 26
diff changeset
   177
            const TDesC& aAuthMethod );
26
hgs
parents:
diff changeset
   178
        
hgs
parents:
diff changeset
   179
       /**
hgs
parents:
diff changeset
   180
        * Set data for the Install Pac query Dialog(s)
hgs
parents:
diff changeset
   181
        * @param  aEapInfo         data to be filled
hgs
parents:
diff changeset
   182
        * @param  aMap             Pointer to variant data
hgs
parents:
diff changeset
   183
        * return -
hgs
parents:
diff changeset
   184
        */
hgs
parents:
diff changeset
   185
        void SetFastInstallPacQueryDialogDataL( 
hgs
parents:
diff changeset
   186
            TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   187
            CHbSymbianVariantMap* aMap );
hgs
parents:
diff changeset
   188
        
hgs
parents:
diff changeset
   189
       /**
hgs
parents:
diff changeset
   190
        * Set data for the Pac file query Dialog(s)
hgs
parents:
diff changeset
   191
        * @param  aEapInfo         data to be filled
hgs
parents:
diff changeset
   192
        * @param  aMap             Pointer to variant data
hgs
parents:
diff changeset
   193
        * return -
hgs
parents:
diff changeset
   194
        */
hgs
parents:
diff changeset
   195
        void setFastPacFileQueryPwDialogDataL( 
hgs
parents:
diff changeset
   196
            TEapDialogInfo* aEapInfo,
hgs
parents:
diff changeset
   197
            CHbSymbianVariantMap* aMap );
hgs
parents:
diff changeset
   198
        
hgs
parents:
diff changeset
   199
       /**
hgs
parents:
diff changeset
   200
        * Set data for the prov wait note Dialog(s)
hgs
parents:
diff changeset
   201
        * @param  aMap                  Pointer to variant data
hgs
parents:
diff changeset
   202
        * @param  aAuthProvWaitNote     Tells whether aut or unauth 
hgs
parents:
diff changeset
   203
        * return -
hgs
parents:
diff changeset
   204
        */
hgs
parents:
diff changeset
   205
        void setFastProvWaitNoteDialogDataL( 
hgs
parents:
diff changeset
   206
            CHbSymbianVariantMap* aMap,
hgs
parents:
diff changeset
   207
            TBool aAuthProvWaitNote );
hgs
parents:
diff changeset
   208
                    
hgs
parents:
diff changeset
   209
       /**
hgs
parents:
diff changeset
   210
        * Set data for the Password Dialog(s)
hgs
parents:
diff changeset
   211
        * @param  aEapType         Eap type to be used
hgs
parents:
diff changeset
   212
        * @param  aMap             Pointer to variant data
hgs
parents:
diff changeset
   213
        * @param  aAuthMethod      Auth method to be used
hgs
parents:
diff changeset
   214
        * return -
hgs
parents:
diff changeset
   215
        */
hgs
parents:
diff changeset
   216
        void SetPasswordQueryDataL( 
hgs
parents:
diff changeset
   217
            TEapExpandedType& aEapType,
hgs
parents:
diff changeset
   218
            CHbSymbianVariantMap* aMap,
34
hgs
parents: 26
diff changeset
   219
            const TDesC& aAuthMethod );
26
hgs
parents:
diff changeset
   220
        
hgs
parents:
diff changeset
   221
    private:
34
hgs
parents: 26
diff changeset
   222
        
hgs
parents: 26
diff changeset
   223
        /** For callback */
hgs
parents: 26
diff changeset
   224
        MNotificationCallback& iClient;  
hgs
parents: 26
diff changeset
   225
        
26
hgs
parents:
diff changeset
   226
        /** Pointer to the device dialog interface for handling the dialog */
hgs
parents:
diff changeset
   227
        CHbDeviceDialogSymbian* iDialog;
hgs
parents:
diff changeset
   228
        /** The observer to handle the data received from the orbit dialog */
hgs
parents:
diff changeset
   229
        CEapAuthObserver* iObserver;
34
hgs
parents: 26
diff changeset
   230
                        
26
hgs
parents:
diff changeset
   231
        /* Information if request was already completed, in case the
hgs
parents:
diff changeset
   232
         * observer receives the data signal and the signal about closing the
hgs
parents:
diff changeset
   233
         * dialog.
hgs
parents:
diff changeset
   234
         */
hgs
parents:
diff changeset
   235
        TBool iCompleted;
hgs
parents:
diff changeset
   236
        
34
hgs
parents: 26
diff changeset
   237
        /** Information if request was already cancelled.*/
26
hgs
parents:
diff changeset
   238
        TBool iCancelled;
hgs
parents:
diff changeset
   239
        
34
hgs
parents: 26
diff changeset
   240
        /** Pointer to the Eap Dialog Info structure */
hgs
parents: 26
diff changeset
   241
        TEapDialogInfo* iEapInfo;
hgs
parents: 26
diff changeset
   242
        
26
hgs
parents:
diff changeset
   243
    
hgs
parents:
diff changeset
   244
    };
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
#endif //__EAPAUTHNOTIFIER_H__
hgs
parents:
diff changeset
   247