wim/WimServer/inc/WimCallbackImpl.h
changeset 0 164170e6151a
child 11 510c10de8083
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wim/WimServer/inc/WimCallbackImpl.h	Tue Jan 26 15:20:08 2010 +0200
@@ -0,0 +1,319 @@
+/*
+* 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:  A class with static operations that provides implementation
+*               for the WIM callback functions. Used by the WIM server.
+*
+*/
+
+
+#ifndef CWIMCALLBACK_H
+#define CWIMCALLBACK_H
+
+//  INCLUDES
+#include <e32base.h>
+#include "Wimi.h"       //WIMI definitions
+
+// FORWARD DECLARATIONS
+class CWimResponse;
+
+// CLASS DECLARATION
+
+/**
+*  WIM Callback implementation.
+*  Static callback funtions.
+*
+*  @since Series60 2.1
+*/
+class CWimCallBack : public CBase
+    {
+    public:
+
+        /**
+        * Respond to InitOK operation
+        * @param aStatus - WIMI status
+        * @return void
+        */
+        static void InitOkResp( WIMI_STAT aStatus );
+  
+        /**
+        * Response to CloseDown request
+        * @param aStatus - WIMI status
+        * @return void
+        */
+        static void CloseDownResp( WIMI_STAT aStatus );
+
+        /**
+        * Complete response
+        * @param aTrId - transaction id
+        * @param aStatus - WIMI status
+        * @return void
+        */
+        static void CompleteResponse( WIMI_TransactId_t aTrId,
+                                      WIMI_STAT aStatus );
+
+        /* ------------ Digital signature ----------------------------------- */
+        /**
+        * Respond to the digital signature operation. Completes client
+        * request
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aStatus - operation status 
+        * @param aSignLen - signature length
+        * @param aSign - signature 
+        * @return void
+        */
+        static void SignResp( WIMI_TransactId_t aTrId,
+                              WIMI_STAT aStatus,
+                              TUint8 aSignLen,
+                              TUint8* aSign );
+
+        /**
+        * Write signed text to client's memory area. Called by SignResp().
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aSignLen - signature length
+        * @param aSign - signature 
+        * @return void
+        */
+        static void SignRespL( CWimResponse* aTrId,
+                               TUint8 aSignLen,
+                               TUint8* aSign );
+
+        /**
+        * Set request status of SignTextHandler. Used when continuing signing
+        * operation if wrong PIN entered.
+        * @since Series60 2.6
+        * @param aStatus - RequestStatus of SignTextHandler
+        * @return void
+        */
+        static void SetSignTextRequestStatus( TRequestStatus* aStatus );
+
+        /* ------------ Certificate management ------------------------------ */
+        /** 
+        * Respond to the certificate fetch operation
+        * @param aTrId - transaction id
+        * @param aStatus - operation status 
+        * @param aCertRef - the reference to certificate that was fetched
+        * @param aCertLen - certificate content length
+        * @param aCert - certificate content 
+        * @return void
+        */
+        static void CertificateResp( WIMI_TransactId_t aTrId,
+                                     WIMI_STAT aStatus,
+                                     WIMI_Ref_t* aCertRef,
+                                     TUint16 aCertLen,
+                                     TUint8* aCert );
+
+        /**
+        * Respond to the certificate delete operation
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aStatus - operation status
+        * @return void
+        */
+        static void CertificateDeleteResp( WIMI_TransactId_t aTrId,
+                                           WIMI_STAT aStatus );
+
+        /**
+        * Respond to the certificate store operation
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aStatus - operation status
+        * @param aCertRef - the reference to certificate that was stored
+        * @return void
+        */
+        static void CertificateStoreResp( WIMI_TransactId_t aTrId,
+                                          WIMI_STAT aStatus,
+                                          WIMI_Ref_t* aCertRef );
+
+
+        /* ------------ PIN management -------------------------------------- */
+        /**
+        * Response to VerifyPIN request
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aStatus - operation status
+        * @return void
+        */
+        static void VerifyPINResp( WIMI_TransactId_t aTrId, WIMI_STAT aStatus );
+
+        /**
+        * Response to ChangePIN request
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aStatus - operation status
+        * @return void
+        */
+        static void ChangePINResp( WIMI_TransactId_t aTrId, WIMI_STAT aStatus );
+
+        /**
+        * Response to UnblockPIN request
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aStatus - operation status
+        * @return void
+        */
+        static void UnblockPINResp( WIMI_TransactId_t aTrId,
+                                    WIMI_STAT aStatus );
+
+        /**
+        * Response to EnablePIN request
+        * @since Series60 2.6
+        * @param aTrId - transaction id
+        * @param aStatus - operation status
+        * @return void
+        */
+        static void EnablePINResp( WIMI_TransactId_t aTrId, WIMI_STAT aStatus );
+
+        /* ------------ Hardware driver support ----------------------------- */
+        /**
+        * Respond to CardInserted operation
+        * @param aReader - Reader ID
+        * @param aStatus - Status of operation
+        * @param aWIMRef - Reference to WIMI
+        * @return void
+        */
+        static void CardInsertedResp( TUint8 aReader,
+                                      WIMI_STAT aStatus,
+                                      WIMI_Ref_t* aWIMRef );
+
+        /**
+        * Open connection to card
+        * @param aReader - Reader
+        * @return KWimStatusOK/KWimStatusIOError
+        */
+        static TUint8 Open( TUint8 aReader );
+
+        /**
+        * Close connection to the card
+        * @param aReader - Reader
+        * @return KWimStatusOK
+        */
+        static TUint8 Close( TUint8 aReader );
+
+        /**
+        * APDU Request
+        * @param aReader - Reader
+        * @param aApdu - APDU
+        * @param aApduLen - ADDU length
+        * @return void
+        */
+        static void APDUReq( TUint8 aReader, TUint8* aApdu, TUint16 aApduLen );
+
+        /**
+        * Get ATR bytes request
+        * @param aReader - Reader
+        * @return void
+        */
+        static void GetATRReq( TUint8 aReader );
+
+        /**
+        * Get reader list reguest
+        * @return void
+        */
+        static void GetReaderListReq();
+
+        /**
+        * Read content of SIM file.
+        * @param aReaderId -  Reader ID
+        * @param aPath - Path to the file to read
+        * @param aOffset - Offset from the beginning of the file
+        * @param aSize - Amount of data to read, aSize=0 means that whole
+        *                    file must be read
+        * @return void
+        */
+        static void ReadSimFileReq( TUint8 aReaderId,
+                                    TUint8* aPath,
+                                    TUint16 aOffset,          
+                                    TUint16 aSize );
+
+        /**
+        * Response for OMA Smart Card Provisioning file request.
+        * @param aTrId - Transaction ID, contains message information
+        * @param aStatus - Operation status 
+        * @param aFileLen - Provisioning file length
+        * @param aFile - Provisioning file content
+        * @return void
+        */
+        static void OmaProvisioningResp( WIMI_TransactId_t aTrId,
+                                         WIMI_STAT aStatus,
+                                         TUint16 aFileLen,
+                                         TUint8 *aFile );
+                                         
+        /**
+        * Cancel pin operation
+        * Stop the APDU sending
+        */                                 
+        static void CancelPinOperation();
+        
+        /**
+        * Cancel Wim Initialize 
+        * Stop the APDU sending
+        */
+        static void CancelWimInitialize();
+        
+        /**
+        * This function is called by CWimServer destructor,
+        * to delete the gApdu object.
+        */
+        static void CWimCallBack::DeletegApdu();
+                             
+    private:
+
+        /** 
+        * Respond to the certificate fetch operation
+        * @param aTrId - transaction id
+        * @param aStatus - operation status 
+        * @param aWimiRef - the reference to WIMI
+        * @param aCertLen - certificate content length
+        * @param aCert - certificate content 
+        * @return void
+        */
+        static void CertificateRespL( CWimResponse* aTrId,
+                                      WIMI_STAT aStatus,
+                                      WIMI_Ref_t* aWimiRef,
+                                      TUint16 aCertLen,
+                                      TUint8* aCert );
+
+        /**
+        * Read content of SIM file. Leaving function, 
+        * leave is trapped in ReadSimFileReg
+        * @param aReaderId - Reader ID
+        * @param aPath - Path to the file to read
+        * @param aOffset - Offset from the beginning of the file
+        * @param aSize - Amount of data to read, aSize=0 means that whole
+        *                file must be read
+        * @return void
+        */
+        static void DoReadSimFileReqL( TUint8 aReaderId,
+                                       TUint8* aPath,
+                                       TUint16 aOffset,          
+                                       TUint16 aSize );
+
+        /**
+        * Copy OMA Provisioning file to client memory
+        * @param aTrId - Transaction ID, contains message information
+        * @param aFileLen - Provisioning file length
+        * @param aFile - Provisioning file content
+        * @return void
+        */
+        static void OmaProvisioningRespL( CWimResponse* aTrId,
+                                          TUint16 aFileLen,
+                                          TUint8* aFile );
+
+    };
+
+#endif      // CWIMCALLBACK_H
+
+// End of File