diff -r 000000000000 -r 164170e6151a wim/WimServer/inc/WimCallbackImpl.h --- /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 +#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