cryptoservices/certificateandkeymgmt/x509/x509constraintext.cpp
changeset 8 35751d3474b7
parent 0 2c201484c85f
child 29 ece3df019add
--- a/cryptoservices/certificateandkeymgmt/x509/x509constraintext.cpp	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/x509/x509constraintext.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -1,196 +1,197 @@
-/*
-* 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: 
-*
-*/
-
-
-#include <asn1dec.h>
-#include <x509constraintext.h>
-
-// Integer list methods
-EXPORT_C CX509IntListExt* CX509IntListExt::NewL(const TDesC8& aBinaryData)
-	{	
-	CX509IntListExt* self = CX509IntListExt::NewLC(aBinaryData);
-	CleanupStack::Pop(self);
-	return self;
-	}
-	
-EXPORT_C CX509IntListExt* CX509IntListExt::NewLC(const TDesC8& aBinaryData)
-	{
-	CX509IntListExt* self = new(ELeave) CX509IntListExt;
-	CleanupStack::PushL(self);
-	
-	TInt pos = 0;
-	self->ConstructL(aBinaryData, pos);
-	return self;
-	}
-
-CX509IntListExt::~CX509IntListExt() 
-	{
-	iIntArray.Close();
-	}
-	
-EXPORT_C const RArray<TInt>& CX509IntListExt::IntArray() const 
-	{
-	return iIntArray;	
-	}		
-
-void CX509IntListExt::ConstructL(const TDesC8& aBinaryData, TInt& aPos)
-	{
-	CX509ExtensionBase::ConstructL(aBinaryData, aPos);
-	}
-
-void CX509IntListExt::DoConstructL(const TDesC8& aBinaryData, TInt& aPos)
-	{
-	TASN1DecSequence encSeq;	
-	CArrayPtrFlat<TASN1DecGeneric>* seq = encSeq.DecodeDERLC(aBinaryData, aPos);
-	TInt count = seq->Count();
-	
-	TASN1DecInteger encInt;
-	for (TInt i = 0; i < count; i++) 
-		{
-		TASN1DecGeneric* curr = seq->At(i);
-		
-		if (curr->Tag() == EASN1Integer)		
-			{
-			User::LeaveIfError(iIntArray.Append(encInt.DecodeDERShortL(*curr)));
-			}		
-		else
-			{
-			User::Leave(KErrArgument);		
-			}
-		}		
-	CleanupStack::PopAndDestroy(seq);
-	}
-	
-//CX509IntListExt::CX509IntListExt() 
-//	{
-//	}
-	
-// UTF-8 String list methods	
-EXPORT_C CX509Utf8StringListExt* CX509Utf8StringListExt::NewL(const TDesC8& aBinaryData)
-	{	
-	CX509Utf8StringListExt* self = CX509Utf8StringListExt::NewLC(aBinaryData);
-	CleanupStack::Pop(self);
-	return self;
-	}
-	
-EXPORT_C CX509Utf8StringListExt* CX509Utf8StringListExt::NewLC(const TDesC8& aBinaryData)
-	{
-	CX509Utf8StringListExt* self = new(ELeave) CX509Utf8StringListExt;
-	CleanupStack::PushL(self);
-	
-	TInt pos = 0;
-	self->ConstructL(aBinaryData, pos);
-	return self;
-	}
-
-EXPORT_C const RPointerArray<HBufC>& CX509Utf8StringListExt::StringArray() const
-	{
-	return iStringArray;
-	}	
-
-void CX509Utf8StringListExt::ConstructL(const TDesC8& aBinaryData, TInt& aPos)
-	{
-	CX509ExtensionBase::ConstructL(aBinaryData, aPos);
-	}
-	
-void CX509Utf8StringListExt::DoConstructL(const TDesC8& aBinaryData, TInt& aPos)
-	{
-	TASN1DecSequence encSeq;	
-	CArrayPtrFlat<TASN1DecGeneric>* seq = encSeq.DecodeDERLC(aBinaryData, aPos);
-	TInt count = seq->Count();
-	
-	TASN1DecUTF8String encStr;
-	for (TInt i = 0; i < count; i++) 
-		{
-		TASN1DecGeneric* curr = seq->At(i);
-		if (curr->Tag() == EASN1UTF8String)		
-			{
-			HBufC *str = encStr.DecodeDERL(*curr);
-			CleanupStack::PushL(str);
-			User::LeaveIfError(iStringArray.Append(str));
-			CleanupStack::Pop(str);
-			}		
-		else
-			{
-			User::Leave(KErrArgument);		
-			}
-		}		
-	CleanupStack::PopAndDestroy(seq);
-	}
-
-CX509Utf8StringListExt::~CX509Utf8StringListExt() 
-	{
-	iStringArray.ResetAndDestroy();
-	}
-	
-// Capability set methods
-EXPORT_C CX509CapabilitySetExt* CX509CapabilitySetExt::NewL(const TDesC8& aBinaryData) 
-	{
-	CX509CapabilitySetExt* self = CX509CapabilitySetExt::NewLC(aBinaryData);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-EXPORT_C CX509CapabilitySetExt* CX509CapabilitySetExt::NewLC(const TDesC8& aBinaryData) 
-	{
-	CX509CapabilitySetExt* self = new (ELeave) CX509CapabilitySetExt;
-	CleanupStack::PushL(self);
-	
-	TInt pos = 0;
-	self->ConstructL(aBinaryData, pos);
-	return self;
-	}
-
-CX509CapabilitySetExt::~CX509CapabilitySetExt() 
-	{	
-	}
-
-EXPORT_C const TCapabilitySet& CX509CapabilitySetExt::CapabilitySet() const
-	{
-	return iCapabilitySet;
-	}
-
-void CX509CapabilitySetExt::ConstructL(const TDesC8& aBinaryData, TInt& aPos)
-	{
-	CX509ExtensionBase::ConstructL(aBinaryData, aPos);
-	}
-			
-void CX509CapabilitySetExt::DoConstructL(const TDesC8& aBinaryData, TInt& aPos) 
-	{
-	TASN1DecBitString encBit;	
-	
-	// Decode the padding bits
-	HBufC8* bitBuffer = encBit.ExtractOctetStringL(aBinaryData, aPos);
-	CleanupStack::PushL(bitBuffer);
-	
-	// Create bitString for easy access of individual bits.
-	// This transfers ownership of bitBuffer
-	CX509BitString* bitString = new (ELeave) CX509BitString(bitBuffer, bitBuffer->Length() * 8);	
-	CleanupStack::Pop(bitBuffer);
-	
-	// Start off with an empty capability set and attempt to add each capability in turn
-	// making sure we don't go past the limit of the supported capabilities.
-	iCapabilitySet.SetEmpty();
-	for (TInt i = 0; i < ECapability_Limit; i++) 
-		{
-		if (bitString->IsSet(i))		
-			{
-			iCapabilitySet.AddCapability(static_cast<TCapability>(i));		
-			}
-		}	
-	delete bitString;
-	}	
+/*
+* 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: 
+*
+*/
+
+
+#include <asn1dec.h>
+#include <x509constraintext.h>
+#include "x509bitstring.h"
+
+// Integer list methods
+EXPORT_C CX509IntListExt* CX509IntListExt::NewL(const TDesC8& aBinaryData)
+	{	
+	CX509IntListExt* self = CX509IntListExt::NewLC(aBinaryData);
+	CleanupStack::Pop(self);
+	return self;
+	}
+	
+EXPORT_C CX509IntListExt* CX509IntListExt::NewLC(const TDesC8& aBinaryData)
+	{
+	CX509IntListExt* self = new(ELeave) CX509IntListExt;
+	CleanupStack::PushL(self);
+	
+	TInt pos = 0;
+	self->ConstructL(aBinaryData, pos);
+	return self;
+	}
+
+CX509IntListExt::~CX509IntListExt() 
+	{
+	iIntArray.Close();
+	}
+	
+EXPORT_C const RArray<TInt>& CX509IntListExt::IntArray() const 
+	{
+	return iIntArray;	
+	}		
+
+void CX509IntListExt::ConstructL(const TDesC8& aBinaryData, TInt& aPos)
+	{
+	CX509ExtensionBase::ConstructL(aBinaryData, aPos);
+	}
+
+void CX509IntListExt::DoConstructL(const TDesC8& aBinaryData, TInt& aPos)
+	{
+	TASN1DecSequence encSeq;	
+	CArrayPtrFlat<TASN1DecGeneric>* seq = encSeq.DecodeDERLC(aBinaryData, aPos);
+	TInt count = seq->Count();
+	
+	TASN1DecInteger encInt;
+	for (TInt i = 0; i < count; i++) 
+		{
+		TASN1DecGeneric* curr = seq->At(i);
+		
+		if (curr->Tag() == EASN1Integer)		
+			{
+			User::LeaveIfError(iIntArray.Append(encInt.DecodeDERShortL(*curr)));
+			}		
+		else
+			{
+			User::Leave(KErrArgument);		
+			}
+		}		
+	CleanupStack::PopAndDestroy(seq);
+	}
+	
+//CX509IntListExt::CX509IntListExt() 
+//	{
+//	}
+	
+// UTF-8 String list methods	
+EXPORT_C CX509Utf8StringListExt* CX509Utf8StringListExt::NewL(const TDesC8& aBinaryData)
+	{	
+	CX509Utf8StringListExt* self = CX509Utf8StringListExt::NewLC(aBinaryData);
+	CleanupStack::Pop(self);
+	return self;
+	}
+	
+EXPORT_C CX509Utf8StringListExt* CX509Utf8StringListExt::NewLC(const TDesC8& aBinaryData)
+	{
+	CX509Utf8StringListExt* self = new(ELeave) CX509Utf8StringListExt;
+	CleanupStack::PushL(self);
+	
+	TInt pos = 0;
+	self->ConstructL(aBinaryData, pos);
+	return self;
+	}
+
+EXPORT_C const RPointerArray<HBufC>& CX509Utf8StringListExt::StringArray() const
+	{
+	return iStringArray;
+	}	
+
+void CX509Utf8StringListExt::ConstructL(const TDesC8& aBinaryData, TInt& aPos)
+	{
+	CX509ExtensionBase::ConstructL(aBinaryData, aPos);
+	}
+	
+void CX509Utf8StringListExt::DoConstructL(const TDesC8& aBinaryData, TInt& aPos)
+	{
+	TASN1DecSequence encSeq;	
+	CArrayPtrFlat<TASN1DecGeneric>* seq = encSeq.DecodeDERLC(aBinaryData, aPos);
+	TInt count = seq->Count();
+	
+	TASN1DecUTF8String encStr;
+	for (TInt i = 0; i < count; i++) 
+		{
+		TASN1DecGeneric* curr = seq->At(i);
+		if (curr->Tag() == EASN1UTF8String)		
+			{
+			HBufC *str = encStr.DecodeDERL(*curr);
+			CleanupStack::PushL(str);
+			User::LeaveIfError(iStringArray.Append(str));
+			CleanupStack::Pop(str);
+			}		
+		else
+			{
+			User::Leave(KErrArgument);		
+			}
+		}		
+	CleanupStack::PopAndDestroy(seq);
+	}
+
+CX509Utf8StringListExt::~CX509Utf8StringListExt() 
+	{
+	iStringArray.ResetAndDestroy();
+	}
+	
+// Capability set methods
+EXPORT_C CX509CapabilitySetExt* CX509CapabilitySetExt::NewL(const TDesC8& aBinaryData) 
+	{
+	CX509CapabilitySetExt* self = CX509CapabilitySetExt::NewLC(aBinaryData);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+EXPORT_C CX509CapabilitySetExt* CX509CapabilitySetExt::NewLC(const TDesC8& aBinaryData) 
+	{
+	CX509CapabilitySetExt* self = new (ELeave) CX509CapabilitySetExt;
+	CleanupStack::PushL(self);
+	
+	TInt pos = 0;
+	self->ConstructL(aBinaryData, pos);
+	return self;
+	}
+
+CX509CapabilitySetExt::~CX509CapabilitySetExt() 
+	{	
+	}
+
+EXPORT_C const TCapabilitySet& CX509CapabilitySetExt::CapabilitySet() const
+	{
+	return iCapabilitySet;
+	}
+
+void CX509CapabilitySetExt::ConstructL(const TDesC8& aBinaryData, TInt& aPos)
+	{
+	CX509ExtensionBase::ConstructL(aBinaryData, aPos);
+	}
+			
+void CX509CapabilitySetExt::DoConstructL(const TDesC8& aBinaryData, TInt& aPos) 
+	{
+	TASN1DecBitString encBit;	
+	
+	// Decode the padding bits
+	HBufC8* bitBuffer = encBit.ExtractOctetStringL(aBinaryData, aPos);
+	CleanupStack::PushL(bitBuffer);
+	
+	// Create bitString for easy access of individual bits.
+	// This transfers ownership of bitBuffer
+	CX509BitString* bitString = new (ELeave) CX509BitString(bitBuffer, bitBuffer->Length() * 8);	
+	CleanupStack::Pop(bitBuffer);
+	
+	// Start off with an empty capability set and attempt to add each capability in turn
+	// making sure we don't go past the limit of the supported capabilities.
+	iCapabilitySet.SetEmpty();
+	for (TInt i = 0; i < ECapability_Limit; i++) 
+		{
+		if (bitString->IsSet(i))		
+			{
+			iCapabilitySet.AddCapability(static_cast<TCapability>(i));		
+			}
+		}	
+	delete bitString;
+	}