diff -r 000000000000 -r 2c201484c85f cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/src/tpkcs12data.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/src/tpkcs12data.cpp Wed Jul 08 11:25:26 2009 +0100 @@ -0,0 +1,244 @@ +/* +* 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 implementation of the CPfxHeader,CSafeBagAttribute, +* CSafeContentBag,CSafeBagData. +* +*/ + + + + +/** + @file + @internalTechnology +*/ +//User Include +#include "tpkcs12data.h" + +// Implementation of CPfxHeader + +/** +Description:constructor +@internalTechnology: +@test +*/ +CPfxHeader::CPfxHeader() + { + } +/** +Description:Function is intended to create the CPfxHeader object +@internalTechnology: +@test +*/ + CPfxHeader* CPfxHeader::NewL(const CDecPkcs12& aDecPkcs12 , TInt aError) + { + CPfxHeader* self = NewLC(aDecPkcs12 , aError); + CleanupStack::Pop(self); + return self; + } +/** +Description:Function is intended to pcreate the CPfxHeader object and push it to cleanupstack +@internalTechnology: +@test +*/ + CPfxHeader* CPfxHeader::NewLC(const CDecPkcs12& aDecPkcs12 , TInt aError) + { + CPfxHeader* self = new (ELeave) CPfxHeader(); + CleanupStack::PushL(self); + self->ConstructL(aDecPkcs12 , aError); + return self; + } + +/** +Description:Function is intended to construct the CPfxHeader object +@param-CDecPkcs12&: reference to the CDecPkcs12 object +@param-aError: Error to be set in case, the CDecPkcs12 object creation fails +@internalTechnology: +@test +*/ +void CPfxHeader::ConstructL(const CDecPkcs12& aDecPkcs12 , TInt aError) + { + if(aError != KErrNone) + { + iPkcs12ActualError = aError; + return; + } + //get the version + iVersion = aDecPkcs12.Version(); + // put the integrity mode in the Header + iIntegrityMode = aDecPkcs12.IntegrityMode(); + + // Get the macData + const CDecPkcs12MacData* macData = aDecPkcs12.MacData(); + + // set the macData member in the Header + + iIsMacDataPresent = ( macData != NULL) ; + + if (macData && iIntegrityMode == CDecPkcs12::EPasswordIntegrityMode) + { + // MacL method returns the DigestInfo structure. + const CPKCS7DigestInfo& digestInfo = macData->DigestInfo(); + iMac = digestInfo.Digest().AllocL(); + // MacSaltL method returns the macSalt + iMacSalt = macData->MacSalt().AllocL(); + // IterationCountL method returns the iteration Count. + iIterationCount= macData->IterationCount(); + } + } +/** +Description:destructor +@internalTechnology: +@test +*/ +CPfxHeader::~CPfxHeader() + { + delete iMac; + delete iMacSalt; + } + +// Implementation of CSafeBagAttribute +/** +Description:constructor +@internalTechnology: +@test +*/ +CSafeBagAttribute::CSafeBagAttribute() + { + } +/** +Description:destructor +@internalTechnology: +@test +*/ +CSafeBagAttribute::~CSafeBagAttribute() + { + delete iAttrId; + } +/** +Description:Function is intended create CSafeBagAttribute object +@param-aAttribute: constant reference to the CDecPkcs12Attribute +@internalTechnology: +@test +*/ + CSafeBagAttribute* CSafeBagAttribute::NewL(const CDecPkcs12Attribute& aAttribute) + { + CSafeBagAttribute* self = NewLC(aAttribute); + CleanupStack::Pop(self); + return self; + } +/** +Description:Function is intended to construct CSafeBagAttribute object, push it to cleanupstack +@param-aAttribute: constant reference to the CDecPkcs12Attribute +@internalTechnology: +@test +*/ + CSafeBagAttribute* CSafeBagAttribute::NewLC(const CDecPkcs12Attribute& aAttribute) + { + CSafeBagAttribute* self = new (ELeave) CSafeBagAttribute(); + CleanupStack::PushL(self); + self->ConstructL(aAttribute); + return self; + } +/** +Description:Function is intended to construct the CSafeBagAttribute object +@param-CDecPkcs12Attribute: pointer to the CDecPkcs12ShroudedKeyBag +@internalTechnology: +@test +*/ +void CSafeBagAttribute::ConstructL(const CDecPkcs12Attribute& aAttribute) + { + iAttrId = aAttribute.AttributeId().AllocL(); + iAttrValCount = aAttribute.AttributeValue().Count(); + } + +//Implementation of CSafeContentBag + +/** +Description:Function is intended to create the CSafeContentBag +@internalTechnology: +@test +*/ + CSafeContentBag* CSafeContentBag::NewL() + { + CSafeContentBag* self = NewLC(); + CleanupStack::Pop(self); + return self; + } +/** +Description:Function is intended to create the CSafeContentBag, push it to cleanupstack +@internalTechnology: +@test +*/ + CSafeContentBag* CSafeContentBag::NewLC() + { + CSafeContentBag* self = new (ELeave) CSafeContentBag(); + CleanupStack::PushL(self); + return self; + } +/** +Description:constructor +@internalTechnology: +@test +*/ +CSafeContentBag::CSafeContentBag() + { + } + +// Implementation of CSafeBagData + +/** +Description:destructor +@internalTechnology: +@test +*/ +CSafeBagData::~CSafeBagData() + { + delete iBagValue; + delete iAlgorithmID; + delete iCertificateID; + iAttributeIDs.ResetAndDestroy(); + iAttributeValues.ResetAndDestroy(); + } +/** +Description:Function is intended to create the CSafeBagData object +@internalTechnology: +@test +*/ + CSafeBagData* CSafeBagData::NewL() + { + CSafeBagData* self = NewLC(); + CleanupStack::Pop(self); + return self; + } +/** +Description:Function is intended to create the CSafeBagData object, push it to cleanupstack +@internalTechnology: +@test +*/ + CSafeBagData* CSafeBagData::NewLC() + { + CSafeBagData* self = new (ELeave) CSafeBagData; + CleanupStack::PushL(self); + return self; + } +/** +Description:constructor +@internalTechnology: +@test +*/ +CSafeBagData::CSafeBagData() + { + }