diff -r 675a964f4eb5 -r 35751d3474b7 cryptoservices/asnpkcs/test/tactiontestpkcs8.cpp --- a/cryptoservices/asnpkcs/test/tactiontestpkcs8.cpp Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptoservices/asnpkcs/test/tactiontestpkcs8.cpp Thu Sep 10 14:01:51 2009 +0300 @@ -1,163 +1,163 @@ -/* -* Copyright (c) 1998-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: -* tactiondecodepkcs5.cpp -* -*/ - - -#include "tactiontestpkcs8.h" -#include "t_input.h" -#include "t_output.h" -#include -#include -#include -#include - -_LIT8(KFilenameStart, ""); -_LIT8(KMatchesStart, ""); - -_LIT8(KOutcomeNoMatch, "noMatch"); -_LIT8(KOutcomeMatchesPKCS8, "pkcs8"); -_LIT8(KOutcomeMatchesEncryptedPKCS8, "encryptedPkcs8"); - -_LIT(KFilenameBase, "\\tkeystore\\data\\"); - -CTestAction* CActionTestPKCS8::NewL(RFs& aFs, - CConsoleBase& aConsole, - Output& aOut, - const TTestActionSpec& aTestActionSpec) - { - CActionTestPKCS8* self = new(ELeave) CActionTestPKCS8(aFs, aConsole, aOut); - CleanupStack::PushL(self); - self->ConstructL(aTestActionSpec); - CleanupStack::Pop(); - return self; - } - -CActionTestPKCS8::~CActionTestPKCS8() - { - delete iInput; - } - -CActionTestPKCS8::CActionTestPKCS8(RFs& aFs, - CConsoleBase& aConsole, - Output& aOut) - -: CTestAction(aConsole, aOut), iFs(aFs) - { - } - -void CActionTestPKCS8::ConstructL(const TTestActionSpec& aTestActionSpec) - { - CTestAction::ConstructL(aTestActionSpec); - ReadInputFileL(Input::ParseElement(aTestActionSpec.iActionBody, KFilenameStart)); - SetExpectedOutcomeL(Input::ParseElement(aTestActionSpec.iActionBody, KMatchesStart)); - } - -void CActionTestPKCS8::ReadInputFileL(const TDesC8& aFilename) - { - if (aFilename == KNullDesC8) - { - User::Leave(KErrArgument); - } - - TFileName tempFilename; - tempFilename.Copy(aFilename); // convert from 8 -> 16 bit descriptor - - TDriveUnit sysDrive = RFs::GetSystemDrive(); - TDriveName sysDriveName (sysDrive.Name()); - tempFilename.Insert(0,sysDriveName); - tempFilename.Insert(2,KFilenameBase); - - RFile file; - User::LeaveIfError(file.Open(iFs, tempFilename, EFileRead)); - CleanupClosePushL(file); - TInt size = 0; - User::LeaveIfError(file.Size(size)); - - iInput = HBufC8::NewMaxL(size); - TPtr8 ptr = iInput->Des(); - User::LeaveIfError(file.Read(ptr)); - - CleanupStack::PopAndDestroy(&file); - } - -void CActionTestPKCS8::SetExpectedOutcomeL(const TDesC8& aOutcome) - { - if (aOutcome == KOutcomeNoMatch) - { - iExpectedOutcome = ENoMatch; - } - else if (aOutcome == KOutcomeMatchesPKCS8) - { - iExpectedOutcome = EMatchesPKCS8; - } - else if (aOutcome == KOutcomeMatchesEncryptedPKCS8) - { - iExpectedOutcome = EMatchesEncryptedPKCS8; - } - else - { - User::Leave(KErrArgument); - } - } - -void CActionTestPKCS8::DoReportAction(void) - { - } - -void CActionTestPKCS8::DoCheckResult(TInt) - { - } - -void CActionTestPKCS8::PerformAction(TRequestStatus& aStatus) - { - TRequestStatus* status = &aStatus; - iResult = EFalse; - - TBool matchesPKCS8 = TASN1DecPKCS8::IsPKCS8Data(*iInput); - TBool matchesEncryptedPKCS8 = TASN1DecPKCS8::IsEncryptedPKCS8Data(*iInput); - - if (matchesPKCS8 && matchesEncryptedPKCS8) - { - iOut.writeString(_L("!! Data matches both cleartext and encrypted pkcs8\n")); - User::Leave(KErrGeneral); - } - - TOutcome outcome = ENoMatch; - - if (matchesPKCS8) - { - iOut.writeString(_L("Data matches cleartext pkcs8\n")); - outcome = EMatchesPKCS8; - } - else if (matchesEncryptedPKCS8) - { - iOut.writeString(_L("Data matches encrypted pkcs8\n")); - outcome = EMatchesEncryptedPKCS8; - } - else - { - iOut.writeString(_L("Data doesn't match anything\n")); - } - - if(outcome == iExpectedOutcome) - { - iResult = ETrue; - } - - User::RequestComplete(status, KErrNone); - iActionState = CTestAction::EPostrequisite; - } +/* +* Copyright (c) 1998-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: +* tactiondecodepkcs5.cpp +* +*/ + + +#include "tactiontestpkcs8.h" +#include "t_input.h" +#include "t_output.h" +#include +#include +#include +#include + +_LIT8(KFilenameStart, ""); +_LIT8(KMatchesStart, ""); + +_LIT8(KOutcomeNoMatch, "noMatch"); +_LIT8(KOutcomeMatchesPKCS8, "pkcs8"); +_LIT8(KOutcomeMatchesEncryptedPKCS8, "encryptedPkcs8"); + +_LIT(KFilenameBase, "\\tkeystore\\data\\"); + +CTestAction* CActionTestPKCS8::NewL(RFs& aFs, + CConsoleBase& aConsole, + Output& aOut, + const TTestActionSpec& aTestActionSpec) + { + CActionTestPKCS8* self = new(ELeave) CActionTestPKCS8(aFs, aConsole, aOut); + CleanupStack::PushL(self); + self->ConstructL(aTestActionSpec); + CleanupStack::Pop(); + return self; + } + +CActionTestPKCS8::~CActionTestPKCS8() + { + delete iInput; + } + +CActionTestPKCS8::CActionTestPKCS8(RFs& aFs, + CConsoleBase& aConsole, + Output& aOut) + +: CTestAction(aConsole, aOut), iFs(aFs) + { + } + +void CActionTestPKCS8::ConstructL(const TTestActionSpec& aTestActionSpec) + { + CTestAction::ConstructL(aTestActionSpec); + ReadInputFileL(Input::ParseElement(aTestActionSpec.iActionBody, KFilenameStart)); + SetExpectedOutcomeL(Input::ParseElement(aTestActionSpec.iActionBody, KMatchesStart)); + } + +void CActionTestPKCS8::ReadInputFileL(const TDesC8& aFilename) + { + if (aFilename == KNullDesC8) + { + User::Leave(KErrArgument); + } + + TFileName tempFilename; + tempFilename.Copy(aFilename); // convert from 8 -> 16 bit descriptor + + TDriveUnit sysDrive = RFs::GetSystemDrive(); + TDriveName sysDriveName (sysDrive.Name()); + tempFilename.Insert(0,sysDriveName); + tempFilename.Insert(2,KFilenameBase); + + RFile file; + User::LeaveIfError(file.Open(iFs, tempFilename, EFileRead)); + CleanupClosePushL(file); + TInt size = 0; + User::LeaveIfError(file.Size(size)); + + iInput = HBufC8::NewMaxL(size); + TPtr8 ptr = iInput->Des(); + User::LeaveIfError(file.Read(ptr)); + + CleanupStack::PopAndDestroy(&file); + } + +void CActionTestPKCS8::SetExpectedOutcomeL(const TDesC8& aOutcome) + { + if (aOutcome == KOutcomeNoMatch) + { + iExpectedOutcome = ENoMatch; + } + else if (aOutcome == KOutcomeMatchesPKCS8) + { + iExpectedOutcome = EMatchesPKCS8; + } + else if (aOutcome == KOutcomeMatchesEncryptedPKCS8) + { + iExpectedOutcome = EMatchesEncryptedPKCS8; + } + else + { + User::Leave(KErrArgument); + } + } + +void CActionTestPKCS8::DoReportAction(void) + { + } + +void CActionTestPKCS8::DoCheckResult(TInt) + { + } + +void CActionTestPKCS8::PerformAction(TRequestStatus& aStatus) + { + TRequestStatus* status = &aStatus; + iResult = EFalse; + + TBool matchesPKCS8 = TASN1DecPKCS8::IsPKCS8Data(*iInput); + TBool matchesEncryptedPKCS8 = TASN1DecPKCS8::IsEncryptedPKCS8Data(*iInput); + + if (matchesPKCS8 && matchesEncryptedPKCS8) + { + iOut.writeString(_L("!! Data matches both cleartext and encrypted pkcs8\n")); + User::Leave(KErrGeneral); + } + + TOutcome outcome = ENoMatch; + + if (matchesPKCS8) + { + iOut.writeString(_L("Data matches cleartext pkcs8\n")); + outcome = EMatchesPKCS8; + } + else if (matchesEncryptedPKCS8) + { + iOut.writeString(_L("Data matches encrypted pkcs8\n")); + outcome = EMatchesEncryptedPKCS8; + } + else + { + iOut.writeString(_L("Data doesn't match anything\n")); + } + + if(outcome == iExpectedOutcome) + { + iResult = ETrue; + } + + User::RequestComplete(status, KErrNone); + iActionState = CTestAction::EPostrequisite; + }