diff -r 415c00f1675d -r 8ee66fcd0a7c policymanagement/policyengine/policyengineserver/inc/PolicyProcessor.h --- a/policymanagement/policyengine/policyengineserver/inc/PolicyProcessor.h Fri Sep 17 08:34:58 2010 +0300 +++ b/policymanagement/policyengine/policyengineserver/inc/PolicyProcessor.h Mon Oct 04 01:40:31 2010 +0300 @@ -31,12 +31,17 @@ #include #include #include - +#include +#include +#include +#include // CONSTANTS // MACROS // DATA TYPES // FUNCTION PROTOTYPES // FORWARD DECLARATIONS +class CCertStore; +class CRepository; class CDataType; class CAttribute; @@ -107,6 +112,15 @@ //For management functions void SetTargetElement( CElementBase * aElement); void SetSessionTrust( CTrustedSession * aTrustedSession); + + //certificate store functions + TInt AddCertificateToStoreL(const RMessage2& aMessage); + //Read that counter value from central repository + TInt GetCertCounterValue(); + TInt RemoveCertificateFromStoreL(const RMessage2& aMessage); + void UpdateSilentTrustServerId(); + TInt CheckCurrentServerIdFromCR(); + protected: //From CActive void RunL(); @@ -143,7 +157,75 @@ const RMessage2 * iMessage; HBufC8 * iRequestBuffer; TInt iProcessorState; -}; + + //cert store pointer + CCertStore* iStore; + HBufC8 *iCertBuffer; + + }; + + +class CCertStore:public CActive + { + enum TCertState + { + EReady, + EInitializeStore, + EGetFPrint, + EAddCert, + ERemoveCert, + EExistsInStore + } iCertState; + public: + + static CCertStore* NewL(); + + ~CCertStore(); + + + void InitializeCertStore(); + TInt AddCert(HBufC8 *aCertBuffer); + void GetWritableCertStoreIndex(); + TInt GenerateNewCertLabel(); + void UpdateLabelCounterInCR(); + HBufC* GetCurrentCertLabel(); + TInt RemoveCert(const TDesC& aCertLabel); + const TDesC8& RetrieveCertFPrint(const TDesC& aCertLabel); + TBool CheckCertInStore( const TDesC& aLabel ); + void WaitUntilOperationDone(); + + protected: + virtual void RunL(); + virtual void DoCancel(); + + private: + CCertStore(); + void ConstructL(); + + private: + // Data + CUnifiedCertStore* iCertStore; + TInt iStoreIndex; + RMPointerArray< CCTCertInfo > iCertInfoArray; + CCTCertInfo* iCertInfoRetrieved; + HBufC8* iCertData; + + // to track the counter of cert labels + TInt iLabelCounter; + + //cert data from SCCM cerver + HBufC8 *iCertBuffer; + + //cert Label to be used for storage and removal + HBufC *iCertLabel; + + //Waits for the operation to complete. Owned. + CActiveSchedulerWait* iWait; + TBuf8<40> iFingerPrint; + + }; + + //Class to launch PolicyEngine Dialog