diff -r 000000000000 -r bde4ae8d615e os/security/cryptoservices/certificateandkeymgmt/tcertstore/t_WritableCSDummies.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/security/cryptoservices/certificateandkeymgmt/tcertstore/t_WritableCSDummies.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,214 @@ +/* +* 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 +#include +#include + + +// 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& /*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& /*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* aApplications, TRequestStatus &aStatus) = 0; + +2) IMPORT_C void SetApplicability(const CCTCertInfo& aCertInfo, + const RArray& aApplications, TRequestStatus &aStatus); + + + SETAPPLICABILITY - MCTWritableCertStore v.2 + +1) virtual void SetApplicability(const CCTCertInfo& aCertInfo, + const RArray& aApplications, TRequestStatus &aStatus) = 0; + + + Notice what's done migrating v.1 -> v.2: + 1) first method (RArray*) is removed, and + 2) the 2nd method (const RArray&) is made purevirtual +*/ + + virtual void SetApplicability(const CCTCertInfo& /*aCertInfo*/, + RArray* /*aApplications*/, + TRequestStatus& /*aStatus*/) {}; + + virtual void SetApplicability(const CCTCertInfo& /*aCertInfo*/, + const RArray& /*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__