diff -r 675a964f4eb5 -r 35751d3474b7 cryptoservices/filebasedcertificateandkeystores/test/keytool/keytoolfileview.cpp --- a/cryptoservices/filebasedcertificateandkeystores/test/keytool/keytoolfileview.cpp Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptoservices/filebasedcertificateandkeystores/test/keytool/keytoolfileview.cpp Thu Sep 10 14:01:51 2009 +0300 @@ -1,185 +1,185 @@ -/* -* Copyright (c) 2007-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 "keytool_defs.h" -#include "keytoolfileview.h" - -#include -#include "keytool_utils.h" -#include - - -/*static*/ CKeytoolFileView* CKeytoolFileView::NewLC(const TDesC& aInputFile) - { - CKeytoolFileView* self = new (ELeave) CKeytoolFileView(); - CleanupStack::PushL(self); - self->ConstructL(aInputFile); - return self; - } - -CKeytoolFileView::CKeytoolFileView() - { - } - -CKeytoolFileView::~CKeytoolFileView() - { - iFs.Close(); - iFile.Close(); - iArgs.ResetAndDestroy(); - } - -void CKeytoolFileView::ConstructL(const TDesC& aInputFile) - { - User::LeaveIfError(iFs.Connect()); - User::LeaveIfError(iFile.Open(iFs, aInputFile, EFileShareExclusive)); - } - -void CKeytoolFileView::DisplayUsage() - { - } - -void CKeytoolFileView::BoilerPlate() - { - - } - -void CKeytoolFileView::DisplayKeyInfoL(CCTKeyInfo& aKey, TBool aIsDetailed, TBool /*aPageWise*/) - { - // Display the key infos - KeyToolUtils::PrintKeyInfoL(aKey, aIsDetailed); - KeyToolUtils::PrintInfoL(_L("\n")); - } - -void CKeytoolFileView::DisplayErrorL(const TDesC& aError, TInt aErrorCode, TBool/* aPageWise*/) - { - KeyToolUtils::PrintInfoL(aError); - KeyToolUtils::PrintInfoL(_L("\nError code: ")); - KeyToolUtils::WriteErrorL(aErrorCode); - KeyToolUtils::PrintInfoL(_L("\n")); - } - - void CKeytoolFileView::DisplayErrorL(const TDesC& aError, TBool/* aPageWise*/) - { - KeyToolUtils::PrintInfoL(aError); - KeyToolUtils::PrintInfoL(_L("\n")); - } - - void CKeytoolFileView::DisplayCertL(CCTCertInfo& aCert, CCertificate& aCertificate, RUidArray aApps, TBool aIsDetailed, TBool/* aPageWise*/) - { - // Display the key infos - KeyToolUtils::PrintCertInfoL(aCert, aCertificate, aApps, aIsDetailed); - KeyToolUtils::PrintInfoL(_L("\n")); - } - -CArrayFixFlat* CKeytoolFileView::ReadArrayArgumentsLC(TInt cmdIndex) - { - CArrayFixFlat* currentCmd = new (ELeave) CArrayFixFlat (10); - CleanupStack::PushL(currentCmd); - TPtr cmd = iArgs[cmdIndex]->Des(); - cmd.Trim(); - TLex arguments(cmd); - while(!arguments.Eos()) - { - TPtrC token = arguments.NextToken(); - currentCmd->AppendL(token); - } - - TBuf<150> string; - string.Format(_L("Command : %S\noutput :"), &cmd); - KeyToolUtils::PrintInfoL(_L("================================================")); - KeyToolUtils::PrintInfoL(_L("================================================\n")); - DisplayErrorL(string, 0); - return currentCmd; - } - -TInt CKeytoolFileView::SplitFileInputToArrayL() - { - TInt fSize; - iFile.Size(fSize); - - HBufC8* fileContents = HBufC8::NewLC(fSize); - TPtr8 ptr(fileContents->Des()); - ptr.SetLength(fSize); - - // create file stream and Read the content from the file - RFileReadStream inputFileStream(iFile); - CleanupClosePushL(inputFileStream); - inputFileStream.ReadL(ptr, fSize); - CleanupStack::PopAndDestroy(&inputFileStream); - - TInt readPos = 0; - TPtrC8 lineContents; - - TInt lineCount = 0; - while (!ReadLine(*fileContents, readPos, lineContents)) - { - TInt lineLength = lineContents.Length(); - if (lineLength) - { - lineCount++; - HBufC* currentLine = HBufC::NewLC(lineLength); - currentLine->Des().Copy(lineContents); - iArgs.AppendL(currentLine); - CleanupStack::Pop(currentLine); - } - } - CleanupStack::PopAndDestroy(fileContents); - return lineCount; - } - -TInt CKeytoolFileView::ReadLine(const TDesC8& aBuffer, TInt& aPos, TPtrC8& aLine) - { - TBool endOfBuffer = EFalse; - const TChar KCarriageReturn = '\r'; - const TChar KLineReturn = '\n'; - - TInt bufferLength = aBuffer.Length(); - if ( aPos > bufferLength || aPos < 0 ) - { - return ETrue; // End of buffer - } - - // find the position of the next delimter - TInt endPos = aPos; - while (endPos < bufferLength) - { - TChar c = aBuffer[endPos]; - - if (c == KCarriageReturn || c == KLineReturn) - { - break; - } - endPos++; - } - - if (endPos != aPos) - { - TInt tokenLen = endPos - aPos; - aLine.Set(&aBuffer[aPos], tokenLen); - endPos += 2; - } - else - { - return ETrue; // End of buffer - } - - aPos = endPos; - return endOfBuffer; - } - - +/* +* Copyright (c) 2007-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 "keytool_defs.h" +#include "keytoolfileview.h" + +#include +#include "keytool_utils.h" +#include + + +/*static*/ CKeytoolFileView* CKeytoolFileView::NewLC(const TDesC& aInputFile) + { + CKeytoolFileView* self = new (ELeave) CKeytoolFileView(); + CleanupStack::PushL(self); + self->ConstructL(aInputFile); + return self; + } + +CKeytoolFileView::CKeytoolFileView() + { + } + +CKeytoolFileView::~CKeytoolFileView() + { + iFs.Close(); + iFile.Close(); + iArgs.ResetAndDestroy(); + } + +void CKeytoolFileView::ConstructL(const TDesC& aInputFile) + { + User::LeaveIfError(iFs.Connect()); + User::LeaveIfError(iFile.Open(iFs, aInputFile, EFileShareExclusive)); + } + +void CKeytoolFileView::DisplayUsage() + { + } + +void CKeytoolFileView::BoilerPlate() + { + + } + +void CKeytoolFileView::DisplayKeyInfoL(CCTKeyInfo& aKey, TBool aIsDetailed, TBool /*aPageWise*/) + { + // Display the key infos + KeyToolUtils::PrintKeyInfoL(aKey, aIsDetailed); + KeyToolUtils::PrintInfoL(_L("\n")); + } + +void CKeytoolFileView::DisplayErrorL(const TDesC& aError, TInt aErrorCode, TBool/* aPageWise*/) + { + KeyToolUtils::PrintInfoL(aError); + KeyToolUtils::PrintInfoL(_L("\nError code: ")); + KeyToolUtils::WriteErrorL(aErrorCode); + KeyToolUtils::PrintInfoL(_L("\n")); + } + + void CKeytoolFileView::DisplayErrorL(const TDesC& aError, TBool/* aPageWise*/) + { + KeyToolUtils::PrintInfoL(aError); + KeyToolUtils::PrintInfoL(_L("\n")); + } + + void CKeytoolFileView::DisplayCertL(CCTCertInfo& aCert, CCertificate& aCertificate, RUidArray aApps, TBool aTrusted, TBool aIsDetailed, TBool/* aPageWise*/) + { + // Display the key infos + KeyToolUtils::PrintCertInfoL(aCert, aCertificate, aApps, aTrusted, aIsDetailed); + KeyToolUtils::PrintInfoL(_L("\n")); + } + +CArrayFixFlat* CKeytoolFileView::ReadArrayArgumentsLC(TInt cmdIndex) + { + CArrayFixFlat* currentCmd = new (ELeave) CArrayFixFlat (10); + CleanupStack::PushL(currentCmd); + TPtr cmd = iArgs[cmdIndex]->Des(); + cmd.Trim(); + TLex arguments(cmd); + while(!arguments.Eos()) + { + TPtrC token = arguments.NextToken(); + currentCmd->AppendL(token); + } + + TBuf<150> string; + string.Format(_L("Command : %S\noutput :"), &cmd); + KeyToolUtils::PrintInfoL(_L("================================================")); + KeyToolUtils::PrintInfoL(_L("================================================\n")); + DisplayErrorL(string, 0); + return currentCmd; + } + +TInt CKeytoolFileView::SplitFileInputToArrayL() + { + TInt fSize; + iFile.Size(fSize); + + HBufC8* fileContents = HBufC8::NewLC(fSize); + TPtr8 ptr(fileContents->Des()); + ptr.SetLength(fSize); + + // create file stream and Read the content from the file + RFileReadStream inputFileStream(iFile); + CleanupClosePushL(inputFileStream); + inputFileStream.ReadL(ptr, fSize); + CleanupStack::PopAndDestroy(&inputFileStream); + + TInt readPos = 0; + TPtrC8 lineContents; + + TInt lineCount = 0; + while (!ReadLine(*fileContents, readPos, lineContents)) + { + TInt lineLength = lineContents.Length(); + if (lineLength) + { + lineCount++; + HBufC* currentLine = HBufC::NewLC(lineLength); + currentLine->Des().Copy(lineContents); + iArgs.AppendL(currentLine); + CleanupStack::Pop(currentLine); + } + } + CleanupStack::PopAndDestroy(fileContents); + return lineCount; + } + +TInt CKeytoolFileView::ReadLine(const TDesC8& aBuffer, TInt& aPos, TPtrC8& aLine) + { + TBool endOfBuffer = EFalse; + const TChar KCarriageReturn = '\r'; + const TChar KLineReturn = '\n'; + + TInt bufferLength = aBuffer.Length(); + if ( aPos > bufferLength || aPos < 0 ) + { + return ETrue; // End of buffer + } + + // find the position of the next delimter + TInt endPos = aPos; + while (endPos < bufferLength) + { + TChar c = aBuffer[endPos]; + + if (c == KCarriageReturn || c == KLineReturn) + { + break; + } + endPos++; + } + + if (endPos != aPos) + { + TInt tokenLen = endPos - aPos; + aLine.Set(&aBuffer[aPos], tokenLen); + endPos += 2; + } + else + { + return ETrue; // End of buffer + } + + aPos = endPos; + return endOfBuffer; + } + +