sl@0: /* sl@0: * Copyright (c) 2004-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: /** sl@0: @file sl@0: @internalTechnology sl@0: */ sl@0: sl@0: #ifndef __WRITABLECSDUMMIES_H__ sl@0: #define __WRITABLECSDUMMIES_H__ sl@0: sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: sl@0: // this is a helper dummy class just not to sl@0: // implement all the interfaces all the time sl@0: // later we derive two child classes sl@0: // TNewCSClasswDeletable and TOldCSClasswoDeletable sl@0: class TWritableCertStoreDummy : public MCTWritableCertStore sl@0: { sl@0: public: sl@0: TWritableCertStoreDummy() : iCertStore(NULL) {}; sl@0: sl@0: // from MCTTokenInterface sl@0: virtual MCTToken& Token() { return iCertStore->Token(); }; sl@0: sl@0: // from MCTCertStore sl@0: virtual void List( RMPointerArray& /*aCerts*/, sl@0: const CCertAttributeFilter& /*aFilter*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelList() {}; sl@0: virtual void GetCert(CCTCertInfo*& /*aCertInfo*/, sl@0: const TCTTokenObjectHandle& /*aHandle*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelGetCert() {}; sl@0: virtual void Applications(const CCTCertInfo& /*aCertInfo*/, sl@0: RArray& /*aApplications*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelApplications() {}; sl@0: virtual void IsApplicable(const CCTCertInfo& /*aCertInfo*/, sl@0: TUid /*aApplication*/, sl@0: TBool& /*aIsApplicable*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelIsApplicable() {}; sl@0: virtual void Trusted(const CCTCertInfo& /*aCertInfo*/, sl@0: TBool& /*aTrusted*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelTrusted() {}; sl@0: virtual void Retrieve(const CCTCertInfo& /*aCertInfo*/, sl@0: TDes8& /*aEncodedCert*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelRetrieve() {}; sl@0: sl@0: // from MCTWritableCertStore sl@0: // old Add() w/o aDeletable sl@0: virtual void Add( const TDesC& /*aLabel*/, sl@0: TCertificateFormat /*aFormat*/, sl@0: TCertificateOwnerType /*aCertificateOwnerType*/, sl@0: const TKeyIdentifier* /*aSubjectKeyId*/, sl@0: const TKeyIdentifier* /*aIssuerKeyId*/, sl@0: const TDesC8& /*aCert*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: sl@0: // here goes new Add(.., const TBool aDeletable, ..) with a deletable param sl@0: // this one DOES HAVE a default implementation in MCTWritableCertStore sl@0: // but not every dummy CS class has its own implementation of this sl@0: virtual void Add(const TDesC& aLabel, sl@0: TCertificateFormat aFormat, sl@0: TCertificateOwnerType aCertificateOwnerType, sl@0: const TKeyIdentifier* aSubjectKeyId, sl@0: const TKeyIdentifier* aIssuerKeyId, sl@0: const TDesC8& aCert, sl@0: const TBool aDeletable, sl@0: TRequestStatus& aStatus ) sl@0: { sl@0: MCTWritableCertStore::Add( aLabel, aFormat, aCertificateOwnerType, sl@0: aSubjectKeyId, aIssuerKeyId, aCert, aDeletable, aStatus ); sl@0: } sl@0: sl@0: sl@0: virtual void CancelAdd() {}; sl@0: sl@0: virtual void Remove(const CCTCertInfo& /*aCertInfo*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelRemove() {}; sl@0: sl@0: sl@0: /* sl@0: SETAPPLICABILITY() - MCTWritableCertStore v.1 sl@0: sl@0: 1) virtual void SetApplicability(const CCTCertInfo& aCertInfo, sl@0: RArray* aApplications, TRequestStatus &aStatus) = 0; sl@0: sl@0: 2) IMPORT_C void SetApplicability(const CCTCertInfo& aCertInfo, sl@0: const RArray& aApplications, TRequestStatus &aStatus); sl@0: sl@0: sl@0: SETAPPLICABILITY - MCTWritableCertStore v.2 sl@0: sl@0: 1) virtual void SetApplicability(const CCTCertInfo& aCertInfo, sl@0: const RArray& aApplications, TRequestStatus &aStatus) = 0; sl@0: sl@0: sl@0: Notice what's done migrating v.1 -> v.2: sl@0: 1) first method (RArray*) is removed, and sl@0: 2) the 2nd method (const RArray&) is made purevirtual sl@0: */ sl@0: sl@0: virtual void SetApplicability(const CCTCertInfo& /*aCertInfo*/, sl@0: RArray* /*aApplications*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: sl@0: virtual void SetApplicability(const CCTCertInfo& /*aCertInfo*/, sl@0: const RArray& /*aApplications*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: sl@0: sl@0: virtual void CancelSetApplicability() {}; sl@0: virtual void SetTrust(const CCTCertInfo& /*aCertInfo*/, sl@0: TBool /*aTrusted*/, sl@0: TRequestStatus& /*aStatus*/) {}; sl@0: virtual void CancelSetTrust() {}; sl@0: sl@0: sl@0: private: sl@0: MCTCertStore *iCertStore; sl@0: sl@0: }; // class TWritableCertStoreDummy sl@0: sl@0: sl@0: sl@0: // . . . . . . . . . . . . . . . . . . . . . . . . . . . . TOldCSClasswoDeletable sl@0: sl@0: class TOldCSClasswoDeletable : public TWritableCertStoreDummy sl@0: { sl@0: sl@0: public: sl@0: TOldCSClasswoDeletable() {}; sl@0: sl@0: // doesn't know about new Add(.., const TBool aDeletable, ..) being available sl@0: // thus, uses grandparent's default implementation (returns KErrNotSupported) sl@0: sl@0: }; // class TOldCSClasswoDeletable sl@0: sl@0: sl@0: sl@0: // . . . . . . . . . . . . . . . . . . . . . . . . . . . . TNewCSClasswDeletable sl@0: sl@0: class TNewCSClasswDeletable : public TWritableCertStoreDummy sl@0: { sl@0: sl@0: public: sl@0: TNewCSClasswDeletable() {}; sl@0: sl@0: // old Add(..) w/o aDeletable sl@0: virtual void Add(const TDesC& aLabel, sl@0: TCertificateFormat aFormat, sl@0: TCertificateOwnerType aCertificateOwnerType, sl@0: const TKeyIdentifier* aSubjectKeyId, sl@0: const TKeyIdentifier* aIssuerKeyId, sl@0: const TDesC8& aCert, sl@0: TRequestStatus& aStatus ) sl@0: { sl@0: TWritableCertStoreDummy::Add( aLabel, aFormat, aCertificateOwnerType, sl@0: aSubjectKeyId, aIssuerKeyId, aCert, aStatus ); sl@0: } sl@0: sl@0: // new Add(.., TBool aDeletable, ..) method sl@0: virtual void Add( const TDesC& aLabel, sl@0: TCertificateFormat aFormat, sl@0: TCertificateOwnerType aCertificateOwnerType, sl@0: const TKeyIdentifier* aSubjectKeyId, sl@0: const TKeyIdentifier* aIssuerKeyId, sl@0: const TDesC8& aCert, sl@0: const TBool aDeletable, sl@0: TRequestStatus& aStatus); sl@0: sl@0: }; // class TNewCSClasswDeletable sl@0: sl@0: sl@0: // new Add(.., TBool aDeletable, ..) implementation sl@0: void TNewCSClasswDeletable::Add( const TDesC& /*aLabel*/, sl@0: TCertificateFormat /*aFormat*/, sl@0: TCertificateOwnerType /*aCertificateOwnerType*/, sl@0: const TKeyIdentifier* /*aSubjectKeyId*/, sl@0: const TKeyIdentifier* /*aIssuerKeyId*/, sl@0: const TDesC8& /*aCert*/, sl@0: const TBool /*aDeletable*/, sl@0: TRequestStatus& aStatus sl@0: ) sl@0: { sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete( status, KErrNone ); sl@0: } sl@0: sl@0: #endif // __WRITABLECSDUMMIES_H__