--- a/cpsecplugins/cpadvancedsecplugin/src/cpsecmodsyncwrapper.cpp Thu Oct 07 14:07:34 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,401 +0,0 @@
-/*
-* Copyright (c) 2005-2010 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: Implementation of the CSecModUISyncWrapper class
-* Implements a synchronous wrapper for easier use of Symbian's
-* Security Frameworks's API's.
-*
-*/
-
-
-#include "cpsecmodsyncwrapper.h"
-#include <ct/ccttokentypeinfo.h>
-#include <ct/mcttokentype.h>
-#include <ct/ccttokentype.h>
-#include <ct/tcttokenobjecthandle.h>
-#include <mctauthobject.h>
-#include <unifiedkeystore.h>
-#include <mctkeystore.h>
-#include <../../inc/cpsecplugins.h>
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::CSecModUISyncWrapper()
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSecModUISyncWrapper::CSecModUISyncWrapper() : CActive( EPriorityStandard )
- {
- CActiveScheduler::Add(this);
- }
-
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSecModUISyncWrapper* CSecModUISyncWrapper::NewLC()
- {
- CSecModUISyncWrapper* wrap = new (ELeave) CSecModUISyncWrapper();
- CleanupStack::PushL(wrap);
- return wrap;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CSecModUISyncWrapper* CSecModUISyncWrapper::NewL()
- {
- RDEBUG("0", 0);
- CSecModUISyncWrapper* wrap = CSecModUISyncWrapper::NewLC();
- CleanupStack::Pop(wrap);
- return wrap;
- }
-
-// Destructor
-CSecModUISyncWrapper::~CSecModUISyncWrapper()
- {
- Cancel();
- iOperation = EOperationNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::Initialize(CUnifiedKeyStore& aKeyStore)
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-
-TInt CSecModUISyncWrapper::Initialize(CUnifiedKeyStore& aKeyStore)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationInit;
- iObject = STATIC_CAST(TAny*, &aKeyStore);
- aKeyStore.Initialize(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::GetAuthObjectInterface(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::GetAuthObjectInterface(
- MCTToken& aToken, MCTTokenInterface*& aTokenInterface)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationGetAOInterface;
- iObject = STATIC_CAST(TAny*, &aToken);
- const TUid KUidInterfaceAO = { KCTInterfaceAuthenticationObject };
- aToken.GetInterface(KUidInterfaceAO, aTokenInterface, iStatus);
- iOperation = EOperationGetAOInterface;
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::ListAuthObjects(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::ListAuthObjects(
- MCTAuthenticationObjectList& aAuthObjList,
- RMPointerArray<MCTAuthenticationObject>& aAuthObjects)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationListAOs;
- iObject = STATIC_CAST(TAny*, &aAuthObjList);
- aAuthObjList.List( aAuthObjects, iStatus );
- iOperation = EOperationListAOs;
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::ListKeys(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::ListKeys(
- MCTKeyStore& aKeyStore,
- RMPointerArray<CCTKeyInfo>& aKeysInfos,
- const TCTKeyAttributeFilter& aFilter)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationListKeys;
- iObject = STATIC_CAST(TAny*, &aKeyStore);
- aKeyStore.List(aKeysInfos, aFilter, iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::DeleteKey(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::DeleteKey(
- CUnifiedKeyStore& aKeyStore,
- TCTTokenObjectHandle aHandle)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationDelKey;
- iObject = STATIC_CAST(TAny*, &aKeyStore);
- aKeyStore.DeleteKey(aHandle, iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::ChangeReferenceData(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::ChangeReferenceData(
- MCTAuthenticationObject& aAuthObject)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationChangeReferenceData;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.ChangeReferenceData(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::UnblockAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::UnblockAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationUnblockAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Unblock(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::EnableAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::EnableAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationEnableAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Enable(iStatus);
- iOperation = EOperationUnblockAO;
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::DisableAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::DisableAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationDisableAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Disable(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::CloseAuthObject(MCTAuthenticationObject& aAuthObject)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::CloseAuthObject(
- MCTAuthenticationObject& aAuthObject)
- {
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationCloseAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.Close(iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUIModel::TimeRemaining(...)
-// -----------------------------------------------------------------------------
-//
-TInt CSecModUISyncWrapper::TimeRemaining(
- MCTAuthenticationObject& aAuthObject,
- TInt& aStime )
- {
- RDEBUG("0", 0);
- if( !IsActive() && !iWait.IsStarted() )
- {
- iOperation = EOperationTimeRemAO;
- iObject = STATIC_CAST(TAny*, &aAuthObject);
- aAuthObject.TimeRemaining(aStime, iStatus);
- SetActive();
- iWait.Start();
- iOperation = EOperationNone;
- return iStatus.Int();
- }
- return KErrInUse;
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::DoCancel
-// Cancels the ongoing operation if possible.
-// -----------------------------------------------------------------------------
-//
-void CSecModUISyncWrapper::DoCancel()
- {
- RDEBUG("iOperation", iOperation);
- switch ( iOperation )
- {
- case EOperationInit:
- {
- STATIC_CAST(CUnifiedKeyStore*, iObject)->CancelInitialize();
- break;
- }
- case EOperationGetAOInterface:
- {
- STATIC_CAST(MCTToken*, iObject)->CancelGetInterface();
- break;
- }
- case EOperationListAOs:
- {
- STATIC_CAST(MCTAuthenticationObjectList*, iObject)->CancelList();
- break;
- }
- case EOperationListKeys:
- {
- STATIC_CAST(MCTKeyStore*, iObject)->CancelList();
- break;
- }
- case EOperationDelKey:
- {
- STATIC_CAST(CUnifiedKeyStore*, iObject)->CancelDeleteKey();
- break;
- }
- case EOperationChangeReferenceData:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->
- CancelChangeReferenceData();
- break;
- }
- case EOperationUnblockAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelUnblock();
- break;
- }
- case EOperationEnableAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelEnable();
- break;
- }
- case EOperationDisableAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelDisable();
- break;
- }
- case EOperationCloseAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelClose();
- break;
- }
- case EOperationTimeRemAO:
- {
- STATIC_CAST(MCTAuthenticationObject*, iObject)->CancelTimeRemaining();
- break;
- }
- default:
- {
- break;
- }
- }
- if (iWait.IsStarted())
- {
- iWait.AsyncStop();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CSecModUISyncWrapper::RunL
-// If no errors happened, stop. Show an error note if needed.
-// -----------------------------------------------------------------------------
-//
-void CSecModUISyncWrapper::RunL()
- {
- iWait.AsyncStop();
- }
-