vpnengine/dmadpki/inc/DmAdRtNodeData.h
changeset 0 33413c0669b9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vpnengine/dmadpki/inc/DmAdRtNodeData.h	Thu Dec 17 09:14:51 2009 +0200
@@ -0,0 +1,234 @@
+/*
+* Copyright (c) 2002-2008 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:   Class definition of CDmAdCertData
+*
+*/
+
+
+
+#ifndef __DMADRTNODEDATA_H__
+#define __DMADRTNODEDATA_H__
+
+
+#include <e32base.h>
+#include <e32cmn.h>
+
+#include "dmadcallback.h"
+#include "dmadcertparms.h"
+#include "dmadcertreqparms.h"
+#include "dmadprivkeyparms.h"
+#include "dmadpkcs12parms.h"
+#include "eventlogger.h"
+
+class CX509Certificate;
+
+typedef enum
+    {
+    EDmAdUriTypeCert,
+    EDmAdUriTypeCertReq,
+    EDmAdUriTypePrivKey,
+    EDmAdUriTypePKCS12
+    } TDmAdUriType;
+    
+//------------------------------------------------------------------------------------------------
+// CDmAdCertData
+//------------------------------------------------------------------------------------------------
+class CDmAdCertData : public CBase
+    {
+public:
+    static CDmAdCertData* NewL(MDmAdCallBack* aCallBack);
+    ~CDmAdCertData();
+    
+    void SetDefaultSettings();
+    
+    void SetTypeL(const TDesC8& aType);
+    HBufC8* TypeLC();
+    void SetFormatL(const TDesC8& aFormat);
+    HBufC8* FormatLC();
+    void SetDeletableL(const TDesC8& aDeletable);
+    HBufC8* DeletableLC();
+    void SetTrustedL(const TDesC8& aTrusted);
+    HBufC8* TrustedLC();
+    void SetApplicabilityL(const RArray<TUid>& aApplicability);
+    const RArray<TUid>& Applicability() const;
+    void SetContentL(const TDesC8& aContent);
+    TPtrC8 Content();
+    HBufC8* SerialNumberLC();
+    HBufC8* IssuerNameLC();
+    HBufC8* FingerprintAlgLC();
+    HBufC8* FingerprintValueLC();
+    HBufC8* ValidityBeginLC();
+    HBufC8* ValidityEndLC();
+    HBufC8* SubjectNameLC();
+    HBufC8* SubjectAltNameLC();
+    HBufC8* KeyUriLC();
+    HBufC8* KeyIdLC();
+    HBufC8* KeyUsageLC();
+    HBufC8* FormatCertValidityTimeLC(const TTime& aTime);
+    HBufC8* FindKeyUriLC(const TDesC8& aKeyId);
+    void RestoreL(const CDmAdCertParms& aCertParms);
+    void ToStoreL(CDmAdCertParms& aCertParms);
+
+private:
+    void ConstructL();
+    CDmAdCertData(MDmAdCallBack* aCallBack);
+        
+private:
+    MDmAdCallBack*      iCallBack;
+    
+    CDmAdCertParms*     iCertParms;
+    CX509Certificate*   iCertCx509;
+    };
+
+//------------------------------------------------------------------------------------------------
+// CDmAdCertReqData
+//------------------------------------------------------------------------------------------------
+class CDmAdCertReqData : public CBase
+    {
+public:
+    static CDmAdCertReqData* NewL(MDmAdCallBack* aCallBack);
+    ~CDmAdCertReqData();
+    
+    void SetDefaultSettings();
+    void SetSubjectNameL(const TDesC8& aSubjectName);
+    TPtrC8 SubjectName();
+    void SetRfc822NameL(const TDesC8& aRfc822Name);
+    TPtrC8 Rfc822Name();
+    void SetKeyUriL(const TDesC8& aKeyUri);
+    HBufC8* KeyUriL() const;
+    void SetKeyLength(const TDesC8& aKeyLength);
+    HBufC8* KeyLengthLC();
+
+    TPtrC8 Content();
+    
+    void RestoreL(const CDmAdCertReqParms& aCertReqParms);
+    void ToStoreL(CDmAdCertReqParms& aCertReqParms);
+
+private:
+    void ConstructL();
+    CDmAdCertReqData(MDmAdCallBack* aCallBack);
+    
+private:
+
+    MDmAdCallBack*          iCallBack;   
+    CDmAdCertReqParms*      iCertReqParms;
+    };
+
+//------------------------------------------------------------------------------------------------
+// CDmAdPrivKeyData
+//------------------------------------------------------------------------------------------------
+class CDmAdPrivKeyData : public CBase
+    {
+public:
+    static CDmAdPrivKeyData* NewL();
+    ~CDmAdPrivKeyData();
+    
+    void SetDefaultSettingsL();
+    void SetKeyTypeL(const TDesC8& aKeyType);
+    HBufC8* KeyTypeLC();
+    void SetKeyLength(const TDesC8& aKeyLength);
+    HBufC8* KeyLengthLC();
+    TPtrC8 KeyId();
+    
+    void RestoreL(const CDmAdPrivKeyParms& aPrivKeyParms);
+    void ToStoreL(CDmAdPrivKeyParms& aPrivKeyParms);
+
+private:
+    void ConstructL();
+    CDmAdPrivKeyData();
+    
+private:
+    CDmAdPrivKeyParms*     iPrivKeyParms;
+    };
+    
+//------------------------------------------------------------------------------------------------
+// CDmAdPKCS12Data
+//------------------------------------------------------------------------------------------------
+class CDmAdPKCS12Data : public CBase
+    {
+public:
+    static CDmAdPKCS12Data* NewL(/*MDmAdCallBack* aCallBack*/);
+    ~CDmAdPKCS12Data();
+    
+    void SetDefaultSettings();
+    
+    void SetDeletableL(const TDesC8& aDeletable);
+    HBufC8* DeletableLC();
+    void SetApplicabilityL(const RArray<TUid>& aApplicability);
+    const RArray<TUid>& Applicability() const;
+    void SetContentL(const TDesC8& aContent);
+    TPtrC8 Content();
+    void SetPasswordL(const TDesC8& aContent);
+    TPtrC8 Password();
+
+    void RestoreL(const CDmAdPKCS12Parms& aPKCS12Parms);
+    void ToStoreL(CDmAdPKCS12Parms& aPKCS12Parms);
+
+private:
+    void ConstructL();
+    CDmAdPKCS12Data();
+    
+private:
+    CDmAdPKCS12Parms*     iPKCS12Parms;
+    };
+
+//------------------------------------------------------------------------------------------------
+// CDmAdRtNodeData
+//------------------------------------------------------------------------------------------------
+class CDmAdRtNodeData : public CBase
+    {
+public:
+    static CDmAdRtNodeData* NewL(const TDesC8& aUri, MDmAdCallBack* aCallBack);
+    ~CDmAdRtNodeData();
+    TDmAdUriType UriType() const;
+    static TDmAdUriType UriTypeL(const TDesC8& aUri);
+    void UpdateLeafDataL(const TDesC8& aUri, const TDesC8& aObject);
+    void FetchLeafObjectLC(const TDesC8& aUri, const TDesC8& aLuid, CBufBase*& aObject);
+    void SetDefaultSettingsL(const TDesC8& aUri);
+
+    inline CDmAdCertData* CertData() const;
+    inline CDmAdCertReqData* CertReqData() const;
+    inline CDmAdPrivKeyData* PrivKeyData() const;
+    inline CDmAdPKCS12Data* PKCS12Data() const;
+    
+private:
+    void ConstructL(const TDesC8& aUri, MDmAdCallBack* aCallBack);
+    CDmAdRtNodeData();
+    void UpdateLeafDataCertL(const TDesC8& aUri, const TDesC8& aObject);
+    void UpdateLeafDataCertReqL(const TDesC8& aUri, const TDesC8& aObject);
+    void UpdateLeafDataPrivKeyL(const TDesC8& aUri, const TDesC8& aObject);
+    void FetchLeafObjectCertLC(const TDesC8& aUri, const TDesC8& aLuid, CBufBase*& aObject);
+    void FetchLeafObjectCertReqLC(const TDesC8& aUri, const TDesC8& aLuid, CBufBase*& aObject);
+    void FetchLeafObjectPrivKeyLC(const TDesC8& aUri, const TDesC8& aLuid, CBufBase*& aObject);
+        
+    void UpdateLeafDataPKCS12L(const TDesC8& aUri, const TDesC8& aObject);
+    void ParseApplicabilityL(const TDesC8& aApplicabilityData,
+                             RArray<TUid>& aApplicabilityList) const; 
+        
+        
+private:
+    TDmAdUriType    iUriType;
+    union
+        {
+        CDmAdCertData*      iCert;
+        CDmAdCertReqData*   iCertReq;
+        CDmAdPrivKeyData*   iPrivKey;
+        CDmAdPKCS12Data*    iPKCS12;
+        } u;
+    DEFINE_EVENT_LOGGER    
+    };
+
+#include "DmAdRtNodeData.inl"
+
+#endif