--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/networksecurity/tlsprovider/Test/tlstest2/newtlsstepbase.h Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,109 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+
+/**
+ @file newtlsstepbase.h
+ @internalTechnology
+*/
+#ifndef __CNEWTLSSTEPBASE_H__
+#define __CNEWTLSSTEPBASE_H__
+
+#include "tlsstepbase.h"
+
+#include <asymmetric.h>
+#include <asymmetrickeys.h>
+#include <symmetric.h>
+#include <asnpkcs.h>
+#include "tlsgenericactive.h"
+
+
+/**
+*
+* About this new test step base:
+* This new test step base is derived from existing test base "CTlsStepBase" but
+* has been optimised for out of memory test.
+* Main differences with previous test base:
+* - All reading of values form INI file had been moved to test pre-amble.
+* - No production code under test had been initialised in test pre-amble.
+* - Includes OOM test facilities.
+*
+*/
+
+
+class CNewTlsStepBase : public CTlsStepBase
+ {
+ public:
+
+ ~CNewTlsStepBase();
+
+ virtual TVerdict doTestStepPreambleL();
+ virtual TVerdict doTestStepL();
+ virtual TVerdict doOOMTestL();
+ virtual void doTestL();
+ void ConstructL();
+
+ // These "Lean" functions are base on fuctions with similar name in
+ // first base but they do not read any INI value when called.
+
+ // Generic methods.
+ TInt LeanVerifyServerCertificate(CX509Certificate*& aCertOut, HBufC8* aCertIn);
+ TInt LeanCreateSession();
+ TInt LeanClientKeyExchange(HBufC8*& aMessageOut);
+ HBufC8* LeanDerivePreMasterSecretL(const TDesC8& aClientKeyExMessage, CDecPKCS8Data* aServerKeyData);
+ TInt LeanCipherSuiteIndex(const TTLSCipherSuite& aSuite);
+ HBufC8* LeanComputeMasterSecretL(const TDesC8& aPremasterSecret);
+ HBufC8* LeanComputeSslMasterSecretL(const TDesC8& aPremasterSecret);
+ HBufC8* LeanComputeTlsMasterSecretL(const TDesC8& aPremasterSecret);
+ void LeanComputeTlsCipherKeysL(const TDesC8& aMasterSecret, const TDesC8& aRandom);
+ void LeanComputeSslCipherKeysL(const TDesC8& aMasterSecret, const TDesC8& aRandom);
+ TInt LeanGetCipherSuitesL();
+
+ public:
+
+ TBool iOOMCondition;
+ TBool iOOMAllowNonMemoryErrors;
+ TBool iUseDHParams;
+ CGenericActive* iActive;
+
+ // Data that should deleted by test step destructor
+ HBufC8* iServerRandom;
+ HBufC8* iClientRandom;
+ TTLSCipherSuite iCipherSuite;
+ TTLSProtocolVersion iProtocolVersion;
+ TTLSSessionId iSessionId;
+ TPtrC iDomainName;
+
+ HBufC8* iServerCertificate;
+ CTLSSession* iSession;
+ CDecPKCS8Data* iServerPrivateKey;
+
+ // Data that has to be reset for each OOM cycle..
+ CActiveScheduler* iSched;
+ CTLSProvider* iProvider;
+ RArray<TTLSCipherSuite> iSuites;
+
+ HBufC8* iClientMacSecret;
+ HBufC8* iServerMacSecret;
+
+ HBufC8* iClientWriteSecret;
+ HBufC8* iServerWriteSecret;
+
+ HBufC8* iClientInitVector;
+ HBufC8* iServerInitVector;
+
+
+ };
+
+#endif /* __CNEWTLSSTEPBASE_H__ */