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