diff -r 641f389e9157 -r a71299154b21 crypto/weakcrypto/test/tbigint/tmontgomeryvector.cpp --- a/crypto/weakcrypto/test/tbigint/tmontgomeryvector.cpp Tue Aug 31 17:00:08 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2002-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 "tmontgomeryvector.h" -#include "t_input.h" -#include -#include "../../source/bigint/mont.h" - -CTestAction* CMontgomeryVector::NewL(RFs& aFs, CConsoleBase& aConsole, - Output& aOut, const TTestActionSpec& aTestActionSpec) - { - CTestAction* self = CMontgomeryVector::NewLC(aFs, aConsole, - aOut, aTestActionSpec); - CleanupStack::Pop(); - return self; - } - -CTestAction* CMontgomeryVector::NewLC(RFs& aFs, CConsoleBase& aConsole, - Output& aOut, const TTestActionSpec& aTestActionSpec) - { - CMontgomeryVector* self = new(ELeave) CMontgomeryVector(aFs, aConsole, aOut); - CleanupStack::PushL(self); - self->ConstructL(aTestActionSpec); - return self; - } - -CMontgomeryVector::~CMontgomeryVector() - { - delete iBody; - delete iA; - delete iB; - delete iModulus; - delete iAns; - } - -CMontgomeryVector::CMontgomeryVector(RFs& aFs, CConsoleBase& aConsole, - Output& aOut) : CTestAction(aConsole, aOut), iFs(aFs) - { - } - -void CMontgomeryVector::ConstructL(const TTestActionSpec& aTestActionSpec) - { - CTestAction::ConstructL(aTestActionSpec); - iBody = HBufC8::NewL(aTestActionSpec.iActionBody.Length()); - iBody->Des().Copy(aTestActionSpec.iActionBody); - - iA = Input::ParseElementHexL(*iBody, _L8("")); - iB = Input::ParseElementHexL(*iBody, _L8("")); - iModulus = Input::ParseElementHexL(*iBody, _L8("")); - iAns = Input::ParseElementHexL(*iBody, _L8("")); - TPtrC8 op = Input::ParseElement(*iBody, _L8("")); - if( op == _L8("multiply") ) - { - iOp = EMultiply; - } - else if( op == _L8("square") ) - { - iOp = ESquare; - } - else if( op == _L8("reduce") ) - { - iOp = EReduce; - } - else if( op == _L8("exponentiate") ) - { - iOp = EExponentiate; - } - else - { - User::Panic(_L("tmontgomeryvector"), 1); - } - } - -void CMontgomeryVector::DoPerformPrerequisite(TRequestStatus& aStatus) - { - TRequestStatus* status = &aStatus; - User::RequestComplete(status, KErrNone); - iActionState = CTestAction::EAction; - } - -void CMontgomeryVector::DoPerformPostrequisite(TRequestStatus& aStatus) - { - TRequestStatus* status = &aStatus; - iFinished = ETrue; - User::RequestComplete(status, KErrNone); - } - -void CMontgomeryVector::DoReportAction(void) - { - } - -void CMontgomeryVector::DoCheckResult(TInt) - { - } - -void CMontgomeryVector::PerformAction(TRequestStatus& aStatus) - { - __UHEAP_MARK; - TRequestStatus* status = &aStatus; - iResult = ETrue; - - RInteger a = RInteger::NewL(*iA); - CleanupStack::PushL(a); - RInteger b = RInteger::NewL(*iB); - CleanupStack::PushL(b); - RInteger modulus = RInteger::NewL(*iModulus); - CleanupStack::PushL(modulus); - RInteger ans = RInteger::NewL(*iAns); - CleanupStack::PushL(ans); - CMontgomeryStructure* mont = CMontgomeryStructure::NewLC(modulus); - //we don't own out at any point, it remains the propery of mont - const TInteger* out = 0; - switch(iOp) - { - case EMultiply: - out = &(mont->MultiplyL(a, b)); - break; - case ESquare: - out = &(mont->SquareL(a)); - break; - case EReduce: - out = &(mont->ReduceL(a)); - break; - case EExponentiate: - out = &(mont->ExponentiateL(a, b)); - break; - default: - User::Panic(_L("tbasicmathsvector"), 2); - break; - } - - if( *out != ans ) - { - iResult = EFalse; - } - CleanupStack::PopAndDestroy(mont); - CleanupStack::PopAndDestroy(4); //ans, modulus, b,a - - User::RequestComplete(status, KErrNone); - iActionState = CTestAction::EPostrequisite; - __UHEAP_MARKEND; - } -