First public contribution.
2 * Copyright (c) 2007-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.
15 * Declares test step classes for positive cases of PKCS#10 tests.
29 #include <pkcs10attr.h>
30 #include <pkcs9attr.h>
31 #include <unifiedkeystore.h>
37 #if (!defined __CERTIFICATEREQUEST_STEP_H__)
38 #define __CERTIFICATEREQUEST_STEP_H__
39 #include <test/testexecutestepbase.h>
40 #include "tpkcs10stepbasev2.h"
42 _LIT(KCertificateRequestStep,"PKCS10CertRequest");
44 // forward declarations:
45 class CCertificateRequestStep;
47 class CPKCS10TesterActive : public CActive
50 CPKCS10TesterActive( CTestExecuteLogger& aLogger );
51 ~CPKCS10TesterActive();
53 TVerdict doActiveCertRequestL(CCertificateRequestStep* aStep);
56 void DoCancel() {return; };
58 virtual TInt RunError(TInt aError);
61 void AddGenericAttributesL();
62 void AddChallengePasswordL();
63 void AddV3ExtensionsL();
64 void DeleteAllKeysL();
65 CX500DistinguishedName* MakeDistinguishedNameL();
66 TVerdict verifyCertReqEncodingL();
67 TBool CompareRequestToOPENSSLReqL();
70 CTestExecuteLogger& Logger(){return iLogger;}
73 CTestExecuteLogger& iLogger;
74 CCertificateRequestStep* iStepPointer;
75 CUnifiedKeyStore* iKeyStore;
78 CPKCS10Request* iCertRequest;
79 CX500DistinguishedName* iDN;
80 CPKCS10Attributes* iAttrCollection;
81 CPKCS9ExtensionRequestAttr* iV3ExtensionsCollection;
83 HBufC8* iOutputASN1Encoding;
84 HBufC8* iSecondOutputASN1Encoding;
85 TVerdict iTestSuccess;
86 RMPointerArray<CCTKeyInfo> iKeys;
87 TCTKeyAttributeFilter iKeyFilter;
104 EGenerateCertRequest,
105 EGenerateSecondCertRequest,
113 class CCertificateRequestStep : public CTPKCS10StepBase
116 CCertificateRequestStep();
117 ~CCertificateRequestStep();
118 virtual TVerdict doTestStepPreambleL();
119 virtual TVerdict doTestStepL();
120 virtual TVerdict doTestStepPostambleL();
121 virtual TVerdict doOOMTestL();
122 virtual void doTestL();
124 TAlgorithmId ConvertNameToDigestId(const TDesC& aHashName);
125 TInt ConvertNameToEKeyAlgorithm(const TDesC& aName);
126 void OutputEncodingToFileL(const TDesC8& aEncoding);
127 TBool IsMatchingEncodingL(CASN1EncBase* aASN1Enc1, CASN1EncBase* aASN1Enc2);
136 TPtrC iDN_organization;
141 TPtrC iOPENSSLCertReq;
143 TPtrC iChallengePassword;
145 TInt iElemCertReqCount;
146 TInt iElemCertInfoCount;
148 TInt iElemSubPubKeytInfoCount;
149 TInt iElemKeyAlgIdenCount;
150 TInt iElemSigAlgIdenCount;
151 TInt iAttribute_count;
152 CPKCS10TesterActive* iActiveObjTest;
153 CActiveScheduler* iSched;
154 RArray<TPtrC> iArrayGenAttrOID;
155 RArray<TPtrC> iArrayGenAttrValue;
156 RArray<TPtrC> iArrayV3AttrOID;
157 RArray<TBool> iArrayV3AttrCritical;
158 RArray<TPtrC> iArrayV3AttrValue;
160 TBool iGenerateSecondRequest;
161 TBool iRepopulateDataRequest;