cryptoservices/certificateandkeymgmt/pkcs7/pkcs7contentinfo_v2.cpp
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptoservices/certificateandkeymgmt/pkcs7/pkcs7contentinfo_v2.cpp	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/pkcs7/pkcs7contentinfo_v2.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -1,148 +1,148 @@
-/*
-* Copyright (c) 2003-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: 
-*
-*/
-
- 
-#include "pkcs7contentinfo_v2.h"
-#include "pkcs7asn1.h"
-
-EXPORT_C CPKCS7ContentInfo* CPKCS7ContentInfo::NewL(const TDesC8& aRawData)
-	{
-	CPKCS7ContentInfo* self = new (ELeave) CPKCS7ContentInfo();
-	CleanupStack::PushL(self);
-	self->ConstructL(aRawData);
-	CleanupStack::Pop(self);
-	return self;	
-	}
-
-CPKCS7ContentInfo::~CPKCS7ContentInfo()
-	{
-	}
-
-EXPORT_C CPKCS7ContentInfo::TContentInfoType CPKCS7ContentInfo::ContentType() const
-	{
-	return iContentType;
-	}
-
-EXPORT_C const TPtrC8 CPKCS7ContentInfo::ContentData() const
-	{
-	return iContentData;	
-	}
-
-CPKCS7ContentInfo::CPKCS7ContentInfo(void)
-	{
-	}
-
-void CPKCS7ContentInfo::ConstructL(const TDesC8& aRawData)
-	{  
-	const TInt minItems = 1;	// Must have OID
-	const TInt maxItems = 2;	// May have data
-
-	CArrayPtr<TASN1DecGeneric>* contentInfo = PKCS7ASN1::DecodeSequenceLC(aRawData, minItems, maxItems);
-
-    const TASN1DecGeneric* contentInfoAt0 = contentInfo->At(0);
-	// Checks its a oid id
-	if(contentInfoAt0->Tag()==EASN1ObjectIdentifier || contentInfoAt0->Class() == EUniversal)
-		{
-		// Gets the oid
-		TASN1DecObjectIdentifier oidDec;
-		HBufC* oidVal = oidDec.DecodeDERL(*contentInfo->At(0));
-		CleanupStack::PushL(oidVal);
-		// Data itself is optional so make sure its there
-		if(contentInfo->Count() == 2)
-			{
-			const TASN1DecGeneric* contentInfoAt1 = contentInfo->At(1);
-			if ( contentInfoAt1->Tag() == 0 || contentInfoAt1->Class() == EContextSpecific )
-				{
-				TASN1DecGeneric decGen(contentInfoAt1->GetContentDER());
-				decGen.InitL();
-	            if(*oidVal == KPkcs7DataOID)
-					{
-					// ContentData is OctetString if ContentType is Data
-					if(decGen.Tag() == EASN1OctetString)   
-						{
-						iContentData.Set(decGen.GetContentDER()); 
-						}
-					else
-						{
-						User::Leave(KErrArgument);
-						}
-					}
-				else
-					{
-					iContentData.Set(decGen.Encoding());
-					}
-				}
-			}
-		else
-			{
-			iContentData.Set(KNullDesC8());
-			}
-		// Checks if it is data OID.
-		if(*oidVal == KPkcs7DataOID)
-			{
-			// The Content Type is indicated by an Integer.
-			// Here if Content Type is equal to Data then,it is represented by 1
-			// 1 indicates the numeric value of last element in the PKCS7 Data OID.
-			iContentType = EContentTypeData;
-			}
-		else if(*oidVal == KPkcs7SignedDataOID)
-			{
-			// The Content Type is indicated by an Integer.
-			// Here if Content Type is equal to SignedData then,it is represented by 2
-			// 2 indicates the numeric value of last element in the PKCS7 SignedData OID.
-			iContentType = EContentTypeSignedData;
-			}
-		else if(*oidVal == KPkcs7EnvelopedDataOID) 
-			{
-			// The Content Type is indicated by an Integer.
-			// Here if Content Type is equal to EnvelopedData then,it is represented by 3.
-			// 3 indicates the numeric value of last element in the PKCS7 EnvelopedData OID.
-			iContentType = EContentTypeEnvelopedData;
-			}
-		else if(*oidVal == KPkcs7SignedAndEnvelopedDataOID)
-			{
-			// The Content Type is indicated by an Integer.
-			// Here if Content Type is equal to SignedAndEnvelopedData then,it is represented by 4.
-			// 4 indicates the numeric value of last element in the PKCS7 SignedAndEnvelopedData OID.
-			iContentType = EContentTypeSignedAndEnvelopedData;
-			}
-		else if(*oidVal == KPkcs7DigestedDataOID)
-			{
-			// The Content Type is indicated by an Integer.
-			// Here if Content Type is equal to DigestedData then,it is represented by 5.
-			// 5 indicates the numeric value of last element in the PKCS7 DigestedData OID.
-			iContentType = EContentTypeDigestedData;
-			}
-		else if(*oidVal == KPkcs7EncryptedDataOID)
-			{
-			// The Content Type is indicated by an Integer.
-			// Here if Content Type is equal to EncryptedData then,it is represented by 6
-			// 6 indicates the numeric value of last element in the PKCS7 EncryptedData OID.
-			iContentType = EContentTypeEncryptedData;
-			}
-		else
-			{
-			User::Leave(KErrNotSupported);
-			}
-		CleanupStack::PopAndDestroy(oidVal);
-		}
-	else
-		{
-		User::Leave(KErrArgument);
-		}
-	CleanupStack::PopAndDestroy(contentInfo);
-	}
+/*
+* Copyright (c) 2003-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: 
+*
+*/
+
+ 
+#include "pkcs7contentinfo_v2.h"
+#include "pkcs7asn1.h"
+
+EXPORT_C CPKCS7ContentInfo* CPKCS7ContentInfo::NewL(const TDesC8& aRawData)
+	{
+	CPKCS7ContentInfo* self = new (ELeave) CPKCS7ContentInfo();
+	CleanupStack::PushL(self);
+	self->ConstructL(aRawData);
+	CleanupStack::Pop(self);
+	return self;	
+	}
+
+CPKCS7ContentInfo::~CPKCS7ContentInfo()
+	{
+	}
+
+EXPORT_C CPKCS7ContentInfo::TContentInfoType CPKCS7ContentInfo::ContentType() const
+	{
+	return iContentType;
+	}
+
+EXPORT_C const TPtrC8 CPKCS7ContentInfo::ContentData() const
+	{
+	return iContentData;	
+	}
+
+CPKCS7ContentInfo::CPKCS7ContentInfo(void)
+	{
+	}
+
+void CPKCS7ContentInfo::ConstructL(const TDesC8& aRawData)
+	{  
+	const TInt minItems = 1;	// Must have OID
+	const TInt maxItems = 2;	// May have data
+
+	CArrayPtr<TASN1DecGeneric>* contentInfo = PKCS7ASN1::DecodeSequenceLC(aRawData, minItems, maxItems);
+
+    const TASN1DecGeneric* contentInfoAt0 = contentInfo->At(0);
+	// Checks its a oid id
+	if(contentInfoAt0->Tag()==EASN1ObjectIdentifier || contentInfoAt0->Class() == EUniversal)
+		{
+		// Gets the oid
+		TASN1DecObjectIdentifier oidDec;
+		HBufC* oidVal = oidDec.DecodeDERL(*contentInfo->At(0));
+		CleanupStack::PushL(oidVal);
+		// Data itself is optional so make sure its there
+		if(contentInfo->Count() == 2)
+			{
+			const TASN1DecGeneric* contentInfoAt1 = contentInfo->At(1);
+			if ( contentInfoAt1->Tag() == 0 || contentInfoAt1->Class() == EContextSpecific )
+				{
+				TASN1DecGeneric decGen(contentInfoAt1->GetContentDER());
+				decGen.InitL();
+	            if(*oidVal == KPkcs7DataOID)
+					{
+					// ContentData is OctetString if ContentType is Data
+					if(decGen.Tag() == EASN1OctetString)   
+						{
+						iContentData.Set(decGen.GetContentDER()); 
+						}
+					else
+						{
+						User::Leave(KErrArgument);
+						}
+					}
+				else
+					{
+					iContentData.Set(decGen.Encoding());
+					}
+				}
+			}
+		else
+			{
+			iContentData.Set(KNullDesC8());
+			}
+		// Checks if it is data OID.
+		if(*oidVal == KPkcs7DataOID)
+			{
+			// The Content Type is indicated by an Integer.
+			// Here if Content Type is equal to Data then,it is represented by 1
+			// 1 indicates the numeric value of last element in the PKCS7 Data OID.
+			iContentType = EContentTypeData;
+			}
+		else if(*oidVal == KPkcs7SignedDataOID)
+			{
+			// The Content Type is indicated by an Integer.
+			// Here if Content Type is equal to SignedData then,it is represented by 2
+			// 2 indicates the numeric value of last element in the PKCS7 SignedData OID.
+			iContentType = EContentTypeSignedData;
+			}
+		else if(*oidVal == KPkcs7EnvelopedDataOID) 
+			{
+			// The Content Type is indicated by an Integer.
+			// Here if Content Type is equal to EnvelopedData then,it is represented by 3.
+			// 3 indicates the numeric value of last element in the PKCS7 EnvelopedData OID.
+			iContentType = EContentTypeEnvelopedData;
+			}
+		else if(*oidVal == KPkcs7SignedAndEnvelopedDataOID)
+			{
+			// The Content Type is indicated by an Integer.
+			// Here if Content Type is equal to SignedAndEnvelopedData then,it is represented by 4.
+			// 4 indicates the numeric value of last element in the PKCS7 SignedAndEnvelopedData OID.
+			iContentType = EContentTypeSignedAndEnvelopedData;
+			}
+		else if(*oidVal == KPkcs7DigestedDataOID)
+			{
+			// The Content Type is indicated by an Integer.
+			// Here if Content Type is equal to DigestedData then,it is represented by 5.
+			// 5 indicates the numeric value of last element in the PKCS7 DigestedData OID.
+			iContentType = EContentTypeDigestedData;
+			}
+		else if(*oidVal == KPkcs7EncryptedDataOID)
+			{
+			// The Content Type is indicated by an Integer.
+			// Here if Content Type is equal to EncryptedData then,it is represented by 6
+			// 6 indicates the numeric value of last element in the PKCS7 EncryptedData OID.
+			iContentType = EContentTypeEncryptedData;
+			}
+		else
+			{
+			User::Leave(KErrNotSupported);
+			}
+		CleanupStack::PopAndDestroy(oidVal);
+		}
+	else
+		{
+		User::Leave(KErrArgument);
+		}
+	CleanupStack::PopAndDestroy(contentInfo);
+	}