--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wim/WimServer/inc/WimSignTextHandler.h Tue Jan 26 15:20:08 2010 +0200
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2003 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 Sign Text Handler
+*
+*/
+
+
+
+#ifndef CWIMSIGNTEXTHANDLER_H
+#define CWIMSIGNTEXTHANDLER_H
+
+// INCLUDES
+#include <secdlg.h>
+#include "WimResponse.h"
+#include "WimUtilityFuncs.h"
+
+// FORWARD DECLARATIONS
+class CWimUtilityFuncs;
+class CWimSecurityDlgHandler;
+
+// CLASS DECLARATION
+
+/**
+* WIM Sign Text Handler.
+* Handles Sign Text operations.
+*
+* @since Series60 2.6
+*/
+class CWimSignTextHandler : public CActive
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CWimSignTextHandler* NewL();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CWimSignTextHandler();
+
+ public: // New functions
+
+ /**
+ * Start the SignText operation.
+ * @param aMessage Encapsulates a client request.
+ * @return void
+ */
+ void SignTextL( const RMessage2& aMessage );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CWimSignTextHandler();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * Continues signing operation after signing PIN has asked from user.
+ * Calls WIMI_SignReq() method which take care of actual sign operation.
+ * Response (signed text) to call is handled in CWimCallBack::SignResp().
+ * @return void
+ */
+ void ContinueSigningL();
+
+ /**
+ * Ask PIN from user. Shows PIN query dialog.
+ * @return void
+ */
+ void AskPin();
+
+ /**
+ * Get parameters for PIN. iKeyReferense has to be set before
+ * this function is used.
+ * @param aPinParams PIN parameters that has to be set
+ * @return void
+ */
+ void GetPinParamsL( TPINParams& aPinParams ) const;
+
+ /**
+ * Clean member data
+ * @return void
+ */
+ void CleanUp();
+
+ /**
+ * From CActive. RunL: Handles signing operation as state machine.
+ */
+ void RunL();
+
+ /**
+ * From CActive. DoCancel: Asyncronous request cancelled
+ */
+ void DoCancel();
+
+ /**
+ * From CActive. The active scheduler calls this function if this active
+ * object's RunL() function leaves.
+ * Handles necessary cleanup and completes request with
+ * received error code.
+ * @param aError Leave code
+ * @return Error code to Active Scheduler, is always zero.
+ */
+ TInt RunError( TInt aError );
+
+ private: // Data
+
+ // Enumerator for ongoing sign text state
+ enum TSignTextState
+ {
+ EAskPin,
+ ECallbackResponse,
+ EShowPinBlocked,
+ EShowCardIsRemoved,
+ EWimiError,
+ ESigningDone
+ };
+
+ // Pointer to utility function class. Owned.
+ CWimUtilityFuncs* iWimUtilFuncs;
+ // Pointer to security handler class. Owned.
+ CWimSecurityDlgHandler* iWimSecDlg;
+ // PIN for signing
+ TPINValue iSigningPin;
+ // Pointer to WimResponse for completing the client request.
+ // Deleted here or in callback function.
+ CWimResponse* iResponseID;
+ // Transaction ID. This is deleted in CWimCallBack::SignResp()
+ // or here in case of WIMI error.
+ TWimReqTrId* iTrId;
+ // Key reference. Owned.
+ TAny* iKeyReference;
+ // State of signing operation
+ TSignTextState iSigningState;
+ // Buffer for data to be signed. Owned.
+ HBufC8* iSigningDataBuf;
+ // Pointer to data to be signer. Owned.
+ TPtr8* iSigningDataPtr;
+ // Flag to tell if PIN query is retry or not
+ TBool iRetry;
+ // PIN parameters
+ TPINParams iPinParams;
+
+ };
+
+#endif // CWIMSIGNTEXTHANDLER_H
+
+// End of File