cryptoservices/certificateandkeymgmt/tcertstore/t_WritableCSDummies.h
changeset 0 2c201484c85f
child 8 35751d3474b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cryptoservices/certificateandkeymgmt/tcertstore/t_WritableCSDummies.h	Wed Jul 08 11:25:26 2009 +0100
@@ -0,0 +1,216 @@
+/*
+* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+
+
+/**
+ @file 
+ @internalTechnology
+*/
+ 
+#ifndef __WRITABLECSDUMMIES_H__
+#define __WRITABLECSDUMMIES_H__
+
+
+#include <e32std.h>
+#include <ct.h>
+#include <mctwritablecertstore.h>
+
+
+// this is a helper dummy class just not to 
+// implement all the interfaces all the time
+// later we derive two child classes
+// TNewCSClasswDeletable and TOldCSClasswoDeletable
+class TWritableCertStoreDummy : public MCTWritableCertStore
+	{
+public:	
+	TWritableCertStoreDummy() : iCertStore(NULL) {};
+
+// from MCTTokenInterface
+	virtual MCTToken& Token() { return iCertStore->Token(); };
+
+// from MCTCertStore
+	virtual void List(  RMPointerArray<CCTCertInfo>& /*aCerts*/,
+						const CCertAttributeFilter& /*aFilter*/,
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelList() {};
+	virtual void GetCert(CCTCertInfo*& /*aCertInfo*/, 
+						const TCTTokenObjectHandle& /*aHandle*/, 
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelGetCert() {};
+	virtual void Applications(const CCTCertInfo& /*aCertInfo*/, 
+						RArray<TUid>& /*aApplications*/,
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelApplications() {};
+	virtual void IsApplicable(const CCTCertInfo& /*aCertInfo*/, 
+						TUid /*aApplication*/, 
+						TBool& /*aIsApplicable*/,
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelIsApplicable() {};
+	virtual void Trusted(const CCTCertInfo& /*aCertInfo*/,
+						TBool& /*aTrusted*/, 
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelTrusted() {};
+	virtual void Retrieve(const CCTCertInfo& /*aCertInfo*/, 
+						TDes8& /*aEncodedCert*/, 
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelRetrieve() {};
+
+// from MCTWritableCertStore
+	// old Add() w/o aDeletable
+	virtual void Add( const TDesC& /*aLabel*/,
+						TCertificateFormat /*aFormat*/,
+						TCertificateOwnerType /*aCertificateOwnerType*/, 
+						const TKeyIdentifier* /*aSubjectKeyId*/,
+						const TKeyIdentifier* /*aIssuerKeyId*/,
+						const TDesC8& /*aCert*/, 
+						TRequestStatus& /*aStatus*/) {};
+
+//	here goes new Add(.., const TBool aDeletable, ..) with a deletable param
+// 	this one DOES HAVE a default implementation in MCTWritableCertStore
+// 	but not every dummy CS class has its own implementation of this
+	virtual void Add(const TDesC& aLabel,
+					 TCertificateFormat aFormat,
+					 TCertificateOwnerType aCertificateOwnerType, 
+					 const TKeyIdentifier* aSubjectKeyId,
+					 const TKeyIdentifier* aIssuerKeyId,
+					 const TDesC8& aCert, 
+					 const TBool aDeletable,
+					 TRequestStatus& aStatus ) 
+		{ 
+		MCTWritableCertStore::Add( aLabel, aFormat, aCertificateOwnerType, 
+						aSubjectKeyId, aIssuerKeyId, aCert, aDeletable, aStatus );
+		}
+
+
+	virtual void CancelAdd() {};
+
+	virtual void Remove(const CCTCertInfo& /*aCertInfo*/, 
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelRemove() {};
+
+
+/*  
+	SETAPPLICABILITY()  - MCTWritableCertStore v.1
+
+1)	virtual void SetApplicability(const CCTCertInfo& aCertInfo, 
+							   RArray<TUid>* aApplications, TRequestStatus &aStatus) = 0;
+
+2)	IMPORT_C void SetApplicability(const CCTCertInfo& aCertInfo, 
+						  const RArray<TUid>& aApplications, TRequestStatus &aStatus);
+
+
+	SETAPPLICABILITY  - MCTWritableCertStore v.2
+
+1)	virtual void SetApplicability(const CCTCertInfo& aCertInfo, 
+						 const RArray<TUid>& aApplications, TRequestStatus &aStatus) = 0;
+
+
+	Notice what's done migrating v.1 -> v.2:
+	1) first method (RArray<TUid>*) is removed, and
+	2) the 2nd method (const RArray<TUid>&) is made purevirtual
+*/
+
+	virtual void SetApplicability(const CCTCertInfo& /*aCertInfo*/, 
+								  RArray<TUid>* /*aApplications*/, 
+								  TRequestStatus& /*aStatus*/) {};
+
+	virtual void SetApplicability(const CCTCertInfo& /*aCertInfo*/, 
+						 		  const RArray<TUid>& /*aApplications*/, 
+						 		  TRequestStatus& /*aStatus*/) {};
+		
+		
+	virtual void CancelSetApplicability() {};
+	virtual void SetTrust(const CCTCertInfo& /*aCertInfo*/,
+						TBool /*aTrusted*/, 
+						TRequestStatus& /*aStatus*/) {};
+	virtual void CancelSetTrust() {};
+
+
+private:
+	MCTCertStore *iCertStore;
+
+	};		// class TWritableCertStoreDummy
+	
+
+
+// . . . . . . . . . . . . . . . . . . . . . . . . . . . . TOldCSClasswoDeletable
+
+class TOldCSClasswoDeletable : public TWritableCertStoreDummy
+	{
+
+public:
+	TOldCSClasswoDeletable()	{};
+
+//	doesn't know about new Add(.., const TBool aDeletable, ..) being available
+// 	thus, uses grandparent's default implementation (returns KErrNotSupported)
+
+	};		// class TOldCSClasswoDeletable
+
+
+
+// . . . . . . . . . . . . . . . . . . . . . . . . . . . . TNewCSClasswDeletable
+
+class TNewCSClasswDeletable : public TWritableCertStoreDummy
+	{
+
+public:
+	TNewCSClasswDeletable()	{};
+	
+	// old Add(..) w/o aDeletable
+	virtual void Add(const TDesC& aLabel,
+					 TCertificateFormat aFormat,
+					 TCertificateOwnerType aCertificateOwnerType, 
+					 const TKeyIdentifier* aSubjectKeyId,
+					 const TKeyIdentifier* aIssuerKeyId,
+					 const TDesC8& aCert, 
+					 TRequestStatus& aStatus ) 
+		{ 
+		TWritableCertStoreDummy::Add( aLabel, aFormat, aCertificateOwnerType, 
+						aSubjectKeyId, aIssuerKeyId, aCert, aStatus );
+		}
+
+	// new Add(.., TBool aDeletable, ..) method
+	virtual void Add( const TDesC& aLabel, 
+						TCertificateFormat aFormat,
+						TCertificateOwnerType aCertificateOwnerType, 
+						const TKeyIdentifier* aSubjectKeyId,
+						const TKeyIdentifier* aIssuerKeyId,
+						const TDesC8& aCert, 
+						const TBool aDeletable,
+						TRequestStatus& aStatus);
+
+	};		// class TNewCSClasswDeletable
+
+
+// new Add(.., TBool aDeletable, ..) implementation
+void TNewCSClasswDeletable::Add( const TDesC& /*aLabel*/, 
+							 TCertificateFormat /*aFormat*/,
+                             TCertificateOwnerType /*aCertificateOwnerType*/, 
+                             const TKeyIdentifier* /*aSubjectKeyId*/,
+                             const TKeyIdentifier* /*aIssuerKeyId*/,
+                             const TDesC8& /*aCert*/, 
+                             const TBool /*aDeletable*/,
+                             TRequestStatus& aStatus
+                             )
+    {
+	TRequestStatus* status = &aStatus;	
+	User::RequestComplete( status, KErrNone );
+    }
+
+#endif	//	__WRITABLECSDUMMIES_H__