--- a/cryptoservices/certificateandkeymgmt/tasn1/testbitstr.cpp Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/tasn1/testbitstr.cpp Thu Sep 10 14:01:51 2009 +0300
@@ -1,115 +1,117 @@
-/*
-* 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:
-* Implementation for testing bit string encoding/decoding
-*
-*/
-
-
-#include "testbitstr.h"
-#include "tasn1normaltest.h"
-#include <asn1enc.h>
-#include <asn1dec.h>
-
-#include <e32cons.h>
-
-CTestBitStr* CTestBitStr::NewL(CASN1NormalTest &aASN1Action)
- {
- CTestBitStr* test = new (ELeave) CTestBitStr(aASN1Action);
- return test;
- }
-
-CTestBitStr::CTestBitStr(CASN1NormalTest &aASN1Action) : CTestBase(aASN1Action)
- {
- };
-
-void CTestBitStr::GetName(TDes& aBuf)
- {
- aBuf.Copy(_L("Test Bit String"));
- }
-
-TBool CTestBitStr::PerformTestsL(CConsoleBase& aConsole)
- {
- TBool pass = ETrue;
-
-
- // Test the encoding varying length bit strings by encoding 65
- // different bit strings with a single bit set in each position. Position -1
- // indicates the empty bit string.
- for (TInt8 bitNum = -1; bitNum < 64; bitNum++)
- {
- TBuf8<8> bitStr;
- TUint numOctets;
-
- if (bitNum >= 0)
- {
- numOctets = 1 + (bitNum / 8);
- }
- else
- {
- numOctets = 0;
- }
-
- bitStr.SetLength(numOctets);
- bitStr.FillZ();
-
- TUint8 valToEncode = 0;
- if (bitNum >= 0 )
- {
- // The most significant bit in the most significant byte is bit zero
- valToEncode = (TUint8) (1 << (7 - (bitNum % 8)));
- bitStr[bitNum / 8] = valToEncode;
- }
-
- // Get the encoder and decoder
- CASN1EncBitString* encoder = CASN1EncBitString::NewLC(bitStr, bitNum + 1);
- TASN1DecBitString decoder;
-
- // Prepare an encode buffer
- TInt totalLength = encoder->LengthDER();
- HBufC8* encodeBuffer = HBufC8::NewMaxLC(totalLength);
- TPtr8 tEncodeBuf = encodeBuffer->Des();
-
- // Write into the encode buffer
- TUint writeLength = 0;
- encoder->WriteDERL(tEncodeBuf, writeLength);
-
- // Read it out again and check lengths plus encoded value
- TInt readLength = 0;
- HBufC8* decodeBuffer = decoder.ExtractOctetStringL(tEncodeBuf, readLength);
- CleanupStack::PushL(decodeBuffer);
- TPtr8 tDecodeBuf = decodeBuffer->Des();
-
- if (writeLength != STATIC_CAST(TUint, readLength))
- {
- aConsole.Write(_L("ERROR!\n"));
- iASN1Action.ReportProgressL(KErrASN1EncodingError, 1, 1);
- pass = EFalse;
- }
- else if (bitNum >= 0 && valToEncode != tDecodeBuf[bitNum / 8])
- {
- aConsole.Write(_L("ENCODING ERROR!\n"));
- iASN1Action.ReportProgressL(KErrASN1EncodingError, 1, 1);
- pass = EFalse;
- }
- else
- {
- iASN1Action.ReportProgressL(KErrNone, bitNum + 1, 65);
- }
-
- CleanupStack::PopAndDestroy(3, encoder); // decodeBuffer, encodeBuffer, encoder
- }
-
- return pass;
- }
+/*
+* 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:
+* Implementation for testing bit string encoding/decoding
+*
+*/
+
+
+#include "testbitstr.h"
+#include "tasn1normaltest.h"
+#include <asn1enc.h>
+#include <asn1dec.h>
+
+#include <e32cons.h>
+
+CTestBitStr* CTestBitStr::NewL(CASN1NormalTest &aASN1Action)
+ {
+ CTestBitStr* test = new (ELeave) CTestBitStr(aASN1Action);
+ return test;
+ }
+
+CTestBitStr::CTestBitStr(CASN1NormalTest &aASN1Action) : CTestBase(aASN1Action)
+ {
+ };
+
+void CTestBitStr::GetName(TDes& aBuf)
+ {
+ aBuf.Copy(_L("Test Bit String"));
+ }
+
+TBool CTestBitStr::PerformTestsL(CConsoleBase& aConsole)
+ {
+ TBool pass = ETrue;
+
+
+ // Test the encoding varying length bit strings by encoding 65
+ // different bit strings with a single bit set in each position. Position -1
+ // indicates the empty bit string.
+ for (TInt8 bitNum = -1; bitNum < 64; bitNum++)
+ {
+ TBuf8<8> bitStr;
+ TUint numOctets;
+
+ if (bitNum >= 0)
+ {
+ numOctets = 1 + (bitNum / 8);
+ }
+ else
+ {
+ numOctets = 0;
+ }
+
+ bitStr.SetLength(numOctets);
+ bitStr.FillZ();
+
+ TUint8 valToEncode = 0;
+ if (bitNum >= 0 )
+ {
+ // The most significant bit in the most significant byte is bit zero
+ valToEncode = (TUint8) (1 << (7 - (bitNum % 8)));
+ bitStr[bitNum / 8] = valToEncode;
+ }
+
+ // Get the encoder and decoder
+ CASN1EncBitString* encoder = CASN1EncBitString::NewLC(bitStr, bitNum + 1);
+ TASN1DecBitString decoder;
+
+ // Prepare an encode buffer
+ TInt totalLength = encoder->LengthDER();
+ HBufC8* encodeBuffer = HBufC8::NewMaxLC(totalLength);
+ TPtr8 tEncodeBuf = encodeBuffer->Des();
+
+ // Write into the encode buffer
+ TUint writeLength = 0;
+ encoder->WriteDERL(tEncodeBuf, writeLength);
+
+ // Read it out again and check lengths plus encoded value
+ TInt readLength = 0;
+ HBufC8* decodeBuffer = decoder.ExtractOctetStringL(tEncodeBuf, readLength);
+ CleanupStack::PushL(decodeBuffer);
+ TPtr8 tDecodeBuf = decodeBuffer->Des();
+
+ if (writeLength != STATIC_CAST(TUint, readLength))
+ {
+ aConsole.Write(_L("ERROR!\n"));
+ iASN1Action.ReportProgressL(KErrASN1EncodingError, 1, 1);
+ pass = EFalse;
+ }
+ else if (bitNum >= 0 && valToEncode != tDecodeBuf[bitNum / 8])
+ {
+ aConsole.Write(_L("ENCODING ERROR!\n"));
+ iASN1Action.ReportProgressL(KErrASN1EncodingError, 1, 1);
+ pass = EFalse;
+ }
+ else
+ {
+ iASN1Action.ReportProgressL(KErrNone, bitNum + 1, 65);
+ }
+
+ CleanupStack::PopAndDestroy(3, encoder); // decodeBuffer, encodeBuffer, encoder
+ }
+
+ return pass;
+ }
+
+