diff -r 000000000000 -r 164170e6151a pkiutilities/DeviceToken/Inc/DevandTruSrvCertStoreServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkiutilities/DeviceToken/Inc/DevandTruSrvCertStoreServer.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,151 @@ +/* +* Copyright (c) 2006 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: The header file of DevandTruSrvCertStoreServer +* +*/ + + + +#ifndef __DEVANDTRUSRVCERTSTORESERVER_H__ +#define __DEVANDTRUSRVCERTSTORESERVER_H__ + +#include +#include +#include + +class CDevTokenCertInfo; +class CDevandTruSrvCertStoreSession; +class CDevandTruSrvCertStoreConduit; +class CDevandTruSrvCertStoreEntry; +class CDevandTruSrvCertStoreEntryList; +class CCertAttributeFilter; +class CTrustedSitesServer; + +struct TDevTokenAddCertDataStruct; + +/** + * class CDevandTruSrvCertStoreServer + * + * This class implements a certificate store which is stored on a file on the + * device. NewL calls the constructor and ConstructL. The constructor does + * nothing except initializing to 0. ConstructL calls OpenStoreL, then RestoreL + * and then sets the values of iStoreInfo. OpenStoreL opens the store and + * copies it from the ROM if necessary. RestoreL() + * + * @lib + * @since S60 3.2 + */ +class CDevandTruSrvCertStoreServer : public CBase + { + public: + + static CDevandTruSrvCertStoreServer* NewL( CTrustedSitesServer* aTrustedSitesServer); + + virtual ~CDevandTruSrvCertStoreServer(); + + CDevandTruSrvCertStoreSession* CreateSessionL(); + + public: + + // List certs, returned pointers are owned by this class + void ListL(const CCertAttributeFilter& aFilter, RPointerArray& aCertsOut, const RMessage2& aMessage, TBool aFromTruSiteSrv ) const; + + // Get cert info, returned pointer owned by this class, leaves if not found + const CDevTokenCertInfo& GetCertL(TInt aHandle) const; + + const RArray& ApplicationsL(TInt aHandle) const; + + TBool IsApplicableL(TInt aHandle, TUid aApplication) const; + + TBool TrustedL(TInt aHandle) const; + + HBufC8* RetrieveLC(TInt aHandle, const RMessage2& aMessage, TBool aFromTruSiteSrv ) const; + + void AddL(const TDevTokenAddCertDataStruct& aInfo, + const TDesC8& aCert, + const RMessage2& aMessage, TBool aFromTruSiteSrv ); + + void RemoveL(TInt aHandle, const RMessage2& aMessage, TBool aFromTruSiteSrv ); + + void SetApplicabilityL(TInt aHandle, + const RArray& aApplications, + const RMessage2& aMessage); + + void SetTrustL(TInt aHandle, + TBool aTrusted, + const RMessage2& aMessage); + + private: + + CDevandTruSrvCertStoreServer( CTrustedSitesServer* aTrustedSitesServer ); + + void ConstructL(); + + // Security policy + const TSecurityPolicy& AddRemovePolicy(TCertificateOwnerType aOwnerType) const; + + const TSecurityPolicy& RetrievePolicy(TCertificateOwnerType aOwnerType) const; + + const TSecurityPolicy& ListPolicy(TCertificateOwnerType aOwnerType) const; + + const TSecurityPolicy& WriteTrustSettingsPolicy() const; + + TBool CertEntryMatchesFilter(const CCertAttributeFilter& aFilter, + + const CDevandTruSrvCertStoreEntry& aEntry) const; + + void DoAddL(const CDevTokenCertInfo& aCertInfo, const TDesC8& aCertData); + + TStreamId WriteCertDataStreamL(const TDesC8& aData); + + // Write the cert entry list to the store + void UpdateStoreL(); + + void CompactStoreL(); + + // Open the store and load the index from a file + void RestoreL(const TDesC& aFilename); + + // Open the store file, copying from ROM or creating it first if necessary + void OpenStoreL(); + + // Create an empty store file, and leave it closed + void CreateStoreFileL(const TDesC& aFile); + + void DoCreateStoreFileL(const TDesC& aFile); + + private: + + // Conduit for marshalling/unmarshalling client communications + + CDevandTruSrvCertStoreConduit* iConduit; + + RFs iFs; + + CPermanentFileStore* iStore; + + // The list of certificates contained in the store. + + CDevandTruSrvCertStoreEntryList* iEntryList; + + // The store stream containing the list of certs + TStreamId iStreamId; + + CTrustedSitesServer* iTrustedSitesServer; //Not owned; + }; + +#endif //__DEVANDTRUSRVCERTSTORESERVER_H__ + +//EOF +