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.
15 * CPKIXCertChainHelper class implementation
25 #ifndef __PKIXCERTCHAINHELPER_H__
26 #define __PKIXCERTCHAINHELPER_H__
31 class CPKIXCertChainBase;
32 class CPKIXValidationResult;
33 class CUnifiedCertStore;
36 * An helper object that used to implement the valdiation functionality of the
37 * CPKICCertChain interface. This is done by creating and initialising a
38 * unified certificate store, and then calling through to the implementation in
41 NONSHARABLE_CLASS(CPKIXCertChainHelper) : public CActive
44 static CPKIXCertChainHelper* NewL(RFs& aFs);
46 virtual ~CPKIXCertChainHelper();
48 CUnifiedCertStore& CertStore();
50 /** Validates the chain. */
51 void Validate(CPKIXCertChainBase& aCertChain,
52 CPKIXValidationResult& aValidationResult,
53 const TTime& aValidationTime,
54 TRequestStatus& aStatus);
56 /** Validates the chain. */
57 void Validate(CPKIXCertChainBase& aCertChain,
58 CPKIXValidationResult& aValidationResult,
59 const TTime& aValidationTime,
60 const CArrayPtr<HBufC>& aInitialPolicies,
61 TRequestStatus& aStatus);
63 /** Cancels an asynchronous Validate() operation. */
64 void CancelValidate();
67 CPKIXCertChainHelper();
68 void ConstructL(RFs& aFs);
69 void StartValidate(CPKIXCertChainBase& aCertChain,
70 CPKIXValidationResult& aValidationResult,
71 const TTime& aValidationTime,
72 const CArrayPtr<HBufC>* aInitialPolicies,
73 TRequestStatus& aStatus);
74 void InitializeCertStore();
75 void ValidateChainL();
79 virtual TInt RunError(TInt aError);
80 virtual void DoCancel();
81 void Complete(TInt aError);
91 CUnifiedCertStore* iCertStore;
92 TBool iCertStoreInitialized;
96 CPKIXCertChainBase* iCertChain;
97 CPKIXValidationResult* iValidationResult;
98 TTime iValidationTime;
99 const CArrayPtr<HBufC>* iInitialPolicies;
100 TRequestStatus* iClientStatus;