--- a/cryptoservices/certificateandkeymgmt/wtlscert/wtlscertchainao.h Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/wtlscert/wtlscertchainao.h Thu Sep 10 14:01:51 2009 +0300
@@ -1,178 +1,176 @@
-/*
-* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* CWTLSCertChainAO class implementation
-*
-*/
-
-
-
-
-/**
- @file
- @internalTechnology
-*/
-
-#ifndef __WTLSCERTCHAINAO_H__
-#define __WTLSCERTCHAINAO_H__
-
-#include <e32base.h>
-#include <f32file.h>
-#include <unifiedcertstore.h>
-#include <hash.h>
-
-
-class CWTLSCertChain;
-class CWTLSValidationResult;
-class CWTLSCertificate;
-
-/**
- * This class handles the asynchronous part of the wtls chain validation. It
- * is an active object which handles the asynchronous certificate store operations.
- */
-class CWTLSCertChainAO : public CActive
-{
-public:
- static CWTLSCertChainAO* NewL(RFs& aFs, CWTLSCertChain &aWTLSCertChain,
- const CArrayPtr<CWTLSCertificate>& aRootCerts);
- static CWTLSCertChainAO* NewL(RFs& aFs, CWTLSCertChain &aWTLSCertChain,
- const TUid aClient);
- virtual ~CWTLSCertChainAO();
- virtual TInt RunError(TInt aError);
-
-private:
- CWTLSCertChainAO(RFs& aFs, CWTLSCertChain &aWTLSCertChain);
- CWTLSCertChainAO(RFs& aFs, CWTLSCertChain &aWTLSCertChain, const TUid aClient);
- void ConstructL(const CArrayPtr<CWTLSCertificate>& aRootCerts);
-
-public:
- void RunL();
- void DoCancel();
-
-private:
- /**
- * This function creates a CCertStoreManager,
- * calls CCertStoreManager initialise and sets the state
- * to EStoreManagerInitialized
- */
- void HandleEStoreManagerInitializationL();
- void HandleEStoreManagerInitializedL();
- void HandleEGetCertHashesL();
- void HandleEPruneListL();
- void HandleEPruneListDoneL();
- void HandleECheckTCAL();
- void HandleEIsChainSelfSignedL();
- void HandleERetrieveRootsL();
- void HandleEAddRootToListL();
- void HandleEFindRootL();
- void HandleEValidateEndL();
-
- // Request functions
-public:
- void Validate(CWTLSValidationResult& aValidationResult, const TTime& aValidationTime,
- TRequestStatus& aStatus);
-
-private:
- TBool CheckSignatureAndNameL(const CWTLSCertificate& aCert,
- CWTLSValidationResult& aResult, TInt aPos) const;
- TBool CheckValidityPeriod(const CWTLSCertificate& aCert,
- CWTLSValidationResult& aResult, const TTime aTime, TInt aPos) const;
- HBufC8& GeneratePublicKeyHashL(const CWTLSCertificate& aCert) const;
-
- enum TState
- {
- EStoreManagerInitialization = 0,
- EStoreManagerInitialized,
- EGetCertHashes,
- EPruneList,
- EPruneListDone,
- ECheckTCA,
- EIsChainSelfSigned,
- ERetrieveRoots,
- EAddRootToList,
- EFindRoot,
- EValidateEnd
- };
-
-private:
- RFs& iFs;
- CUnifiedCertStore* iCertStoreManager;
- /**
- * List of the subject hashes from the cert store
- * The elements remained owned by the CCTCertInfo
- */
- RPointerArray< TBuf8<20> > iRootSubjectStoreHashList;
- /**
- * List of the subject hashes from the passed in certs
- * We own this object and all its elements
- */
- RPointerArray< HBufC8 > iRootSubjectClientHashList;
- CCertAttributeFilter* iFilter;
- /**
- * Stores info on the certs in the cert store
- * We own this object and all its elements
- */
- RMPointerArray<CCTCertInfo> iCertInfos;
- /**
- * Indicates whether iWTLSCertChain.iChain was pruned or not
- */
- TBool iPruned;
- /**
- * The index within iChain that the chain was pruned
- */
- TInt iPrunedChainLength;
-
- CWTLSCertChain& iWTLSCertChain;
- TUid iClient;
- TPtr8 iEncodedCert;
- HBufC8* iEncodedCertTemp;
-
- TState iState;
-
- TRequestStatus* iOriginalRequestStatus;
-
- /**
- * Roots passed in from the client that we trust
- * We own this object and all its elements
- */
- RPointerArray<CWTLSCertificate> iRootsFromClient;
- /**
- * Roots from the specified cert store that we trust.
- * We own this object and all its elements
- */
- RPointerArray<CWTLSCertificate> iRootsFromStore;
-
- /**
- * A counter used to carry counter information between AO states
- */
- TInt iIndex;
-
- /**
- * Indicates if a root cert has been found for this particular chain
- */
- TBool iFoundRoot;
-
- /**
- * To store the parameters passed to CWTLSCertChain::Validate
- */
- CWTLSValidationResult* iValidationResult;
- /**
- * To store the parameters passed to CWTLSCertChain::Validate
- */
- const TTime* iValidationTime;
-};
-
-#include <wtlscertchain.h>
-
-#endif
+/*
+* Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CWTLSCertChainAO class implementation
+*
+*/
+
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef __WTLSCERTCHAINAO_H__
+#define __WTLSCERTCHAINAO_H__
+
+#include <e32base.h>
+#include <f32file.h>
+#include <unifiedcertstore.h>
+#include <hash.h>
+
+
+class CWTLSCertChain;
+class CWTLSValidationResult;
+class CWTLSCertificate;
+
+/**
+ * This class handles the asynchronous part of the wtls chain validation. It
+ * is an active object which handles the asynchronous certificate store operations.
+ */
+class CWTLSCertChainAO : public CActive
+{
+public:
+ static CWTLSCertChainAO* NewL(RFs& aFs, CWTLSCertChain &aWTLSCertChain,
+ const CArrayPtr<CWTLSCertificate>& aRootCerts);
+ static CWTLSCertChainAO* NewL(RFs& aFs, CWTLSCertChain &aWTLSCertChain,
+ const TUid aClient);
+ virtual ~CWTLSCertChainAO();
+ virtual TInt RunError(TInt aError);
+
+private:
+ CWTLSCertChainAO(RFs& aFs, CWTLSCertChain &aWTLSCertChain);
+ CWTLSCertChainAO(RFs& aFs, CWTLSCertChain &aWTLSCertChain, const TUid aClient);
+ void ConstructL(const CArrayPtr<CWTLSCertificate>& aRootCerts);
+
+public:
+ void RunL();
+ void DoCancel();
+
+private:
+ /**
+ * This function creates a CCertStoreManager,
+ * calls CCertStoreManager initialise and sets the state
+ * to EStoreManagerInitialized
+ */
+ void HandleEStoreManagerInitializationL();
+ void HandleEStoreManagerInitializedL();
+ void HandleEGetCertHashesL();
+ void HandleEPruneListL();
+ void HandleEPruneListDoneL();
+ void HandleECheckTCAL();
+ void HandleEIsChainSelfSignedL();
+ void HandleERetrieveRootsL();
+ void HandleEAddRootToListL();
+ void HandleEFindRootL();
+ void HandleEValidateEndL();
+
+ // Request functions
+public:
+ void Validate(CWTLSValidationResult& aValidationResult, const TTime& aValidationTime,
+ TRequestStatus& aStatus);
+
+private:
+ TBool CheckSignatureAndNameL(const CWTLSCertificate& aCert,
+ CWTLSValidationResult& aResult, TInt aPos) const;
+ TBool CheckValidityPeriod(const CWTLSCertificate& aCert,
+ CWTLSValidationResult& aResult, const TTime aTime, TInt aPos) const;
+ HBufC8& GeneratePublicKeyHashL(const CWTLSCertificate& aCert) const;
+
+ enum TState
+ {
+ EStoreManagerInitialization = 0,
+ EStoreManagerInitialized,
+ EGetCertHashes,
+ EPruneList,
+ EPruneListDone,
+ ECheckTCA,
+ EIsChainSelfSigned,
+ ERetrieveRoots,
+ EAddRootToList,
+ EFindRoot,
+ EValidateEnd
+ };
+
+private:
+ RFs& iFs;
+ CUnifiedCertStore* iCertStoreManager;
+ /**
+ * List of the subject hashes from the cert store
+ * The elements remained owned by the CCTCertInfo
+ */
+ RPointerArray< TBuf8<20> > iRootSubjectStoreHashList;
+ /**
+ * List of the subject hashes from the passed in certs
+ * We own this object and all its elements
+ */
+ RPointerArray< HBufC8 > iRootSubjectClientHashList;
+ CCertAttributeFilter* iFilter;
+ /**
+ * Stores info on the certs in the cert store
+ * We own this object and all its elements
+ */
+ RMPointerArray<CCTCertInfo> iCertInfos;
+ /**
+ * Indicates whether iWTLSCertChain.iChain was pruned or not
+ */
+ TBool iPruned;
+ /**
+ * The index within iChain that the chain was pruned
+ */
+ TInt iPrunedChainLength;
+
+ CWTLSCertChain& iWTLSCertChain;
+ TUid iClient;
+ TPtr8 iEncodedCert;
+ HBufC8* iEncodedCertTemp;
+
+ TState iState;
+
+ TRequestStatus* iOriginalRequestStatus;
+
+ /**
+ * Roots passed in from the client that we trust
+ * We own this object and all its elements
+ */
+ RPointerArray<CWTLSCertificate> iRootsFromClient;
+ /**
+ * Roots from the specified cert store that we trust.
+ * We own this object and all its elements
+ */
+ RPointerArray<CWTLSCertificate> iRootsFromStore;
+
+ /**
+ * A counter used to carry counter information between AO states
+ */
+ TInt iIndex;
+
+ /**
+ * Indicates if a root cert has been found for this particular chain
+ */
+ TBool iFoundRoot;
+
+ /**
+ * To store the parameters passed to CWTLSCertChain::Validate
+ */
+ CWTLSValidationResult* iValidationResult;
+ /**
+ * To store the parameters passed to CWTLSCertChain::Validate
+ */
+ const TTime* iValidationTime;
+};
+
+#include <wtlscertchain.h>
+
+#endif