diff -r 000000000000 -r 2c201484c85f cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/inc/tpkcs12data.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/inc/tpkcs12data.h Wed Jul 08 11:25:26 2009 +0100 @@ -0,0 +1,303 @@ +/* +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* This file contains the classes CPfxHeader,CSafeBagAttribute ,CSafeContentBag ,CSafeBagData. +* +*/ + + + + +/** + @file + @internalTechnology +*/ +#ifndef __TPKCS12DATA_H +#define __TPKCS12DATA_H +//System Include +#include +#include +#include + +using namespace PKCS12; + +/** +To store the PKCS12 file details +*/ +class CPfxHeader : public CBase + { + +public: + + /** creates a CPfxHeader object*/ + static CPfxHeader* NewL(const CDecPkcs12& aDecPkcs12 , TInt aError); + /** creates a CPfxHeader object, push it on Cleanupstack*/ + static CPfxHeader* NewLC(const CDecPkcs12& aDecPkcs12 , TInt aError); + /** destructor*/ + ~CPfxHeader(); + /** to set the contentinfo count */ + inline void SetContentInfoCount(TInt aContentInfoCount){iContentInfoCount = aContentInfoCount;} + /** to increment the keybagcount */ + inline void IncrementKeyBagCount(){iKeyBagCount++ ;} + /** to increment the shroudedskeybagcount */ + inline void IncrementShroudedKeyBagCount(){iShroudedKeyBagCount++ ;} + /** to increment the certbagcount */ + inline void IncrementCertBagCount(){iCertBagCount++;} + /** to increment the crlbagcount */ + inline void IncrementCrlBagCount(){iCrlBagCount++;} + /** to increment the secretbagcount */ + inline void IncrementSecretBagCount(){iSecretBagCount++;} + /** to increment the safecontentbagcount */ + inline void IncrementSafecontentBagCount(){iSafeContentsBagCount++;} + /** to set the pkcs12 Main Class ExpectedError */ + inline void SetPkcs12ActualError(TInt aPkcs12ActualError){iPkcs12ActualError = aPkcs12ActualError;} + /** to get the version number*/ + inline TInt Version(){return iVersion;} + /** to get the integrity mode*/ + inline CDecPkcs12::TIntegrityMode IntegrityMode(){return iIntegrityMode;} + /** to get the mac data presence */ + inline TBool MacData(){return iIsMacDataPresent;} + /** to get the mac Id */ + inline TDesC8& MacId(){return *iMac;} + /** to get the mac salt */ + inline TDesC8& MacSalt(){return *iMacSalt;} + /** to get the iteration count */ + inline TInt IterationCount(){return iIterationCount;} + /** to get the contentinfo count */ + inline TInt ContentInfoCount(){return iContentInfoCount;} + /** to get the keybagcount */ + inline TInt KeyBagCount(){return iKeyBagCount;} + + /** to get the shroudedskeybagcount */ + inline TInt ShroudedKeyBagCount(){return iShroudedKeyBagCount;} + /** to get the certbagcount */ + inline TInt CertBagCount(){return iCertBagCount;} + /** to get the crlbagcount */ + inline TInt CrlBagCount(){return iCrlBagCount;} + /** to append the secretbagcount */ + inline TInt SecretBagCount(){return iSecretBagCount;} + /** to append the safecontentbagcount */ + inline TInt SafecontentBagCount(){return iSafeContentsBagCount;} + inline TInt TotalSafeBagCount(){return (iKeyBagCount+iShroudedKeyBagCount+ + iCertBagCount+iCrlBagCount+iSecretBagCount);} + + /** to get the pkcs12 Main Class ExpectedError */ + inline TInt Pkcs12ActualError(){return iPkcs12ActualError;} +private: + void ConstructL(const CDecPkcs12& aDecPkcs12 , TInt aError); + + /** contains the version number of the PKCS#12 file */ + TInt iVersion ; + /** contains the integrity mode of the PKCS#12 file */ + CDecPkcs12::TIntegrityMode iIntegrityMode; + /** contains 1 if macData is present else 0 */ + TBool iIsMacDataPresent; + /** contains the mac ID */ + HBufC8* iMac; + /** contains the mac salt */ + HBufC8* iMacSalt; + /** contains the iteration count */ + TInt iIterationCount ; + /** contains the total content info count in the PKCS#12 file */ + TInt iContentInfoCount; + /** contains the total keybag count in the PKCS#12 file */ + TInt iKeyBagCount; + /** contains the total shroudedkeybag count in the PKCS#12 file */ + TInt iShroudedKeyBagCount; + /** contains the total certbag count in the PKCS#12 file */ + TInt iCertBagCount; + /** contains the total crlbag count in the PKCS#12 file */ + TInt iCrlBagCount; + /** contains the total secretbag count in the PKCS#12 file */ + TInt iSecretBagCount; + /** contains the total safecontent bag count in the PKCS#12 file */ + TInt iSafeContentsBagCount; + /** contains PKCS12 main class error */ + TInt iPkcs12ActualError; + + /* Constructor */ + CPfxHeader(); +}; + +/* +To store the safecag attribute details +*/ + +class CSafeBagAttribute : public CBase + { +public: + /** destructor*/ + ~CSafeBagAttribute(); + /** creates a CSafeBagAttribute object*/ + static CSafeBagAttribute* NewL(const CDecPkcs12Attribute& aAttribute); + /** creates a CSafeBagAttribute object, push it on Cleanupstack*/ + static CSafeBagAttribute* NewLC(const CDecPkcs12Attribute& aAttribute); + + /** to set the Attribute Id */ + inline void SetAttributeId(const TDesC& aAttributeId){iAttrId = aAttributeId.AllocL();} + /** to set the Attribute value count */ + inline void SetAttributeValueCount(TInt aAttributeValCount){iAttrValCount = aAttributeValCount;} + + /** to get the Attribute Id */ + inline const TDesC& AttributeId(){return *iAttrId;} + /** to get the Attribute value count */ + inline TInt AttributeValueCount(){return iAttrValCount;} + +private: +/** constructor */ + CSafeBagAttribute(); + void ConstructL(const CDecPkcs12Attribute& aAttribute); + /**contains the attribute id*/ + HBufC* iAttrId; + /**contains the attributes count*/ + TInt iAttrValCount; + }; + +/* +To store the safecontent bag details +*/ +class CSafeContentBag : public CBase + { +public: + + /** creates a CSafeContentBag object*/ + static CSafeContentBag* NewL(); + /** creates a CSafeContentBag object, push it on Cleanupstack*/ + static CSafeContentBag* NewLC(); + + /** to set the safecontent bag number */ + inline void SetBagNumber(TInt aBagNumber){iBagNumber = aBagNumber;} + /** to set the safebagcount in the safecontent bag*/ + inline void SetSafeBagCount(TInt aSafeBagCount){iSafeBagCount = aSafeBagCount;} + + /** to get the safecontent bag number */ + inline TInt BagNumber(){return iBagNumber;} + /** to get the safebagcount in the safecontent bag*/ + inline TInt SafeBagCount(){return iSafeBagCount;} + + +private: + /* constructor */ + CSafeContentBag(); + /** contains the safecontent bag number in the PKCS#12 file*/ + TInt iBagNumber ; + /** contains the safebag count in the safecontent bag*/ + TInt iSafeBagCount; + /** Unit Test */ + TInt iExpectedError; + + }; + +/** +To store the Safebag details +*/ +class CSafeBagData : public CBase + { +public: + /** creates a CSafeBagData object */ + static CSafeBagData* NewL(); + /** creates a CSafeBagData object, push it on Cleanupstack*/ + static CSafeBagData* NewLC(); + /*destructor*/ + ~CSafeBagData(); + + /** to set the contentinfo number corresponding to the bag*/ + inline void SetContentInfoNumber(TInt aContentInfo){iContentInfo = aContentInfo;} + /** to set the contenttype corresponding to the bag*/ + inline void SetContentInfoType(TInt aContentType){iContentType = aContentType;} + /** to set the bag number corresponding to the bag*/ + inline void SetBagNumber(TInt aBagNumber){iBagNumber = aBagNumber;} + /** to set the PrivateKeyInfoVersion corresponding to the bag*/ + inline void SetPrivateKeyInfoVersion(TInt aPrivateKeyInfoVersion){iPrivateKeyInfoVersion = aPrivateKeyInfoVersion;} + /** to set the bag id corresponding to the bag*/ + inline void SetBagType(CDecPkcs12SafeBag::TBagId aBagId){iBagId = aBagId;} + /** to set the bag value corresponding to the bag*/ + inline void SetBagValue(const TDesC8& aBagValue){iBagValue = aBagValue.AllocL();} + /** to set the Algorithem id corresponding to the bag*/ + inline void SetAlgorithmId(const TDesC& aAlgorithmId){iAlgorithmID = aAlgorithmId.AllocL();} + /** to set the Certificate id corresponding to the certbag*/ + inline void SetCertificateId(const TDesC& aCertificateID){iCertificateID = aCertificateID.AllocL();} + /** to set the key type corresponding to the bag*/ + inline void SetKeyType(TAlgorithmId aKeyType){iKeyType = aKeyType;} + + /** to set the X509Certificate corresponding to the bag*/ + inline void SetX509Certificate(const CX509Certificate* aX509Certificate){iX509certificate = aX509Certificate;} + /** to set the DerEncodedShroudedKey */ + inline void SetEncodedShroudedKey(const TDesC8& aEncodedShroudedKey){iEncodedShroudedKey = aEncodedShroudedKey.AllocL();} + + /** to get the contentinfo number corresponding to the bag*/ + inline TInt ContentInfoNumber(){return iContentInfo;} + /** to get the contenttype corresponding to the bag*/ + inline TInt ContentInfoType(){return iContentType ;} + /** to get the bag number corresponding to the bag*/ + inline TInt BagNumber(){return iBagNumber;} + /** to get the PrivateKeyInfoVersion corresponding to the bag*/ + inline TInt PrivateKeyInfoVersion(){return iPrivateKeyInfoVersion;} + /** to get the bag id corresponding to the bag*/ + inline CDecPkcs12SafeBag::TBagId BagType(){return iBagId;} + /** to get the bag value corresponding to the bag*/ + inline const TDesC8& BagValue(){return *iBagValue;} + /** to get the Algorithem id corresponding to the bag*/ + inline const TDesC& AlgorithmId(){return *iAlgorithmID ;} + /** to get the Certificate id corresponding to the certbag*/ + inline const TDesC& CertificateId(){return *iCertificateID ;} + /** to get the key type corresponding to the bag*/ + inline TAlgorithmId KeyType(){return iKeyType;} + /** to get the X509Certificate corresponding to the bag*/ + inline const CX509Certificate& X509Certificate(){return *iX509certificate;} + /** to get the DerEncodedShroudedKey*/ + inline TDesC8& EncodedShroudedKey(){return *iEncodedShroudedKey;} + + /** contains the attribute IDs and attribute values count*/ + RPointerArray iAttributeIDs; + /** contains the attribute values */ + RPointerArray iAttributeValues; +private: + + /** contains the content info number of the safebag */ + TInt iContentInfo; + /** contains the content type of the safebag */ + TInt iContentType ; + /** contains the bag number of the safebag */ + TInt iBagNumber; + /** contains the privatekey info version of the safebag */ + TInt iPrivateKeyInfoVersion ; + /** contains the bag ID of the safebag */ + CDecPkcs12SafeBag::TBagId iBagId; + /** contains the bag value of the safebag */ + HBufC8* iBagValue; + /** contains the algorithem ID */ + HBufC* iAlgorithmID; + /** contains the certificate ID */ + HBufC* iCertificateID; + /** contains the key type */ + TAlgorithmId iKeyType; + + /** contains the X509Certificate */ + const CX509Certificate* iX509certificate; + /*contains the der encoded shrouded key */ + HBufC8* iEncodedShroudedKey; + + /** Unit Test */ + TInt iVersion; + + TAlgorithmId iAlgortihmId; + + TInt iExpectedError; + /*Constructor*/ + CSafeBagData(); + + }; + +#endif