os/security/cryptoservices/filebasedcertificateandkeystores/test/certtool/certtool_setapps.cpp
First public contribution.
2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
19 #include "certtool_commands.h"
20 #include "certtool_controller.h"
23 /*static*/ CCertToolSetApps* CCertToolSetApps::NewLC(CCertToolController* aController)
25 CCertToolSetApps* self = new (ELeave) CCertToolSetApps(aController);
26 CleanupStack::PushL(self);
31 /*static*/ CCertToolSetApps* CCertToolSetApps::NewL(CCertToolController* aController)
33 CCertToolSetApps* self = CCertToolSetApps::NewLC(aController);
34 CleanupStack::Pop(self);
38 CCertToolSetApps::CCertToolSetApps(CCertToolController* aController) : CCertToolList(aController), iCertIndex (-1)
43 CCertToolSetApps::~CCertToolSetApps()
48 void CCertToolSetApps::RunL()
50 if (iStatus.Int() != KErrNone)
52 // A problem occured. Handle gracefully.
53 User::Leave(iStatus.Int());
60 if (iCertInfos.Count()==0)
62 iController->DisplayLocalisedMsgL(R_CERTTOOL_ERR_EMPTY);
63 CActiveScheduler::Stop();
67 if (iParams->iDefault)
69 // Look for a specific certificate
70 for (TInt j = 0; j < iCertInfos.Count(); j++)
72 if (iCertInfos[j]->Label() == *iParams->iDefault)
81 // Certificate found set app uids!
82 if (iParams->iCertstoreIndex == -1)
84 iParams->iCertstoreIndex = 0;
86 if (iParams->iCertstoreIndex >= iCertStore->CertStoreCount())
88 iController->DisplayLocalisedMsgL(R_CERTTOOL_ERR_NOTEXIST);
89 User::Leave(KErrArgument);
91 if(iCertInfos[iCertIndex]->CertificateOwnerType() == ECACertificate)
99 iCertStore->SetApplicability(*iCertInfos[iCertIndex], iParams->iUIDs, iStatus);
105 User::Leave(KErrNotFound);
113 const TBool caCert = ETrue;
114 iCertStore->SetTrust(*iCertInfos[iCertIndex],caCert,iStatus);
120 iController->DisplayLocalisedMsgL(R_CERTTOOL_ERR_SETAPPS_SUCCESS);
121 CActiveScheduler::Stop();
126 User::Panic(_L("SETAPPS action: Illegal state."), 1);
132 TInt CCertToolSetApps::RunError(TInt aError)
134 CActiveScheduler::Stop();
140 TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_CERTTOOL_ERR_NOTFOUND));
141 TRAP_IGNORE(iController->DisplayErrorL(_L("\n"), iParams->iPageWise));
146 TRAP_IGNORE(iController->DisplayLocalisedMsgL(R_CERTTOOL_ERR_ADDAPPS_FAIL));
147 TRAP_IGNORE(iController->DisplayErrorL(_L("\n"), iParams->iPageWise));