cryptoservices/filebasedcertificateandkeystores/test/certtool/certtool_addapps.cpp
changeset 29 ece3df019add
parent 8 35751d3474b7
--- a/cryptoservices/filebasedcertificateandkeystores/test/certtool/certtool_addapps.cpp	Fri Nov 06 13:21:00 2009 +0200
+++ b/cryptoservices/filebasedcertificateandkeystores/test/certtool/certtool_addapps.cpp	Tue Nov 24 09:06:03 2009 +0200
@@ -35,7 +35,7 @@
 	return self;
 	}
 
-CCertToolAddApps::CCertToolAddApps(CCertToolController* aController) : CCertToolList(aController)
+CCertToolAddApps::CCertToolAddApps(CCertToolController* aController) : CCertToolList(aController), iCertIndex (-1)
 	{
 	}
 
@@ -67,19 +67,17 @@
 				if (iParams->iDefault)    
 					{
 					// Look for a specific certificate					
-					TInt certIndex = -1;
 					for (TInt j = 0; j < iCertInfos.Count(); j++)
 						{
 						if (iCertInfos[j]->Label() == *iParams->iDefault) 
 							{
-							certIndex = j;
+							iCertIndex = j;
 							break;
 							}
 						}	
 						
-					if (certIndex != -1)
+					if (iCertIndex != -1)
 						{
-						iIndex = certIndex;						
 						// Certificate found set app uids!
 						if (iParams->iCertstoreIndex == -1)
 							{
@@ -90,7 +88,7 @@
 							iController->DisplayLocalisedMsgL(R_CERTTOOL_ERR_NOTEXIST);	
 							User::Leave(KErrArgument);			
 							}						
-						iCertStore->Applications(*iCertInfos[iIndex], iApps, iStatus);
+						iCertStore->Applications(*iCertInfos[iCertIndex], iApps, iStatus);
 						iState = ESetApps;
 						SetActive();
 						}
@@ -131,9 +129,24 @@
 				{
 				iParams->iUIDs.Append(iApps[j]);
 				}
+			if(iCertInfos[iCertIndex]->CertificateOwnerType() == ECACertificate)							
+				{
+				iState = ESetTrust;
+				}
+			else
+				{
+				iState = EFinished;								
+				}	
+			iCertStore->SetApplicability(*iCertInfos[iCertIndex], iParams->iUIDs, iStatus);
+			SetActive();
+			}
+			break;
+		case ESetTrust:
+			{
 			iState = EFinished;
-			iCertStore->SetApplicability(*iCertInfos[iIndex], iParams->iUIDs, iStatus);
-			SetActive();
+			const TBool caCert = ETrue;
+			iCertStore->SetTrust(*iCertInfos[iCertIndex],caCert,iStatus);
+			SetActive();				
 			}
 			break;
 		case EFinished: