cryptoservices/certificateandkeymgmt/tpkcs10/tpkcs10minortests.cpp
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptoservices/certificateandkeymgmt/tpkcs10/tpkcs10minortests.cpp	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/tpkcs10/tpkcs10minortests.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -1,312 +1,312 @@
-/*
-* 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: 
-* Implementation of reuse test cases
-*
-*/
-
-
-#include "tpkcs10minortests.h"
-
-_LIT(KKeyLabel, "new pkcs10 test key"); 
-
-// Panics
-_LIT(KPanicReuseTests, "PKCS10ReuseTests");
-TInt EPanicInvalidTestData = 1;
-
-void CPKCS10ReuseAttributeStep::doTestL()
-	{
-	// Set it to pass initially
-	SetTestStepResult(EPass);
-
-	//////////////////////////////////////////////////////////////////////////////
-	// Test for reuse case of CPKCS10Attribute class
- 	TInt numAttr = iArrayGenAttrOID.Count();
- 	__ASSERT_ALWAYS((numAttr > 0), User::Panic(KPanicReuseTests, EPanicInvalidTestData));
-
-	HBufC8 *string = HBufC8::NewMaxLC(iArrayGenAttrValue[0].Length());
-	string->Des().Copy(iArrayGenAttrValue[0]);
-
-	CASN1EncOctetString* attrString1 = CASN1EncOctetString::NewLC(*string);
-
-	CPKCS10Attribute *genericAttr = CPKCS10Attribute::NewLC(iArrayGenAttrOID[0], attrString1);
-
-	// Get the encoding
-	CASN1EncBase* attrEncoding1 = genericAttr->GetEncodingLC();
-
-	// Reset and reuse the class
-	CASN1EncOctetString* attrString2 = CASN1EncOctetString::NewLC(*string);
-	genericAttr->ResetL(iArrayGenAttrOID[0], attrString2);
-	CleanupStack::Pop(attrString2);
-	CASN1EncBase* attrEncoding2 = genericAttr->GetEncodingLC();
-
-	// Compare the encodings
-	TBool result = IsMatchingEncodingL(attrEncoding1, attrEncoding2);
-
-	CleanupStack::PopAndDestroy(3, genericAttr);	// attrEncoding1, attrEncoding2
-	CleanupStack::Pop(attrString1);
-	CleanupStack::PopAndDestroy(string);
-
-	if (result == EFalse)
-		{
-		SetTestStepResult(EFail);
-		}
-	}
-
-void CPKCS10ReuseChallengePasswordAttrStep::doTestL()
-	{
-	// Set it to pass initially
-	SetTestStepResult(EPass);
-
-	//////////////////////////////////////////////////////////////////////////////
-	// Test for reuse case of CPKCS9ChallengePasswordAttr class
-	HBufC8 *passwordString = HBufC8::NewMaxLC(iChallengePassword.Length());
-	passwordString->Des().Copy(iChallengePassword);
-
-	CPKCS9ChallengePasswordAttr *chPasswordAttr = CPKCS9ChallengePasswordAttr::NewLC(*passwordString);
-
-	// Get the encoding
-	CASN1EncBase* attrEncoding1 = chPasswordAttr->GetEncodingLC();
-
-	// Reset and reuse the class
-	chPasswordAttr->ResetL(*passwordString);
-	CASN1EncBase* attrEncoding2 = chPasswordAttr->GetEncodingLC();
-
-	// Compare the encodings
-	TBool result = IsMatchingEncodingL(attrEncoding1, attrEncoding2);
-
-	CleanupStack::PopAndDestroy(4, passwordString);	// chPasswordAttr, attrEncoding1, attrEncoding2
-
-	if (result == EFalse)
-		{
-		SetTestStepResult(EFail);
-		}
-	}
-
-void CPKCS10ReuseExtensionAttrStep::doTestL()
-	{
-	// Set it to pass initially
-	SetTestStepResult(EPass);
-
-	//////////////////////////////////////////////////////////////////////////////
-	// Test for reuse case of CPKCS10Attribute class
-	HBufC8 *extValue1 = HBufC8::NewMaxLC(iArrayV3AttrValue[0].Length());
-	extValue1->Des().Copy(iArrayV3AttrValue[0]);
-	CX509CertExtension *v3ExtAttr1 = CX509CertExtension::NewLC(iArrayV3AttrOID[0], 
-												 iArrayV3AttrCritical[0],
-												 *extValue1);
-
-	HBufC8 *extValue2 = HBufC8::NewMaxLC(iArrayV3AttrValue[1].Length());
-	extValue2->Des().Copy(iArrayV3AttrValue[1]);
-	CX509CertExtension *v3ExtAttr2 = CX509CertExtension::NewLC(iArrayV3AttrOID[1], 
-												 iArrayV3AttrCritical[1],
-												 *extValue2);
-
-	CPKCS9ExtensionRequestAttr *extReqAttr = CPKCS9ExtensionRequestAttr::NewLC(*v3ExtAttr1);
-	extReqAttr->AddExtensionL(*v3ExtAttr2);
-
-	// Get the encoding
-	CASN1EncBase* attrEncoding1 = extReqAttr->GetEncodingLC();
-
-	// Reset and reuse the class
-	extReqAttr->ResetL(*v3ExtAttr1);
-	extReqAttr->AddExtensionL(*v3ExtAttr2);
-	CASN1EncBase* attrEncoding2 = extReqAttr->GetEncodingLC();
-
-	// Compare the encodings
-	TBool result = IsMatchingEncodingL(attrEncoding1, attrEncoding2);
-
-	CleanupStack::PopAndDestroy(7, extValue1);	// v3ExtAttr1, extValue2, v3ExtAttr2, extReqAttr, attrEncoding1, attrEncoding2
-
-	if (result == EFalse)
-		{
-		SetTestStepResult(EFail);
-		}
-	}
-	
-CPKCS10TesterActiveCancelRequestA::CPKCS10TesterActiveCancelRequestA( CTestExecuteLogger& aLogger ) : 
-   CPKCS10TesterActive( aLogger )
-	{
-	}
-	
-void CPKCS10CancelRequestAStep::doTestL()
-{
-    
-    iSched=new(ELeave) CActiveScheduler; 
-    CleanupStack::PushL(iSched);  
-	CActiveScheduler::Install(iSched);
-	
-	iActiveObjTest = new (ELeave) CPKCS10TesterActiveCancelRequestA(Logger());
-	CleanupStack::PushL(iActiveObjTest);
-
-	if (iActiveObjTest->doActiveCertRequestL(this) != EPass)
-	 {
-	 	SetTestStepResult(EFail);
-	 }
-	 
-	 CleanupStack::PopAndDestroy(iActiveObjTest);
-	 iActiveObjTest = NULL;
-	 CleanupStack::PopAndDestroy(iSched);
-	 iSched=NULL;
-	 
- }
-
-	
-TVerdict CPKCS10TesterActiveCancelRequestA::doActiveCertRequestL(CCertificateRequestStep* aStep)
-	{
-	
-	iTestSuccess= EFail;
-	INFO_PRINTF1(_L("Active tester for Cert Request started. "));
-	iStepPointer = aStep;
-		
-    DeleteAllKeysL();
-	
-    INFO_PRINTF1(_L("initialising keystore"));
-    
-	// Initialise Key store.
-  	iKeyStore = CUnifiedKeyStore::NewL(iFs);
-  	CleanupStack::PushL(iKeyStore); 
-  	iKeyStore->Initialize(iStatus);  
-	iState = EInitKeyStore; 
-	SetActive();
-   	CActiveScheduler::Start();
-   	
-   	// After encoding was produced it checks correctness
-    if(iRunError!=KErrCancel)
-     {
-	     iTestSuccess= EFail;
-	 }
-	 else
-	 {
-	 	iTestSuccess= EPass;
-	 }
-  	
-   	CleanupStack::Pop(iKeyStore);  
-    return iTestSuccess;
-}
-
-void CPKCS10TesterActiveCancelRequestA::RunL()
-{
-	
-	iRunError =KErrNone;
-	
- 	User::LeaveIfError(iStatus.Int());
-   
-	switch(iState)
-		{
-		
-		case EDeleteAllInit:
-			INFO_PRINTF1(_L("  listing existing keys\n"));
-			iKeyStore->List(iKeys, iKeyFilter, iStatus);
-			iState = EDeleteAllDelete;
-			SetActive();
-			break;
-			
-		case EDeleteAllDelete:
-			if (iKeys.Count() == 0)
-				{
-				// key log is empty
-				iKeys.Close();
-				CActiveScheduler::Stop();
-				break;
-				}
-			
-			INFO_PRINTF1(_L("  deleting key\n"));
-			iKeyStore->DeleteKey(*iKeys[0], iStatus);
-			iState = EDeleteAllDelete;
-			SetActive();
-			iKeys[0]->Release();
-			iKeys.Remove(0);
-			break;
-		
-		case EInitKeyStore:
-			{
-	  		INFO_PRINTF1(_L("Importing keys"));
- 			TFileName filename;
- 			filename = iStepPointer->iPrivateKey;
-			RFile file;
-			User::LeaveIfError(file.Open(iFs,filename,EFileRead));
-			CleanupClosePushL(file);
-			TInt size;
-			User::LeaveIfError(file.Size(size));
-			iKeyData = HBufC8::NewMaxL(size);
-			TPtr8 keyPtr = iKeyData->Des();
-			User::LeaveIfError(file.Read(keyPtr));			
-			CleanupStack::PopAndDestroy(); // file
-
-			TTime start(0.0); 
-			TTime end(0.0); 
-			
-			// Assumes only one keystore
-			// Check parameters!
-		 	ASSERT(iKeyInfo == NULL);      
-			iKeyStore->ImportKey(0, *(iKeyData), EPKCS15UsageSign, KKeyLabel,0, start, end,iKeyInfo, iStatus);
-	  		iState = EImportKey;
-	  		SetActive();
-			break;
-			}
-	  	case EImportKey:
-			{
-			INFO_PRINTF1(_L("Setting security policy for new stored key"));
-			TSecureId secureId(0x101f7784); // Application secure ID 
-			TSecurityPolicy securePolicy(secureId,ECapabilityReadUserData);
-			iKeyStore->SetUsePolicy(iKeyInfo->Handle(),securePolicy,iStatus);
-			iState = EKeyPolicy;
- 			SetActive();
- 			break;
-		   	}
-		case EKeyPolicy:
-			{
-			iAttrCollection=CPKCS10Attributes::NewL();
- 			CleanupStack::PushL(iAttrCollection); 
-			INFO_PRINTF1(_L("Adding generic attributes"));		
- 			AddGenericAttributesL();
- 			INFO_PRINTF1(_L("Adding Challenge password"));
- 			AddChallengePasswordL();
- 			INFO_PRINTF1(_L("Adding V3 extensions"));
- 			AddV3ExtensionsL();
- 			INFO_PRINTF1(_L("Generating distinguished name"));
- 			iDN=MakeDistinguishedNameL();
- 			CleanupStack::PushL(iDN);
-   	 		INFO_PRINTF1(_L("Generating cert request"));
-   	 		iCertRequest=CPKCS10Request::NewL(*iDN,*iKeyInfo,iAttrCollection);
-     		CleanupStack::PushL(iCertRequest);
-     		INFO_PRINTF1(_L("Setting digest algorithm"));
-			TAlgorithmId digestAlgo=iStepPointer->ConvertNameToDigestId(iStepPointer->iDigestAlg);
-			iCertRequest->SetDigestAlgL(digestAlgo);
- 			INFO_PRINTF1(_L("Requesting cert request encoding"));
- 	  		
- 	  		// Clean up
- 	  		CleanupStack::Pop(iCertRequest);
- 			CleanupStack::Pop(iDN);
-    	 	CleanupStack::Pop(iAttrCollection);
-    	  	iAttrCollection=NULL;  
-			iOutputASN1Encoding=NULL;
-			iCertRequest->CreateEncoding(iOutputASN1Encoding,iStatus);
-			iState=EGenerateCertRequest; 
-			SetActive();
-			
-			iCertRequest->Cancel();
-		
-	  		break;	
-			}
-		default:
-			{
-		  	INFO_PRINTF1(_L("Cert Request Active tester: State corrupted."));
-			User::Leave(KErrCorrupt);
-			}
- 		} 
- 		
-   	return; 
-}
+/*
+* 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: 
+* Implementation of reuse test cases
+*
+*/
+
+
+#include "tpkcs10minortests.h"
+
+_LIT(KKeyLabel, "new pkcs10 test key"); 
+
+// Panics
+_LIT(KPanicReuseTests, "PKCS10ReuseTests");
+TInt EPanicInvalidTestData = 1;
+
+void CPKCS10ReuseAttributeStep::doTestL()
+	{
+	// Set it to pass initially
+	SetTestStepResult(EPass);
+
+	//////////////////////////////////////////////////////////////////////////////
+	// Test for reuse case of CPKCS10Attribute class
+ 	TInt numAttr = iArrayGenAttrOID.Count();
+ 	__ASSERT_ALWAYS((numAttr > 0), User::Panic(KPanicReuseTests, EPanicInvalidTestData));
+
+	HBufC8 *string = HBufC8::NewMaxLC(iArrayGenAttrValue[0].Length());
+	string->Des().Copy(iArrayGenAttrValue[0]);
+
+	CASN1EncOctetString* attrString1 = CASN1EncOctetString::NewLC(*string);
+
+	CPKCS10Attribute *genericAttr = CPKCS10Attribute::NewLC(iArrayGenAttrOID[0], attrString1);
+
+	// Get the encoding
+	CASN1EncBase* attrEncoding1 = genericAttr->GetEncodingLC();
+
+	// Reset and reuse the class
+	CASN1EncOctetString* attrString2 = CASN1EncOctetString::NewLC(*string);
+	genericAttr->ResetL(iArrayGenAttrOID[0], attrString2);
+	CleanupStack::Pop(attrString2);
+	CASN1EncBase* attrEncoding2 = genericAttr->GetEncodingLC();
+
+	// Compare the encodings
+	TBool result = IsMatchingEncodingL(attrEncoding1, attrEncoding2);
+
+	CleanupStack::PopAndDestroy(3, genericAttr);	// attrEncoding1, attrEncoding2
+	CleanupStack::Pop(attrString1);
+	CleanupStack::PopAndDestroy(string);
+
+	if (result == EFalse)
+		{
+		SetTestStepResult(EFail);
+		}
+	}
+
+void CPKCS10ReuseChallengePasswordAttrStep::doTestL()
+	{
+	// Set it to pass initially
+	SetTestStepResult(EPass);
+
+	//////////////////////////////////////////////////////////////////////////////
+	// Test for reuse case of CPKCS9ChallengePasswordAttr class
+	HBufC8 *passwordString = HBufC8::NewMaxLC(iChallengePassword.Length());
+	passwordString->Des().Copy(iChallengePassword);
+
+	CPKCS9ChallengePasswordAttr *chPasswordAttr = CPKCS9ChallengePasswordAttr::NewLC(*passwordString);
+
+	// Get the encoding
+	CASN1EncBase* attrEncoding1 = chPasswordAttr->GetEncodingLC();
+
+	// Reset and reuse the class
+	chPasswordAttr->ResetL(*passwordString);
+	CASN1EncBase* attrEncoding2 = chPasswordAttr->GetEncodingLC();
+
+	// Compare the encodings
+	TBool result = IsMatchingEncodingL(attrEncoding1, attrEncoding2);
+
+	CleanupStack::PopAndDestroy(4, passwordString);	// chPasswordAttr, attrEncoding1, attrEncoding2
+
+	if (result == EFalse)
+		{
+		SetTestStepResult(EFail);
+		}
+	}
+
+void CPKCS10ReuseExtensionAttrStep::doTestL()
+	{
+	// Set it to pass initially
+	SetTestStepResult(EPass);
+
+	//////////////////////////////////////////////////////////////////////////////
+	// Test for reuse case of CPKCS10Attribute class
+	HBufC8 *extValue1 = HBufC8::NewMaxLC(iArrayV3AttrValue[0].Length());
+	extValue1->Des().Copy(iArrayV3AttrValue[0]);
+	CX509CertExtension *v3ExtAttr1 = CX509CertExtension::NewLC(iArrayV3AttrOID[0], 
+												 iArrayV3AttrCritical[0],
+												 *extValue1);
+
+	HBufC8 *extValue2 = HBufC8::NewMaxLC(iArrayV3AttrValue[1].Length());
+	extValue2->Des().Copy(iArrayV3AttrValue[1]);
+	CX509CertExtension *v3ExtAttr2 = CX509CertExtension::NewLC(iArrayV3AttrOID[1], 
+												 iArrayV3AttrCritical[1],
+												 *extValue2);
+
+	CPKCS9ExtensionRequestAttr *extReqAttr = CPKCS9ExtensionRequestAttr::NewLC(*v3ExtAttr1);
+	extReqAttr->AddExtensionL(*v3ExtAttr2);
+
+	// Get the encoding
+	CASN1EncBase* attrEncoding1 = extReqAttr->GetEncodingLC();
+
+	// Reset and reuse the class
+	extReqAttr->ResetL(*v3ExtAttr1);
+	extReqAttr->AddExtensionL(*v3ExtAttr2);
+	CASN1EncBase* attrEncoding2 = extReqAttr->GetEncodingLC();
+
+	// Compare the encodings
+	TBool result = IsMatchingEncodingL(attrEncoding1, attrEncoding2);
+
+	CleanupStack::PopAndDestroy(7, extValue1);	// v3ExtAttr1, extValue2, v3ExtAttr2, extReqAttr, attrEncoding1, attrEncoding2
+
+	if (result == EFalse)
+		{
+		SetTestStepResult(EFail);
+		}
+	}
+	
+CPKCS10TesterActiveCancelRequestA::CPKCS10TesterActiveCancelRequestA( CTestExecuteLogger& aLogger ) : 
+   CPKCS10TesterActive( aLogger )
+	{
+	}
+	
+void CPKCS10CancelRequestAStep::doTestL()
+{
+    
+    iSched=new(ELeave) CActiveScheduler; 
+    CleanupStack::PushL(iSched);  
+	CActiveScheduler::Install(iSched);
+	
+	iActiveObjTest = new (ELeave) CPKCS10TesterActiveCancelRequestA(Logger());
+	CleanupStack::PushL(iActiveObjTest);
+
+	if (iActiveObjTest->doActiveCertRequestL(this) != EPass)
+	 {
+	 	SetTestStepResult(EFail);
+	 }
+	 
+	 CleanupStack::PopAndDestroy(iActiveObjTest);
+	 iActiveObjTest = NULL;
+	 CleanupStack::PopAndDestroy(iSched);
+	 iSched=NULL;
+	 
+ }
+
+	
+TVerdict CPKCS10TesterActiveCancelRequestA::doActiveCertRequestL(CCertificateRequestStep* aStep)
+	{
+	
+	iTestSuccess= EFail;
+	INFO_PRINTF1(_L("Active tester for Cert Request started. "));
+	iStepPointer = aStep;
+		
+    DeleteAllKeysL();
+	
+    INFO_PRINTF1(_L("initialising keystore"));
+    
+	// Initialise Key store.
+  	iKeyStore = CUnifiedKeyStore::NewL(iFs);
+  	CleanupStack::PushL(iKeyStore); 
+  	iKeyStore->Initialize(iStatus);  
+	iState = EInitKeyStore; 
+	SetActive();
+   	CActiveScheduler::Start();
+   	
+   	// After encoding was produced it checks correctness
+    if(iRunError!=KErrCancel)
+     {
+	     iTestSuccess= EFail;
+	 }
+	 else
+	 {
+	 	iTestSuccess= EPass;
+	 }
+  	
+   	CleanupStack::Pop(iKeyStore);  
+    return iTestSuccess;
+}
+
+void CPKCS10TesterActiveCancelRequestA::RunL()
+{
+	
+	iRunError =KErrNone;
+	
+ 	User::LeaveIfError(iStatus.Int());
+   
+	switch(iState)
+		{
+		
+		case EDeleteAllInit:
+			INFO_PRINTF1(_L("  listing existing keys\n"));
+			iKeyStore->List(iKeys, iKeyFilter, iStatus);
+			iState = EDeleteAllDelete;
+			SetActive();
+			break;
+			
+		case EDeleteAllDelete:
+			if (iKeys.Count() == 0)
+				{
+				// key log is empty
+				iKeys.Close();
+				CActiveScheduler::Stop();
+				break;
+				}
+			
+			INFO_PRINTF1(_L("  deleting key\n"));
+			iKeyStore->DeleteKey(*iKeys[0], iStatus);
+			iState = EDeleteAllDelete;
+			SetActive();
+			iKeys[0]->Release();
+			iKeys.Remove(0);
+			break;
+		
+		case EInitKeyStore:
+			{
+	  		INFO_PRINTF1(_L("Importing keys"));
+ 			TFileName filename;
+ 			filename = iStepPointer->iPrivateKey;
+			RFile file;
+			User::LeaveIfError(file.Open(iFs,filename,EFileRead));
+			CleanupClosePushL(file);
+			TInt size;
+			User::LeaveIfError(file.Size(size));
+			iKeyData = HBufC8::NewMaxL(size);
+			TPtr8 keyPtr = iKeyData->Des();
+			User::LeaveIfError(file.Read(keyPtr));			
+			CleanupStack::PopAndDestroy(); // file
+
+			TTime start(0.0); 
+			TTime end(0.0); 
+			
+			// Assumes only one keystore
+			// Check parameters!
+		 	ASSERT(iKeyInfo == NULL);      
+			iKeyStore->ImportKey(0, *(iKeyData), EPKCS15UsageSign, KKeyLabel,0, start, end,iKeyInfo, iStatus);
+	  		iState = EImportKey;
+	  		SetActive();
+			break;
+			}
+	  	case EImportKey:
+			{
+			INFO_PRINTF1(_L("Setting security policy for new stored key"));
+			TSecureId secureId(0x101f7784); // Application secure ID 
+			TSecurityPolicy securePolicy(secureId,ECapabilityReadUserData);
+			iKeyStore->SetUsePolicy(iKeyInfo->Handle(),securePolicy,iStatus);
+			iState = EKeyPolicy;
+ 			SetActive();
+ 			break;
+		   	}
+		case EKeyPolicy:
+			{
+			iAttrCollection=CPKCS10Attributes::NewL();
+ 			CleanupStack::PushL(iAttrCollection); 
+			INFO_PRINTF1(_L("Adding generic attributes"));		
+ 			AddGenericAttributesL();
+ 			INFO_PRINTF1(_L("Adding Challenge password"));
+ 			AddChallengePasswordL();
+ 			INFO_PRINTF1(_L("Adding V3 extensions"));
+ 			AddV3ExtensionsL();
+ 			INFO_PRINTF1(_L("Generating distinguished name"));
+ 			iDN=MakeDistinguishedNameL();
+ 			CleanupStack::PushL(iDN);
+   	 		INFO_PRINTF1(_L("Generating cert request"));
+   	 		iCertRequest=CPKCS10Request::NewL(*iDN,*iKeyInfo,iAttrCollection);
+     		CleanupStack::PushL(iCertRequest);
+     		INFO_PRINTF1(_L("Setting digest algorithm"));
+			TAlgorithmId digestAlgo=iStepPointer->ConvertNameToDigestId(iStepPointer->iDigestAlg);
+			iCertRequest->SetDigestAlgL(digestAlgo);
+ 			INFO_PRINTF1(_L("Requesting cert request encoding"));
+ 	  		
+ 	  		// Clean up
+ 	  		CleanupStack::Pop(iCertRequest);
+ 			CleanupStack::Pop(iDN);
+    	 	CleanupStack::Pop(iAttrCollection);
+    	  	iAttrCollection=NULL;  
+			iOutputASN1Encoding=NULL;
+			iCertRequest->CreateEncoding(iOutputASN1Encoding,iStatus);
+			iState=EGenerateCertRequest; 
+			SetActive();
+			
+			iCertRequest->Cancel();
+		
+	  		break;	
+			}
+		default:
+			{
+		  	INFO_PRINTF1(_L("Cert Request Active tester: State corrupted."));
+			User::Leave(KErrCorrupt);
+			}
+ 		} 
+ 		
+   	return; 
+}