First public contribution.
2 * Copyright (c) 1998-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.
24 #ifndef __TACTIONVALIDATE_H__
25 #define __TACTIONVALIDATE_H__
27 #include "t_testaction.h"
28 #include "tpkixcertval.h"
29 #include <unifiedcertstore.h>
30 #include "tcertutils.h"
32 class CActionValidate : public CTestAction
35 virtual void DoPerformPrerequisite(TRequestStatus& aStatus) = 0;
36 virtual void DoPerformPostrequisite(TRequestStatus& aStatus) = 0;
37 virtual void PerformAction(TRequestStatus& aStatus);
38 TBool TestResult(TInt aError);
39 virtual void PerformCancel();
40 virtual void AfterOOMFailure();
43 virtual void DoReportAction();
44 virtual void DoCheckResult(TInt aError);
45 virtual ~CActionValidate();
47 void ConstructL(const TTestActionSpec& aTestActionSpec);
48 virtual void CreateChainL() = 0;
49 TBool AddParametersL(const TDesC& aBuf, TInt& aPos);
50 void WritePolicies(const CDesCArray& aPolicySet);
51 CActionValidate(RFs& aFs, CConsoleBase& aConsole,Output& aOut);
55 ERemoveCertsBeforeTest,
57 EAddIntermediateCerts,
59 EDoValidateTestValidate,
60 EDoValidateTestValidated,
61 EDoValidateTestFinished,
62 ERemoveCertsAfterTest,
68 CCertUtils* iCertUtils;
70 CTestChain* iTestChain;
71 CTestParameters* iTestIO;
74 * The certificate chain initialized based on whether the certificates are user supplied or to be retrieved
75 * from the certificate store.
77 CPKIXCertChain* iChain;
80 * The policies extracted from the test case and passed as argument to Validate
82 CArrayPtrFlat<HBufC>* iPolicies;
85 * The result of the validation test. Used for the validation and the build tests.
87 CPKIXValidationResult* iValidationResult;
90 * The time, it is used to check if the certifcate is within its validity
91 * period. Used for the validation and the build tests.
97 class CActionValidateWithStore : public CActionValidate
100 static CTestAction* NewL(RFs& aFs, CConsoleBase& aConsole,
101 Output& aOut, const TTestActionSpec& aTestActionSpec);
102 static CTestAction* NewLC(RFs& aFs, CConsoleBase& aConsole,
103 Output& aOut, const TTestActionSpec& aTestActionSpec);
106 CActionValidateWithStore(RFs& aFs, CConsoleBase& aConsole,Output& aOut);
107 virtual void DoPerformPrerequisite(TRequestStatus& aStatus);
108 virtual void DoPerformPostrequisite(TRequestStatus& aStatus);
109 virtual void CreateChainL();
112 class CActionValidateWithSuppliedCerts : public CActionValidate
115 static CTestAction* NewL(RFs& aFs, CConsoleBase& aConsole,
116 Output& aOut, const TTestActionSpec& aTestActionSpec);
117 static CTestAction* NewLC(RFs& aFs, CConsoleBase& aConsole,
118 Output& aOut, const TTestActionSpec& aTestActionSpec);
119 virtual ~CActionValidateWithSuppliedCerts();
121 CActionValidateWithSuppliedCerts(RFs& aFs, CConsoleBase& aConsole,Output& aOut);
122 void ConstructL(const TTestActionSpec& aTestActionSpec);
123 virtual void DoPerformPrerequisite(TRequestStatus& aStatus);
124 virtual void DoPerformPostrequisite(TRequestStatus& aStatus);
125 virtual void CreateChainL();
127 RPointerArray<CX509Certificate>* iRootCerts;
128 HBufC8* iEndEntityAndIntermediateCerts;