crypto/weakcrypto/test/tasymmetric/trsavector.cpp
branchRCL_3
changeset 62 a71299154b21
parent 61 641f389e9157
child 63 94225563cd41
--- a/crypto/weakcrypto/test/tasymmetric/trsavector.cpp	Tue Aug 31 17:00:08 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,806 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-#include "trsavector.h"
-#include "tvectorutils.h"
-#include "t_input.h"
-#include <bigint.h>
-#include "performancetest.h"
-#include "tbrokenrandom.h"
-_LIT8(KPlaintextStart, "<plaintext>");
-_LIT8(KPlaintextEnd, "</plaintext>");
-_LIT8(KCiphertextStart, "<ciphertext>");
-_LIT8(KCiphertextEnd, "</ciphertext>");
-_LIT8(KSignatureStart, "<signature>");
-_LIT8(KSignatureEnd, "</signature>");
-_LIT8(KDigestInfoStart, "<digestInfo>");
-_LIT8(KDigestInfoEnd, "</digestInfo>");
-
-////////////////////////////////////////////////////////////////////////////////
-// CRSAEncryptVector
-////////////////////////////////////////////////////////////////////////////////
-
-CTestAction* CRSAEncryptVector::NewL(RFs& aFs,
-                               CConsoleBase& aConsole,
-                               Output& aOut, 
-                               const TTestActionSpec& aTestActionSpec)
-	{
-	CTestAction* self = CRSAEncryptVector::NewLC(aFs, aConsole,
-		aOut, aTestActionSpec);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestAction* CRSAEncryptVector::NewLC(RFs& aFs,
-                                CConsoleBase& aConsole,
-                                Output& aOut, 
-                                const TTestActionSpec& aTestActionSpec)
-	{
-	CRSAEncryptVector* self = new(ELeave) CRSAEncryptVector(aFs, aConsole, aOut);
-	CleanupStack::PushL(self);
-	self->ConstructL(aTestActionSpec);
-	return self;
-	}
-
-CRSAEncryptVector::~CRSAEncryptVector()
-	{
-	delete iPubKey;
-	delete iPlaintext;
-	delete iCiphertext;
-	}
-
-CRSAEncryptVector::CRSAEncryptVector(RFs& /*aFs*/, 
-                                     CConsoleBase& aConsole,
-                                     Output& aOut)					 
-: CVectorTest(aConsole, aOut)
-	{
-	}
-
-void CRSAEncryptVector::ConstructL(const TTestActionSpec& aTestActionSpec)
-	{
-	CVectorTest::ConstructL(aTestActionSpec);
-
-    iPubKey = VectorUtils::ReadRSAPublicKeyL(aTestActionSpec.iActionBody);
-
-	TPtrC8 ptextIn = Input::ParseElement(aTestActionSpec.iActionBody, KPlaintextStart, KPlaintextEnd);
-	iPlaintext = VectorUtils::ParseBinaryL(ptextIn);
-
-	TPtrC8 ctextIn = Input::ParseElement(aTestActionSpec.iActionBody, KCiphertextStart, KCiphertextEnd);
-	iCiphertext = VectorUtils::ParseBinaryL(ctextIn);
-	}
-
-void CRSAEncryptVector::DoPerformanceTestActionL()
-{
-	__UHEAP_MARK;
-
-	CRSAPKCS1v15Encryptor* encryptor = CRSAPKCS1v15Encryptor::NewL(*iPubKey);
-	CleanupStack::PushL(encryptor);
- 
-	TTimeIntervalMicroSeconds encryptTime(0);
-	TTime start, end;
-	TTimeIntervalSeconds diff(0);
-	const TTimeIntervalSeconds KIterationTime(iPerfTestIterations);
-
-	TInt noEncryptions = 0;
-	HBufC8 *eResult = HBufC8::NewLC(encryptor->MaxOutputLength());
-	TPtr8 ePtr = eResult->Des();
-	TPtr8* eResultPtr = &ePtr;
-	
-//	Time encryption	
-	CRandomIncrementing* brokenRandom = new(ELeave)CRandomIncrementing(1);
-	SetThreadRandomLC(brokenRandom);
-	start.UniversalTime();
-	while (diff < KIterationTime)
-		{
-		eResultPtr->Zero();
-		encryptor->EncryptL(*iPlaintext, *eResultPtr);
-		noEncryptions++;
-		end.UniversalTime();
-		end.SecondsFrom(start, diff);
-		}
-	end.UniversalTime();
-	encryptTime = end.MicroSecondsFrom(start);
-	TReal encrypttime = I64REAL(encryptTime.Int64());
-	CleanupStack::PopAndDestroy(1); //SetThreadRandomLC
-	
-	iResult = ETrue;
-	if (*iCiphertext!=*eResult)
-	{
-		iResult = EFalse;		
-	}
-
-    CleanupStack::PopAndDestroy(2);		// encryptor, eResult
-
-	__UHEAP_MARKEND;
-
-	if (iResult)
-	{
-		TReal rate = I64REAL(encryptTime.Int64()) / noEncryptions;
-		TBuf<256> buf;
-		_LIT(KEncryptTime, "\tEncrypt Time: %f us/encryption (%i encryptions in %f us)\r\n");
- 		buf.Format(KEncryptTime, rate, noEncryptions, encrypttime);
-		iOut.writeString(buf);
-	}
-	else
-	{
-		_LIT(KNoTimingInfo, "\tTest Failed! No benchmark data\n");
-		iOut.writeString(KNoTimingInfo);
-	}
-}
-
-void CRSAEncryptVector::DoPerformActionL()
-	{
-	__UHEAP_MARK;
-
-	CRSAPKCS1v15Encryptor* encryptor = CRSAPKCS1v15Encryptor::NewL(*iPubKey);
-	CleanupStack::PushL(encryptor);
-    HBufC8* encryptBuf = HBufC8::NewLC(encryptor->MaxOutputLength());
-	TPtr8 encryptPtr = encryptBuf->Des();
-	CRandomIncrementing* brokenRandom = new(ELeave)CRandomIncrementing(1);
-	SetThreadRandomLC(brokenRandom);
-	encryptor->EncryptL(*iPlaintext, encryptPtr);
-	CleanupStack::PopAndDestroy(1); //threadrandom;
-    iResult = (*iCiphertext == *encryptBuf);
-
-	CleanupStack::PopAndDestroy(encryptBuf);
-    CleanupStack::PopAndDestroy(encryptor);
-
-	__UHEAP_MARKEND;
-	}
-
-////////////////////////////////////////////////////////////////////////////////
-// CRSADecryptVector
-////////////////////////////////////////////////////////////////////////////////
-
-CTestAction* CRSADecryptVector::NewL(RFs& aFs,
-                               CConsoleBase& aConsole,
-                               Output& aOut, 
-                               const TTestActionSpec& aTestActionSpec)
-	{
-	CTestAction* self = CRSADecryptVector::NewLC(aFs, aConsole,
-		aOut, aTestActionSpec);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestAction* CRSADecryptVector::NewLC(RFs& aFs,
-                                CConsoleBase& aConsole,
-                                Output& aOut, 
-                                const TTestActionSpec& aTestActionSpec)
-	{
-	CRSADecryptVector* self = new(ELeave) CRSADecryptVector(aFs, aConsole, aOut);
-	CleanupStack::PushL(self);
-	self->ConstructL(aTestActionSpec);
-	return self;
-	}
-
-CRSADecryptVector::~CRSADecryptVector()
-	{
-	delete iPrivKey;
-	delete iPlaintext;
-	delete iCiphertext;
-	}
-
-CRSADecryptVector::CRSADecryptVector(RFs& /*aFs*/, 
-                                     CConsoleBase& aConsole,
-                                     Output& aOut)					 
-: CVectorTest(aConsole, aOut)
-	{
-	}
-
-void CRSADecryptVector::ConstructL(const TTestActionSpec& aTestActionSpec)
-	{
-	CVectorTest::ConstructL(aTestActionSpec);
-
-    iPrivKey = VectorUtils::ReadRSAPrivateKeyL(aTestActionSpec.iActionBody);
-
-	TPtrC8 ctextIn = Input::ParseElement(aTestActionSpec.iActionBody, KCiphertextStart, KCiphertextEnd);
-	iCiphertext = VectorUtils::ParseBinaryL(ctextIn);
-
-	TPtrC8 ptextIn = Input::ParseElement(aTestActionSpec.iActionBody, KPlaintextStart, KPlaintextEnd);
-	iPlaintext = VectorUtils::ParseBinaryL(ptextIn);
-	}
-
-void CRSADecryptVector::DoPerformanceTestActionL()
-{
-	__UHEAP_MARK;
-
-    CRSAPKCS1v15Decryptor* decryptor = CRSAPKCS1v15Decryptor::NewL(*iPrivKey);
-	CleanupStack::PushL(decryptor);
-
-	TTimeIntervalMicroSeconds decryptTime(0);
-	TTime start, end;
-	TTimeIntervalSeconds diff(0);
-	const TTimeIntervalSeconds KIterationTime(iPerfTestIterations);
-
-	HBufC8 *dResult = HBufC8::NewLC(decryptor->MaxOutputLength());
-	TPtr8 dPtr = dResult->Des();
-	TPtr8* dResultPtr = &dPtr;
-	TInt noDecryptions = 0;
-
-//	Time decryption	
-	start.UniversalTime();
-	while (diff < KIterationTime)
-		{
-		decryptor->DecryptL(*iCiphertext, *dResultPtr);
-		noDecryptions++;
-		end.UniversalTime();
-		end.SecondsFrom(start, diff);
-		}
-	end.UniversalTime();
-	decryptTime = end.MicroSecondsFrom(start);
-	TReal decrypttime = I64REAL(decryptTime.Int64());
-	iResult = ETrue;
-	if (*iPlaintext!=*dResult)
-	{
-		iResult = EFalse;		
-	}
-
-    CleanupStack::PopAndDestroy(2);		// decryptor, dResult
-
-	__UHEAP_MARKEND;
-	
-	if (iResult)
-	{
-		TReal rate = I64REAL(decryptTime.Int64()) / noDecryptions;
-		TBuf<256> buf;
-		_LIT(KDecryptTime, "\tDecrypt Time: %f us/decryption (%i decryptions in %f us)\r\n");
-  		buf.Format(KDecryptTime, rate, noDecryptions, decrypttime);
-		iOut.writeString(buf);
-	}
-	else
-	{
-		_LIT(KNoTimingInfo, "\tTest Failed! No benchmark data\n");
-		iOut.writeString(KNoTimingInfo);
-	}
-}
-
-void CRSADecryptVector::DoPerformActionL()
-	{
-	__UHEAP_MARK;
-
-    CRSAPKCS1v15Decryptor* decryptor = CRSAPKCS1v15Decryptor::NewL(*iPrivKey);
-	CleanupStack::PushL(decryptor);
-
-	HBufC8* decryptBuf = HBufC8::NewLC(decryptor->MaxOutputLength());
-	TPtr8 decryptPtr = decryptBuf->Des();
-	TRAPD(err, decryptor->DecryptL(*iCiphertext, decryptPtr));
-    iResult = (err == KErrNone) && (*iPlaintext == *decryptBuf);
-
- 	CleanupStack::PopAndDestroy(decryptBuf);
- 	CleanupStack::PopAndDestroy(decryptor);
-
-	__UHEAP_MARKEND;
-	}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// CRSADecryptVectorCRT
-////////////////////////////////////////////////////////////////////////////////
-CTestAction* CRSADecryptVectorCRT::NewL(RFs& aFs,
-                               CConsoleBase& aConsole,
-                               Output& aOut, 
-                               const TTestActionSpec& aTestActionSpec)
-	{
-	CTestAction* self = CRSADecryptVectorCRT::NewLC(aFs, aConsole,
-		aOut, aTestActionSpec);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestAction* CRSADecryptVectorCRT::NewLC(RFs& aFs,
-                                CConsoleBase& aConsole,
-                                Output& aOut, 
-                                const TTestActionSpec& aTestActionSpec)
-	{
-	CRSADecryptVectorCRT* self = new(ELeave) CRSADecryptVectorCRT(aFs, aConsole, aOut);
-	CleanupStack::PushL(self);
-	self->ConstructL(aTestActionSpec);
-	return self;
-	}
-
-CRSADecryptVectorCRT::~CRSADecryptVectorCRT()
-	{
-	delete iPrivKey;
-	delete iPlaintext;
-	delete iCiphertext;
-	}
-
-CRSADecryptVectorCRT::CRSADecryptVectorCRT(RFs& /*aFs*/, 
-                                     CConsoleBase& aConsole,
-                                     Output& aOut)					 
-: CVectorTest(aConsole, aOut)
-	{
-	}
-
-void CRSADecryptVectorCRT::ConstructL(const TTestActionSpec& aTestActionSpec)
-	{
-	CVectorTest::ConstructL(aTestActionSpec);
-
-    iPrivKey = VectorUtils::ReadRSAPrivateKeyCRTL(aTestActionSpec.iActionBody);
-
-	TPtrC8 ctextIn = Input::ParseElement(aTestActionSpec.iActionBody, KCiphertextStart, KCiphertextEnd);
-	iCiphertext = VectorUtils::ParseBinaryL(ctextIn);
-
-	TPtrC8 ptextIn = Input::ParseElement(aTestActionSpec.iActionBody, KPlaintextStart, KPlaintextEnd);
-	iPlaintext = VectorUtils::ParseBinaryL(ptextIn);
-	}
-
-void CRSADecryptVectorCRT::DoPerformanceTestActionL()
-{
-	__UHEAP_MARK;
-
-    CRSAPKCS1v15Decryptor* decryptor = CRSAPKCS1v15Decryptor::NewL(*iPrivKey);
-	CleanupStack::PushL(decryptor);
-
-	TTimeIntervalMicroSeconds decryptTime(0);
-	TTime start, end;
-	TTimeIntervalSeconds diff(0);
-	const TTimeIntervalSeconds KIterationTime(iPerfTestIterations);
-	
-	TInt noDecryptions = 0;
-	HBufC8 *dResult = HBufC8::NewLC(decryptor->MaxOutputLength());
-	TPtr8 dPtr = dResult->Des();
-	TPtr8* dResultPtr = &dPtr;
-	
-//	Time decryption	
-	start.UniversalTime();
-	while (diff < KIterationTime)
-		{
-		decryptor->DecryptL(*iCiphertext, *dResultPtr);
-		noDecryptions++;
-		end.UniversalTime();
-		end.SecondsFrom(start, diff);
-		}
-	end.UniversalTime();
-	decryptTime = end.MicroSecondsFrom(start);
-	TReal decrypttime = I64REAL(decryptTime.Int64());
-		
-	iResult = ETrue;
-	if (*iPlaintext!=*dResult)
-	{
-		iResult = EFalse;		
-	}
-
-
-    CleanupStack::PopAndDestroy(2);		// decryptor, dResult
-
-	__UHEAP_MARKEND;
-	
-	if (iResult)
-	{
-		TReal rate = I64REAL(decryptTime.Int64()) / noDecryptions;
-		TBuf<256> buf;
-		_LIT(KDecryptTime, "\tDecrypt Time: %f us/decryption (%i decryptions in %f us)\r\n");
-  		buf.Format(KDecryptTime, rate, noDecryptions, decrypttime);
-		iOut.writeString(buf);
-	}
-	else
-	{
-		_LIT(KNoTimingInfo, "\tTest Failed! No benchmark data\n");
-		iOut.writeString(KNoTimingInfo);
-	}
-}
-
-void CRSADecryptVectorCRT::DoPerformActionL()
-	{
-	__UHEAP_MARK;
-
-    CRSAPKCS1v15Decryptor* decryptor = CRSAPKCS1v15Decryptor::NewL(*iPrivKey);
-	CleanupStack::PushL(decryptor);
-
-	HBufC8* decryptBuf = HBufC8::NewLC(decryptor->MaxOutputLength());
-	TPtr8 decryptPtr = decryptBuf->Des();
-	TRAPD(err, decryptor->DecryptL(*iCiphertext, decryptPtr));
-    iResult = (err == KErrNone) && (*iPlaintext == *decryptBuf);
-
- 	CleanupStack::PopAndDestroy(decryptBuf);
- 	CleanupStack::PopAndDestroy(decryptor);
-
-	__UHEAP_MARKEND;
-	}
-
-////////////////////////////////////////////////////////////////////////////////
-// CRSASignVector
-////////////////////////////////////////////////////////////////////////////////
-
-CTestAction* CRSASignVector::NewL(RFs& aFs,
-                                  CConsoleBase& aConsole,
-                                  Output& aOut, 
-                                  const TTestActionSpec& aTestActionSpec)
-	{
-	CTestAction* self = CRSASignVector::NewLC(aFs, aConsole, aOut, aTestActionSpec);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestAction* CRSASignVector::NewLC(RFs& aFs,
-                                   CConsoleBase& aConsole,
-                                   Output& aOut, 
-                                   const TTestActionSpec& aTestActionSpec)
-	{
-	CRSASignVector* self = new(ELeave) CRSASignVector(aFs, aConsole, aOut);
-	CleanupStack::PushL(self);
-	self->ConstructL(aTestActionSpec);
-	return self;
-	}
-
-CRSASignVector::~CRSASignVector()
-	{
-    delete iPrivKey;
-	delete iDigestInfo;
-	delete iSignature;
-	}
-
-CRSASignVector::CRSASignVector(RFs& /*aFs*/, 
-                               CConsoleBase& aConsole,
-                               Output& aOut)					 
-    : CVectorTest(aConsole, aOut)
-	{
-	}
-
-void CRSASignVector::ConstructL(const TTestActionSpec& aTestActionSpec)
-	{
-	CVectorTest::ConstructL(aTestActionSpec);
-
-    iPrivKey = VectorUtils::ReadRSAPrivateKeyL(aTestActionSpec.iActionBody);
-
-	TPtrC8 digestInfoIn = Input::ParseElement(aTestActionSpec.iActionBody, KDigestInfoStart, KDigestInfoEnd);
-	iDigestInfo = VectorUtils::ParseBinaryL(digestInfoIn);
-
-	TPtrC8 signatureIn = Input::ParseElement(aTestActionSpec.iActionBody, KSignatureStart, KSignatureEnd);
-	RInteger integer = VectorUtils::ParseIntegerL(signatureIn);
-	CleanupStack::PushL(integer);
-	iSignature = CRSASignature::NewL(integer);
-	CleanupStack::Pop(&integer);
-	}
-
-void CRSASignVector::DoPerformanceTestActionL()
-{
-	__UHEAP_MARK;
-
-    CRSAPKCS1v15Signer* signer = CRSAPKCS1v15Signer::NewL(*iPrivKey);
-	CleanupStack::PushL(signer);
-
-	TPtrC8 digestPtr = iDigestInfo->Des();
-
-	TTimeIntervalMicroSeconds signTime(0);
-	TTime start, end;
-	TTimeIntervalSeconds diff(0);
-	const TTimeIntervalSeconds KIterationTime(iPerfTestIterations);
-
-	TInt noSignings = 0;
-
-	const CRSASignature *testSig = 0;
-	
-//	Time signing
-	start.UniversalTime();
-	while (diff < KIterationTime)
-		{
-		testSig = signer->SignL(digestPtr);
-		delete testSig;
-		noSignings++;
-		end.UniversalTime();
-		end.SecondsFrom(start, diff);
-		}
-	end.UniversalTime();
-	signTime = end.MicroSecondsFrom(start);
-	TReal signtime = I64REAL(signTime.Int64());
-	
-	iResult = ETrue;
-	testSig = signer->SignL(digestPtr);
-	if (!(*testSig==*iSignature))
-	{
-		iResult = EFalse;		
-	}
-	delete testSig;
-
-	CleanupStack::PopAndDestroy();		//	signer
-
-	__UHEAP_MARKEND;
-	
-	if (iResult)
-	{
-		TReal rate = I64REAL(signTime.Int64()) / noSignings;
-		TBuf<256> buf;
-		_LIT(KSignTime, "\tSign Time: %f us/signing (%i signings in %f us)\r\n");
-		buf.Format(KSignTime, rate, noSignings, signtime);
-		iOut.writeString(buf);
-	}
-	else
-	{
-		_LIT(KNoTimingInfo, "\tTest Failed! No benchmark data\n");
-		iOut.writeString(KNoTimingInfo);
-	}
-}
-
-void CRSASignVector::DoPerformActionL()
-	{
-	__UHEAP_MARK;
-
-	CRSAPKCS1v15Signer* digestSigner = CRSAPKCS1v15Signer::NewL(*iPrivKey);
-	CleanupStack::PushL(digestSigner);
-	
-	TPtrC8 digestPtr2 = iDigestInfo->Des();
-	const CRSASignature* testSig2 = digestSigner->SignL(digestPtr2);
-    CleanupStack::PushL(const_cast<CRSASignature*>(testSig2));
-    iResult = (*testSig2 == *iSignature);
-
-	CleanupStack::PopAndDestroy(const_cast<CRSASignature*>(testSig2));
-	CleanupStack::PopAndDestroy(digestSigner);
-
-	__UHEAP_MARKEND;
-	}
-
-////////////////////////////////////////////////////////////////////////////////
-// CRSASignVectorCRT
-////////////////////////////////////////////////////////////////////////////////
-
-CTestAction* CRSASignVectorCRT::NewL(RFs& aFs,
-                                  CConsoleBase& aConsole,
-                                  Output& aOut, 
-                                  const TTestActionSpec& aTestActionSpec)
-	{
-	CTestAction* self = CRSASignVectorCRT::NewLC(aFs, aConsole, aOut, aTestActionSpec);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestAction* CRSASignVectorCRT::NewLC(RFs& aFs,
-                                   CConsoleBase& aConsole,
-                                   Output& aOut, 
-                                   const TTestActionSpec& aTestActionSpec)
-	{
-	CRSASignVectorCRT* self = new(ELeave) CRSASignVectorCRT(aFs, aConsole, aOut);
-	CleanupStack::PushL(self);
-	self->ConstructL(aTestActionSpec);
-	return self;
-	}
-
-CRSASignVectorCRT::~CRSASignVectorCRT()
-	{
-    delete iPrivKey;
-	delete iDigestInfo;
-	delete iSignature;
-	}
-
-CRSASignVectorCRT::CRSASignVectorCRT(RFs& /*aFs*/, 
-                               CConsoleBase& aConsole,
-                               Output& aOut)					 
-    : CVectorTest(aConsole, aOut)
-	{
-	}
-
-void CRSASignVectorCRT::ConstructL(const TTestActionSpec& aTestActionSpec)
-	{
-	CVectorTest::ConstructL(aTestActionSpec);
-
-    iPrivKey = VectorUtils::ReadRSAPrivateKeyCRTL(aTestActionSpec.iActionBody);
-
-	TPtrC8 digestInfoIn = Input::ParseElement(aTestActionSpec.iActionBody, KDigestInfoStart, KDigestInfoEnd);
-	iDigestInfo = VectorUtils::ParseBinaryL(digestInfoIn);
-
-	TPtrC8 signatureIn = Input::ParseElement(aTestActionSpec.iActionBody, KSignatureStart, KSignatureEnd);
-	RInteger integer = VectorUtils::ParseIntegerL(signatureIn);
-	CleanupStack::PushL(integer);
-	iSignature = CRSASignature::NewL(integer);
-	CleanupStack::Pop(&integer);
-	}
-
-void CRSASignVectorCRT::DoPerformanceTestActionL()
-{
-	__UHEAP_MARK;
-
-    CRSAPKCS1v15Signer* signer = CRSAPKCS1v15Signer::NewL(*iPrivKey);
-	CleanupStack::PushL(signer);
-
-	TPtrC8 digestPtr = iDigestInfo->Des();
-
-	TTimeIntervalMicroSeconds signTime(0);
-	TTime start, end;
-	TTimeIntervalSeconds diff(0);
-	const TTimeIntervalSeconds KIterationTime(iPerfTestIterations);
-	TInt noSignings = 0;
-
-	const CRSASignature *testSig = NULL;
-	
-//	Time signing
-	start.UniversalTime();
-	while (diff < KIterationTime)
-		{
-		testSig = signer->SignL(digestPtr);
-		delete testSig;
-		noSignings++;
-		end.UniversalTime();
-		end.SecondsFrom(start, diff);
-		}
-	end.UniversalTime();
-	signTime = end.MicroSecondsFrom(start);
-	TReal signtime = I64REAL(signTime.Int64());
-	
-	testSig = signer->SignL(digestPtr);
-	iResult = ETrue;
-	if (!(*testSig==*iSignature))
-	{
-		iResult = EFalse;		
-	}
-	delete testSig;
-
-	CleanupStack::PopAndDestroy(); // signer
-
-	__UHEAP_MARKEND;
-	
-	if (iResult)
-	{
-		TReal rate = I64REAL(signTime.Int64()) / noSignings;
-		TBuf<256> buf;
-		_LIT(KSignTime, "\tSign Time: %f us/signing (%i signings in %f us)\r\n");
-		buf.Format(KSignTime, rate, noSignings, signtime);
-		iOut.writeString(buf);
-	}
-	else
-	{
-		_LIT(KNoTimingInfo, "\tTest Failed! No benchmark data\n");
-		iOut.writeString(KNoTimingInfo);
-	}
-}
-
-void CRSASignVectorCRT::DoPerformActionL()
-	{
-	__UHEAP_MARK;
-
-	CRSAPKCS1v15Signer* signer = CRSAPKCS1v15Signer::NewL(*iPrivKey);
-	CleanupStack::PushL(signer);
-
-	TPtrC8 digestPtr = iDigestInfo->Des();
-	const CRSASignature* testSig = signer->SignL(digestPtr);
-    CleanupStack::PushL(const_cast<CRSASignature*>(testSig));	
-
-#ifdef _DEBUG 
-	HBufC8* theResultSig = testSig->S().BufferLC();
-	HBufC8* theExpectedSig = iSignature->S().BufferLC();
-	iResult = (theResultSig->Compare(*theExpectedSig)) ==0 ? ETrue : EFalse;
-	CleanupStack::PopAndDestroy(2);	
-#endif	
-	
-	iResult = (*testSig == *iSignature);
-
-	CleanupStack::PopAndDestroy(const_cast<CRSASignature*>(testSig));
-    CleanupStack::PopAndDestroy(signer);
-
-	__UHEAP_MARKEND;
-	}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// CRSAVerifyVector
-////////////////////////////////////////////////////////////////////////////////
-
-CTestAction* CRSAVerifyVector::NewL(RFs& aFs,
-                                  CConsoleBase& aConsole,
-                                  Output& aOut, 
-                                  const TTestActionSpec& aTestActionSpec)
-	{
-	CTestAction* self = CRSAVerifyVector::NewLC(aFs, aConsole, aOut, aTestActionSpec);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestAction* CRSAVerifyVector::NewLC(RFs& aFs,
-                                   CConsoleBase& aConsole,
-                                   Output& aOut, 
-                                   const TTestActionSpec& aTestActionSpec)
-	{
-	CRSAVerifyVector* self = new(ELeave) CRSAVerifyVector(aFs, aConsole, aOut);
-	CleanupStack::PushL(self);
-	self->ConstructL(aTestActionSpec);
-	return self;
-	}
-
-CRSAVerifyVector::~CRSAVerifyVector()
-	{
-    delete iPubKey;
-	delete iDigestInfo;
-	delete iSignature;
-	}
-
-CRSAVerifyVector::CRSAVerifyVector(RFs& /*aFs*/, 
-                                   CConsoleBase& aConsole,
-                                   Output& aOut)					 
-    : CVectorTest(aConsole, aOut)
-	{
-	}
-
-void CRSAVerifyVector::ConstructL(const TTestActionSpec& aTestActionSpec)
-	{
-	CVectorTest::ConstructL(aTestActionSpec);
-
-    iPubKey = VectorUtils::ReadRSAPublicKeyL(aTestActionSpec.iActionBody);
-
-	TPtrC8 digestInfoIn = Input::ParseElement(aTestActionSpec.iActionBody, KDigestInfoStart, KDigestInfoEnd);
-	iDigestInfo = VectorUtils::ParseBinaryL(digestInfoIn);
-
-	TPtrC8 signatureIn = Input::ParseElement(aTestActionSpec.iActionBody, KSignatureStart, KSignatureEnd);
-	RInteger integer = VectorUtils::ParseIntegerL(signatureIn);
-	CleanupStack::PushL(integer);
-	iSignature = CRSASignature::NewL(integer);
-	CleanupStack::Pop(&integer);
-	}
-
-void CRSAVerifyVector::DoPerformanceTestActionL()
-{
-	__UHEAP_MARK;
-
-
-	TTimeIntervalMicroSeconds verifyTime(0);
-	TTime start, end;
-	TTimeIntervalSeconds diff(0);
-	const TTimeIntervalSeconds KIterationTime(iPerfTestIterations);
-
-	TInt noVerifies = 0;
-    
-	CRSAPKCS1v15Verifier *verifier = CRSAPKCS1v15Verifier::NewLC(*iPubKey);	
-	    	
-//	Time verification
-	start.UniversalTime();
-	while (diff < KIterationTime)
-		{
-		iResult = verifier->VerifyL(*iDigestInfo, *iSignature);
-		if (!iResult)
-			{
-			break;
-			}
-		noVerifies++;
-		end.UniversalTime();
-		end.SecondsFrom(start, diff);
-		}
-	end.UniversalTime();
-	verifyTime = end.MicroSecondsFrom(start);
-	TReal verifytime = I64REAL(verifyTime.Int64());
-
-	CleanupStack::PopAndDestroy(verifier);
-
-	__UHEAP_MARKEND;
-	
-	if (iResult)
-	{
-		TReal rate = I64REAL(verifyTime.Int64()) / noVerifies;
-		TBuf<256> buf;
-		_LIT(KVerifyTime, "\tVerify Time: %f us/verify (%i verifies in %f us)\r\n");
-		buf.Format(KVerifyTime, rate, noVerifies, verifytime);
-		iOut.writeString(buf);
-	}
-	else
-	{
-		_LIT(KNoTimingInfo, "\tTest Failed! No benchmark data\n");
-		iOut.writeString(KNoTimingInfo);
-	}
-}
-
-void CRSAVerifyVector::DoPerformActionL()
-	{
-	__UHEAP_MARK;
-
-	CRSAPKCS1v15Verifier* verifier = CRSAPKCS1v15Verifier::NewL(*iPubKey);
-	CleanupStack::PushL(verifier);
-    iResult = verifier->VerifyL(*iDigestInfo, *iSignature);
-
-	CleanupStack::PopAndDestroy(verifier);
-    
-	__UHEAP_MARKEND;
-	}