cpsecplugins/cpadvancedsecplugin/inc/cpcertdatacontainer.h
changeset 19 098e361762d2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cpsecplugins/cpadvancedsecplugin/inc/cpcertdatacontainer.h	Fri May 14 16:43:26 2010 +0300
@@ -0,0 +1,216 @@
+/*
+* Copyright (c) 2010 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:   Declaration of the CCertManUIKeeper class
+*
+*/
+
+#ifndef  CPCERTDATACONTAINER_H
+#define  CPCERTDATACONTAINER_H
+
+// INCLUDES
+#include <unifiedcertstore.h>
+#include <mctwritablecertstore.h>
+#include <unifiedkeystore.h>
+
+// FORWARD DECLARATIONS
+class CpCertManUISyncWrapper;
+class CpCertManUICertData;
+
+// CONSTANTS
+const TUid KCMDeviceCertStoreTokenUid = { 0x101FB668 };
+const TUid KCMDeviceKeyStoreTokenUid = { 0x101FB66A };
+const TUid KCMTrustedServerTokenUid = { 0x101FB66F };
+const TUid KCMFileKeyStoreTokenUid = { 0x101F7333 };
+const TUid KCMFileCertStoreTokenUid = { 0x101F501A };
+
+
+// CLASS DECLARATION
+
+/**
+*  CpCertDataContainer retrieves and holds certificates.
+*
+*/
+class CpCertDataContainer : public CBase
+    {
+    public: // functions
+
+        /**
+        * Default constructor
+        */
+		CpCertDataContainer();
+
+        /**
+        * Destructor.
+        */
+        ~CpCertDataContainer();
+
+        /**
+        * NewL
+        */
+        static class CpCertDataContainer* NewL();
+
+        /**
+        * NewLC
+        */
+        static class CpCertDataContainer* NewLC();
+
+        CUnifiedCertStore*& CertManager();
+
+        CUnifiedKeyStore*& KeyManager();
+
+        /**
+        * Checks that cacerts.dat file is not corrupt
+        * and returns CA certificates from it.
+        */
+        void RefreshCAEntriesL();
+
+        /**
+        * Checks that cacerts.dat file is not corrupt
+        * and returns user certificates from it.
+        */
+        void RefreshUserCertEntriesL();
+
+        /**
+        * Returns peer certificates.
+        */
+        void RefreshPeerCertEntriesL();
+
+        /**
+        * Returns peer certificates.
+        */
+        void RefreshDeviceCertEntriesL();
+
+        /**
+        * Shows error note
+        */
+        void ShowErrorNoteL(TInt aError);
+
+    public: //data
+
+        /**
+        * To store CA certificate entries for Authority and Trust view
+        * Includes label from x509certnameparser.
+        */
+        RMPointerArray<CpCertManUICertData>     iCALabelEntries;
+
+        /**
+        * To store CA certificate entries for Authority and Trust view
+        * Includes label from x509certnameparser.
+        */
+        RMPointerArray<CpCertManUICertData>     iUserLabelEntries;
+
+        /**
+        * To store Peer certificate entries for Trusted Site view
+        * Includes label from x509certnameparser.
+        */
+        RMPointerArray<CpCertManUICertData>     iPeerLabelEntries;
+
+        /**
+        * To store Peer certificate entries for Device certificate view
+        * Includes label from x509certnameparser.
+        */
+        RMPointerArray<CpCertManUICertData>     iDeviceLabelEntries;
+
+        /**
+        * Used to wrap asynchronous calls
+        */
+        CpCertManUISyncWrapper*          iWrapper;
+
+        /**
+        * File session handle.
+        */
+        RFs                             iRfs;
+
+    private: // functions
+
+        void ConstructL();
+
+    private: //data
+
+        /**
+        * To list certificates with criteria.
+        */
+        CCertAttributeFilter*   iFilter;
+
+        /**
+        * To list keys with criteria.
+        */
+
+        TCTKeyAttributeFilter*    iKeyFilter;
+
+        /**
+        * UnifiedCertStore
+        */
+        CUnifiedCertStore*    iStore;
+
+        /**
+        * UnifiedKeyStore
+        */
+        CUnifiedKeyStore*   iKeyStore;
+
+        /**
+        * To store CA certificate entries.
+        */
+        RMPointerArray<CCTCertInfo>     iCAEntries;
+
+        /**
+        * To store User certificate entries.
+        */
+        RMPointerArray<CCTCertInfo>     iUserEntries;
+
+        /**
+        * To store Peer certificate entries.
+        */
+        RMPointerArray<CCTCertInfo>     iPeerEntries;
+
+        /**
+        * To store Device certificate entries.
+        */
+        RMPointerArray<CCTCertInfo>     iDeviceEntries;
+
+        /**
+        * To store Key entries
+        */
+        RMPointerArray<CCTKeyInfo>      iKeyEntries;
+
+   };
+
+/**
+*  Small helper class to put label and certificate in same class.
+*
+*/
+class CpCertManUICertData : public CBase
+    {
+    public:
+
+	CpCertManUICertData();
+
+        void Release();
+
+        HBufC* iCAEntryLabel;
+        HBufC* iUserEntryLabel;
+        HBufC* iPeerEntryLabel;
+        HBufC* iDeviceEntryLabel;
+        CCTCertInfo* iCAEntry;
+        CCTCertInfo* iUserEntry;
+        CCTCertInfo* iPeerEntry;
+        CCTCertInfo* iDeviceEntry;
+
+    private:
+        ~CpCertManUICertData();
+
+    };
+
+
+#endif // CPCERTDATACONTAINER_H