wim/WimServer/inc/WimAuthObjHandler.h
changeset 0 164170e6151a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wim/WimServer/inc/WimAuthObjHandler.h	Tue Jan 26 15:20:08 2010 +0200
@@ -0,0 +1,294 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  WIM Authentication Object Handler
+*
+*/
+
+
+
+#ifndef CWIMAUTHOBJHANDLER_H
+#define CWIMAUTHOBJHANDLER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <secdlg.h>
+#include "WimResponse.h"
+#include "WimUtilityFuncs.h"
+
+// FORWARD DECLARATIONS
+class CWimSecurityDlgHandler;
+class CWimMemMgmt;
+class CWimUtilityFuncs;
+
+// CONSTANTS
+_LIT( KUnblockingPinLabel, "Unblocking PIN" );
+
+// CLASS DECLARATION
+
+/**
+*  WIM Authentication Object Handler.
+*  Handles authentication objects, such as PIN.
+*
+*  @since Series60 2.1
+*/
+class CWimAuthObjHandler : public CActive
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CWimAuthObjHandler* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CWimAuthObjHandler();
+
+    public: // New functions
+        
+        /**
+        * Get PIN count from the WIM card.
+        * @param aMessage Encapsulates a client request.
+        * @return void 
+        */
+        void GetPINCountL( const RMessage2& aMessage ) const;
+        
+        /**
+        * Get reference list for PINs.
+        * @param aMessage Encapsulates a client request.
+        * @param aWimMgmt Pointer to WIM reference management class.
+        * @return void
+        */
+        void GetPINRefListL( const RMessage2& aMessage,
+                             CWimMemMgmt* aWimMgmt );
+
+        /**
+        * Get detailed information about the PIN.
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void GetPINInfoL( const RMessage2& aMessage ) ;
+        
+        /**
+        * Get detailed information about the PINs.
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void GetPINsInfoL( const RMessage2& aMessage );
+        
+        /**
+        * Verifies PIN number.
+        * @since Series60 2.6
+        * @param aMessage Encapsulates a client request.
+        * @param aShowDialog Tells whether to show security dialog
+                             for PIN query or not.
+        * @return void
+        */
+        void VerifyPINRequestL( const RMessage2& aMessage, TBool aShowDialog );
+        
+        /**
+        * Cancel Verifies PIN number.
+        * @since Series60 3.0
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void CancelVerifyPin( const RMessage2& aMessage ); 
+        
+        /**
+        * Verifies Disabled PIN status.
+        * @since Series60 3.0
+        * @param aMessage Encapsulates a client request.
+        * @param aShowDialog Tells whether to show security dialog
+                             for PIN query or not.
+        * @return void
+        */
+        void VerifyDisabledPINRequestL( const RMessage2& aMessage );
+        
+        /**
+        * Changes a PIN number.
+        * @since Series60 2.6
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void ChangePINRequestL( const RMessage2& aMessage );
+        
+        /**
+        * Cancel Changes a PIN number.
+        * @since Series60 3.0
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void CancelChangePin( const RMessage2& aMessage ); 
+        
+        /**
+        * Enables/disables PIN query.
+        * @since Series60 2.6
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void EnablePINReqL( const RMessage2& aMessage );
+        
+        /**
+        * Enables/disables PIN query.
+        * @since Series60 3.0
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void CancelEnablePin( const RMessage2& aMessage ); 
+       
+        /**
+        * Unblocks blocked PIN.
+        * @since Series60 2.6
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void UnblockPinReqL( const RMessage2& aMessage );
+        
+        /**
+        * Cancel Unblocks blocked PIN.
+        * @since Series60 3.0
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void CancelUnblockPin( const RMessage2& aMessage ); 
+        
+        /**
+        * Retrive authentication object's info
+        * @since S60 3.2
+        * @param aMessage Encapsulates a client request.
+        * @return void
+        */
+        void RetrieveAuthObjectsInfo( const RMessage2& aMessage );
+    
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CWimAuthObjHandler();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        /**
+        * Continue Verify PIN request after PIN is asked. Calls WIMI.
+        * @since Series60 2.6
+        * @return void
+        */
+        void VerifyPINAskPIN();
+        void ContinueVerifyPINReqL();
+
+        /**
+        * Continue Change PIN request after PIN is asked. Calls WIMI.
+        * @since Series60 2.6
+        * @return void
+        */
+        void ChangePINAskPIN();
+        void ContinueChangePINReqL();
+
+        /**
+        * Continue Enable/Disable PIN request after PIN is asked. Calls WIMI.
+        * @since Series60 2.6
+        * @return void
+        */
+        void EnablePINAskPIN();
+        void ContinueEnablePINReqL();
+
+        /**
+        * Continue Unblock PIN request after PIN is asked. Calls WIMI.
+        * @since Series60 2.6
+        * @return void
+        */
+        void UnblockPINAskPIN();
+        void ContinueUnblockPinReqL();
+
+        /**
+        * From CActive. Asyncronous PIN query ready. Call ContinueXXX
+        * function depending what we are requesting.
+        */
+        void RunL();
+
+        /**
+        * From CActive. Cancel asynchronous request.
+        */
+        void DoCancel();
+
+        /**
+        * From CActive. Handle leave from RunL()
+        * @param aError leave code from RunL()
+        */
+        TInt RunError( TInt aError );
+
+    private:    // Data
+        // Enumerator for ongoing request
+        enum TAuthObjectRequest
+            {
+            EVerifyPINAskPIN,
+            EVerifyPINCallBackResponse,
+            EChangePINAskPIN,
+            EChangePINCallBackResponse,       
+            EEnablePINAskPIN,
+            EEnablePINCallBackResponse,    
+            EDisablePINAskPIN,
+            EDisablePINCallBackResponse,
+            EUnblockPINAskPIN,
+            EUnblockPINCallBackResponse,
+            EShowPINBlocked,
+            EShowCardIsRemoved,
+            EWIMIError,
+            EIdle
+            };
+
+        // Pointer to utility function class. Owned.
+        CWimUtilityFuncs*       iWimUtilFuncs;
+        // Pointer to security handler class. Owned.
+        CWimSecurityDlgHandler* iWimSecDlg;
+        // Authentication object ongoing request 
+        TAuthObjectRequest      iRequest;
+      
+        // PIN value that user has given
+        TPINValue               iPinValue;
+        // Old PIN value in PIN change
+        TPINValue               iOldPinValue;
+        // New PIN value in Change PIN and Unblock PIN
+        TPINValue               iNewPinValue;
+        // Unblocking PIN
+        TPINValue               iUnblockingPinValue;
+        // Enable/Disable PIN query 
+        TBool                   iEnablePinQuery;
+        
+        TBool                   iRetry;
+        
+        TBool                   iShowDialog;
+        
+        CWimResponse*           iResponseID;
+        
+        TWimReqTrId*            iTrId;
+        
+        TPINParams              iPinParams;
+        
+        TPINParams              iUnblockingPinParams;
+        TBool                   iDisablePINBlocked; 
+        TBool                   iUnblockPING;
+        
+        WIMI_Ref_pt             iPinGRef;
+                 
+    };
+
+#endif      // CWIMAUTHOBJHANDLER_H  
+            
+// End of File