sl@0: /*
sl@0: * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: * All rights reserved.
sl@0: * This component and the accompanying materials are made available
sl@0: * under the terms of the License "Eclipse Public License v1.0"
sl@0: * which accompanies this distribution, and is available
sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: *
sl@0: * Initial Contributors:
sl@0: * Nokia Corporation - initial contribution.
sl@0: *
sl@0: * Contributors:
sl@0: *
sl@0: * Description: 
sl@0: *
sl@0: */
sl@0: 
sl@0: 
sl@0: #include "cdummykeystoreclient.h"
sl@0: 
sl@0: MCTTokenInterface* CDummyKeyStoreClient::NewKeyStoreInterfaceL(MCTToken& aToken)
sl@0: 	{
sl@0: 	//	Destroyed by MCTTokenInterface::DoRelease() 
sl@0: 	CDummyKeyStoreClient* me = new (ELeave) CDummyKeyStoreClient(aToken);
sl@0: 	CleanupStack::PushL(me);
sl@0: 	me->ConstructL();
sl@0: 	CleanupStack::Pop(me);
sl@0: 	return (me);
sl@0: 	}
sl@0: 
sl@0: CDummyKeyStoreClient::CDummyKeyStoreClient(MCTToken& aToken)
sl@0: 	: // Reference count starts at one as we're always created and returned by a GetInterface() call on the token
sl@0: 	  iRefCount(1),
sl@0: 	  iToken(aToken)
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::ConstructL()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: CDummyKeyStoreClient::~CDummyKeyStoreClient()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: MCTToken& CDummyKeyStoreClient::Token()
sl@0: 	{
sl@0: 	return iToken;
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::AddRef()
sl@0: 	{
sl@0: 	++iRefCount;
sl@0: 	
sl@0: 	iToken.AddRef();
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::DoRelease()
sl@0: 	{
sl@0: 	--iRefCount;
sl@0: 
sl@0: 	ASSERT(iRefCount >= 0);
sl@0: 	if (iRefCount == 0)
sl@0: 		{
sl@0: 		MCTTokenInterface::DoRelease();
sl@0: 		}
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::ReleaseObject(const TCTTokenObjectHandle& /*aHandle*/)
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: //	*********************************************************************************
sl@0: //	MKeyStore
sl@0: //	*********************************************************************************
sl@0: void CDummyKeyStoreClient::List(RMPointerArray<CCTKeyInfo>& /*aKeys*/, const TCTKeyAttributeFilter& /*aFilter*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelList()
sl@0: 	{
sl@0: 	// synchronous, nothing to do
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::GetKeyInfo(TCTTokenObjectHandle /*aHandle*/, CCTKeyInfo*& /*aInfo*/, 
sl@0: 								   TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelGetKeyInfo()
sl@0: 	{
sl@0: 	// synchronous, nothing to do
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::Open(const TCTTokenObjectHandle& /*aHandle*/, 
sl@0: 							 MRSASigner*& /*aSigner*/, 
sl@0: 							 TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::Open(const TCTTokenObjectHandle& /*aHandle*/, 
sl@0: 							 MCTSigner<CDSASignature*>*& /*aSigner*/, 
sl@0: 							 TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::Open(const TCTTokenObjectHandle& /*aHandle*/, 
sl@0: 							 MCTDecryptor*& /*aDecryptor*/,
sl@0: 							 TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::Open(const TCTTokenObjectHandle& /*aHandle*/, 
sl@0: 							 MCTDH*& /*aDH*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelOpen()
sl@0: 	{
sl@0: 	// synchronous, nothing to do
sl@0: 	}
sl@0: 
sl@0: /** Returns the public key in DER-encoded ASN-1 */
sl@0: void CDummyKeyStoreClient::ExportPublic(const TCTTokenObjectHandle& /*aHandle*/,
sl@0: 									 HBufC8*& /*aPublicKey*/,
sl@0: 									 TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelExportPublic()
sl@0: 	{
sl@0: 	// synchronous, nothing to do
sl@0: 	}
sl@0: 
sl@0: //	*********************************************************************************
sl@0: //	MCTKeyStoreManager
sl@0: //	*********************************************************************************
sl@0: void CDummyKeyStoreClient::CreateKey(CCTKeyInfo*& /*aReturnedKey*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelCreateKey()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::ImportKey(const TDesC8& /*aKey*/, CCTKeyInfo*& /*aReturnedKey*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	//DoImportKey(EImportKey, aKey, aReturnedKey, aStatus);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelImportKey()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::ImportEncryptedKey(const TDesC8& /*aKey*/, CCTKeyInfo*& /*aReturnedKey*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	//DoImportKey(EImportEncryptedKey, aKey, aReturnedKey, aStatus);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelImportEncryptedKey()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::ExportKey(TCTTokenObjectHandle /*aHandle*/, HBufC8*& /*aKey*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelExportKey()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::ExportEncryptedKey(TCTTokenObjectHandle /*aHandle*/, const CPBEncryptParms& /*aParams*/,  HBufC8*& /*aKey*/, TRequestStatus& aStatus)
sl@0:  	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0:  	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelExportEncryptedKey()
sl@0: 	{
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::RepudiableDSASign(const TCTTokenObjectHandle& /*aHandle*/,
sl@0: 										  const TDesC8& /*aDigest*/,
sl@0: 										  CDSASignature*& /*aSignature*/,
sl@0: 										  TRequestStatus& aStatus)
sl@0: 	{	
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::RepudiableRSASign(const TCTTokenObjectHandle& /*aHandle*/,
sl@0: 										  const TDesC8& /*aDigest*/,
sl@0: 										  CRSASignature*& /*aSignature*/,
sl@0: 										  TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::Decrypt(const TCTTokenObjectHandle& /*aHandle*/,
sl@0: 								const TDesC8& /*aCiphertext*/,
sl@0: 								TDes8& /*aDecryptedText*/,
sl@0: 								TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::DHPublicKey(const TCTTokenObjectHandle& /*aHandle*/, const TInteger& /*aN*/, const TInteger& /*aG*/,
sl@0: 									CDHPublicKey*& /*aX*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::DHAgree(const TCTTokenObjectHandle& /*aHandle*/, const CDHPublicKey& /*iY*/,
sl@0: 								HBufC8*& /*aAgreedKey*/, TRequestStatus& aStatus)
sl@0: 	{	
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::DeleteKey(TCTTokenObjectHandle /*aHandle*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelDeleteKey()
sl@0: 	{
sl@0: 	// synchronous, nothing to do
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::SetUsePolicy(TCTTokenObjectHandle /*aHandle*/, 
sl@0: 									 const TSecurityPolicy& /*aPolicy*/,
sl@0: 									 TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelSetUsePolicy()
sl@0: 	{
sl@0: 	// synchronous, nothing to do
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::SetManagementPolicy(TCTTokenObjectHandle /*aHandle*/, 
sl@0: 											const TSecurityPolicy& /*aPolicy*/,
sl@0: 											TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelSetManagementPolicy()
sl@0: 	{
sl@0: 	// synchronous, nothing to do
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::SetPassphraseTimeout(TInt /*aTimeout*/, TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelSetPassphraseTimeout()
sl@0: 	{
sl@0: 	// No point cancelling, not asynchronous
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::Relock(TRequestStatus& aStatus)
sl@0: 	{
sl@0: 	TRequestStatus* status = &aStatus;
sl@0: 	User::RequestComplete(status, KErrNone);
sl@0: 	}
sl@0: 
sl@0: void CDummyKeyStoreClient::CancelRelock()
sl@0: 	{
sl@0: 	// No point cancelling, not asynchronous
sl@0: 	}
sl@0: 
sl@0: 
sl@0: 
sl@0: 
sl@0: