--- a/cryptoservices/certificateandkeymgmt/asn1/bigintenc.cpp Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/asn1/bigintenc.cpp Thu Sep 10 14:01:51 2009 +0300
@@ -1,117 +1,117 @@
-/*
-* Copyright (c) 2001-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:
-* Implementation for the class encoding Big Integers in ASN1 DER
-*
-*/
-
-
-#include <asn1enc.h>
-
-#include <bigint.h>
-
-
-EXPORT_C CASN1EncBigInt* CASN1EncBigInt::NewLC(const TInteger& aInteger)
- {
- CASN1EncBigInt* self = new (ELeave) CASN1EncBigInt();
- CleanupStack::PushL(self);
- self->ConstructL(aInteger);
- return self;
- }
-
-EXPORT_C CASN1EncBigInt* CASN1EncBigInt::NewL(const TInteger& aInteger)
- {
- CASN1EncBigInt* self = NewLC(aInteger);
- CleanupStack::Pop(self);
- return self;
- }
-
-
-EXPORT_C CASN1EncBigInt::~CASN1EncBigInt()
- {
- delete iContents;
- }
-
-
-CASN1EncBigInt::CASN1EncBigInt()
-: CASN1EncPrimitive(EASN1Integer)
- {
- }
-
-void CASN1EncBigInt::ConstructL(const TInteger& aInteger)
-{
- iContents = aInteger.BufferLC();
-
- CleanupStack::Pop(); // We take ownership of the contents
-
- // May wish to skip leading byte(s) if they're unnecessary - use
- // iWriteContents to point to the minimal part of Contents, that we'll actually use.
- TInt last = iContents->Length() - 1;
- TInt first = 0;
-// if (aInteger >= 0) // Only signed integers now...
-// {
- while (first < last
- && (*iContents)[first] == 0
- && !((*iContents)[first + 1] & 0x80))
- {
- ++first;
- }
-// }
-/* else
- {
- while (first < last
- && (*iContents)[first] == 0xFF
- && (*iContents)[first + 1] & 0x80)
- {
- ++first;
- }
- }
-*/
- //to encode positive integers correctly add a leading zero byte
- //if the first bit is set DEF038956
- if (iContents->Length() != 0)
- {
- if ((*iContents)[first] & 0x80)
- {
- _LIT8(KPadZero, "\0");
- TPtr8 ptr = iContents->Des();
- //check if the buffer does not have enough space to insert a byte
- if (ptr.Length() == ptr.MaxLength())
- {
- iContents = iContents->ReAllocL(iContents->Length() + 1);
- TPtr8 reallocptr = iContents->Des();
- reallocptr.Insert(0, KPadZero);
- }
- else
- ptr.Insert(0, KPadZero);
- }
- }
-
-
- iWriteContents.Set(iContents->Mid(first));
-
- CASN1EncPrimitive::ConstructL();
- }
-
-
-void CASN1EncBigInt::CalculateContentsLengthDER()
- {
- iContentsLengthDER = iWriteContents.Length();
- }
-
-
-void CASN1EncBigInt::WriteContentsDERL(TDes8& aBuf) const
- {
- aBuf.Copy(iWriteContents);
- }
+/*
+* Copyright (c) 2001-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:
+* Implementation for the class encoding Big Integers in ASN1 DER
+*
+*/
+
+
+#include <asn1enc.h>
+
+#include <bigint.h>
+
+
+EXPORT_C CASN1EncBigInt* CASN1EncBigInt::NewLC(const TInteger& aInteger)
+ {
+ CASN1EncBigInt* self = new (ELeave) CASN1EncBigInt();
+ CleanupStack::PushL(self);
+ self->ConstructL(aInteger);
+ return self;
+ }
+
+EXPORT_C CASN1EncBigInt* CASN1EncBigInt::NewL(const TInteger& aInteger)
+ {
+ CASN1EncBigInt* self = NewLC(aInteger);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+EXPORT_C CASN1EncBigInt::~CASN1EncBigInt()
+ {
+ delete iContents;
+ }
+
+
+CASN1EncBigInt::CASN1EncBigInt()
+: CASN1EncPrimitive(EASN1Integer)
+ {
+ }
+
+void CASN1EncBigInt::ConstructL(const TInteger& aInteger)
+{
+ iContents = aInteger.BufferLC();
+
+ CleanupStack::Pop(); // We take ownership of the contents
+
+ // May wish to skip leading byte(s) if they're unnecessary - use
+ // iWriteContents to point to the minimal part of Contents, that we'll actually use.
+ TInt last = iContents->Length() - 1;
+ TInt first = 0;
+// if (aInteger >= 0) // Only signed integers now...
+// {
+ while (first < last
+ && (*iContents)[first] == 0
+ && !((*iContents)[first + 1] & 0x80))
+ {
+ ++first;
+ }
+// }
+/* else
+ {
+ while (first < last
+ && (*iContents)[first] == 0xFF
+ && (*iContents)[first + 1] & 0x80)
+ {
+ ++first;
+ }
+ }
+*/
+ //to encode positive integers correctly add a leading zero byte
+ //if the first bit is set DEF038956
+ if (iContents->Length() != 0)
+ {
+ if ((*iContents)[first] & 0x80)
+ {
+ _LIT8(KPadZero, "\0");
+ TPtr8 ptr = iContents->Des();
+ //check if the buffer does not have enough space to insert a byte
+ if (ptr.Length() == ptr.MaxLength())
+ {
+ iContents = iContents->ReAllocL(iContents->Length() + 1);
+ TPtr8 reallocptr = iContents->Des();
+ reallocptr.Insert(0, KPadZero);
+ }
+ else
+ ptr.Insert(0, KPadZero);
+ }
+ }
+
+
+ iWriteContents.Set(iContents->Mid(first));
+
+ CASN1EncPrimitive::ConstructL();
+ }
+
+
+void CASN1EncBigInt::CalculateContentsLengthDER()
+ {
+ iContentsLengthDER = iWriteContents.Length();
+ }
+
+
+void CASN1EncBigInt::WriteContentsDERL(TDes8& aBuf) const
+ {
+ aBuf.Copy(iWriteContents);
+ }