--- a/cryptoservices/certificateandkeymgmt/pkixCert/pkixCertChainHelper.cpp Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/pkixCert/pkixCertChainHelper.cpp Thu Sep 10 14:01:51 2009 +0300
@@ -1,200 +1,200 @@
-/*
-* Copyright (c) 2004-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:
-*
-*/
-
-
-#include "pkixCertChainHelper.h"
-#include <pkixcertchain.h>
-#include <pkixvalidationresult.h>
-#include <unifiedcertstore.h>
-
-_LIT(KPanicCat, "CPKIXCertChainHelper");
-
-CPKIXCertChainHelper* CPKIXCertChainHelper::NewL(RFs& aFs)
- {
- CPKIXCertChainHelper* self = new (ELeave) CPKIXCertChainHelper();
- CleanupStack::PushL(self);
- self->ConstructL(aFs);
- CleanupStack::Pop(self);
- return self;
- }
-
-CPKIXCertChainHelper::CPKIXCertChainHelper() :
- CActive(EPriorityNormal)
- {
- CActiveScheduler::Add(this);
- }
-
-void CPKIXCertChainHelper::ConstructL(RFs& aFs)
- {
- iCertStore = CUnifiedCertStore::NewL(aFs, EFalse);
- }
-
-CPKIXCertChainHelper::~CPKIXCertChainHelper()
- {
- Cancel();
- delete iCertStore;
- }
-
-CUnifiedCertStore& CPKIXCertChainHelper::CertStore()
- {
- return *iCertStore;
- }
-
-void CPKIXCertChainHelper::Validate(CPKIXCertChainBase& aCertChain,
- CPKIXValidationResult& aValidationResult,
- const TTime& aValidationTime,
- TRequestStatus& aStatus)
- {
- StartValidate(aCertChain, aValidationResult, aValidationTime, NULL,
- aStatus);
- }
-
-void CPKIXCertChainHelper::Validate(CPKIXCertChainBase& aCertChain,
- CPKIXValidationResult& aValidationResult,
- const TTime& aValidationTime,
- const CArrayPtr<HBufC>& aInitialPolicies,
- TRequestStatus& aStatus)
- {
- StartValidate(aCertChain, aValidationResult, aValidationTime, &aInitialPolicies,
- aStatus);
- }
-
-void CPKIXCertChainHelper::CancelValidate()
- {
- if (iState == EInitializeCertStore ||
- iState == EValidateChain)
- {
- Cancel();
- }
- }
-
-void CPKIXCertChainHelper::StartValidate(CPKIXCertChainBase& aCertChain,
- CPKIXValidationResult& aValidationResult,
- const TTime& aValidationTime,
- const CArrayPtr<HBufC>* aInitialPolicies,
- TRequestStatus& aStatus)
- {
- __ASSERT_ALWAYS(iState == EIdle, User::Panic(KPanicCat, 1));
- iCertChain = &aCertChain;
- iValidationResult = &aValidationResult;
- iValidationTime = aValidationTime;
- iInitialPolicies = aInitialPolicies;
- iClientStatus = &aStatus;
- aStatus = KRequestPending;
- InitializeCertStore();
- }
-
-void CPKIXCertChainHelper::InitializeCertStore()
- {
- iState = EInitializeCertStore;
- if (iCertStoreInitialized)
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- }
- else
- {
- iCertStore->Initialize(iStatus);
- }
- SetActive();
- }
-
-void CPKIXCertChainHelper::ValidateChainL()
- {
- iState = EValidateChain;
- if (iInitialPolicies)
- {
- iCertChain->ValidateL(*iValidationResult,
- iValidationTime,
- *iInitialPolicies,
- iStatus);
- }
- else
- {
- iCertChain->ValidateL(*iValidationResult,
- iValidationTime,
- iStatus);
- }
- SetActive();
- }
-
-void CPKIXCertChainHelper::RunL()
- {
- User::LeaveIfError(iStatus.Int());
-
- switch (iState)
- {
- case EInitializeCertStore:
- iCertStoreInitialized = ETrue;
- ValidateChainL();
- break;
-
- case EValidateChain:
- Complete(KErrNone);
- break;
-
- default:
- User::Invariant();
- }
- }
-
-TInt CPKIXCertChainHelper::RunError(TInt aError)
- {
- Complete(aError);
- return KErrNone;
- }
-
-void CPKIXCertChainHelper::DoCancel()
- {
- TInt result = KErrCancel;
-
- switch (iState)
- {
- case EInitializeCertStore:
- iCertStore->CancelInitialize();
- break;
-
- case EValidateChain:
- if (iStatus == KRequestPending)
- {
- iCertChain->CancelValidate();
- }
- else
- {
- result = iStatus.Int();
- }
- break;
-
- default:
- // Do nothing
- break;
- }
-
- Complete(result);
- }
-
-void CPKIXCertChainHelper::Complete(TInt aError)
- {
- iState = EIdle;
- iCertChain = NULL;
- iValidationResult = NULL;
- iInitialPolicies = NULL;
- if (iClientStatus)
- {
- User::RequestComplete(iClientStatus, aError);
- }
- }
+/*
+* Copyright (c) 2004-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:
+*
+*/
+
+
+#include "pkixCertChainHelper.h"
+#include <pkixcertchain.h>
+#include <pkixvalidationresult.h>
+#include <unifiedcertstore.h>
+
+_LIT(KPanicCat, "CPKIXCertChainHelper");
+
+CPKIXCertChainHelper* CPKIXCertChainHelper::NewL(RFs& aFs)
+ {
+ CPKIXCertChainHelper* self = new (ELeave) CPKIXCertChainHelper();
+ CleanupStack::PushL(self);
+ self->ConstructL(aFs);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CPKIXCertChainHelper::CPKIXCertChainHelper() :
+ CActive(EPriorityNormal)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+void CPKIXCertChainHelper::ConstructL(RFs& aFs)
+ {
+ iCertStore = CUnifiedCertStore::NewL(aFs, EFalse);
+ }
+
+CPKIXCertChainHelper::~CPKIXCertChainHelper()
+ {
+ Cancel();
+ delete iCertStore;
+ }
+
+CUnifiedCertStore& CPKIXCertChainHelper::CertStore()
+ {
+ return *iCertStore;
+ }
+
+void CPKIXCertChainHelper::Validate(CPKIXCertChainBase& aCertChain,
+ CPKIXValidationResult& aValidationResult,
+ const TTime& aValidationTime,
+ TRequestStatus& aStatus)
+ {
+ StartValidate(aCertChain, aValidationResult, aValidationTime, NULL,
+ aStatus);
+ }
+
+void CPKIXCertChainHelper::Validate(CPKIXCertChainBase& aCertChain,
+ CPKIXValidationResult& aValidationResult,
+ const TTime& aValidationTime,
+ const CArrayPtr<HBufC>& aInitialPolicies,
+ TRequestStatus& aStatus)
+ {
+ StartValidate(aCertChain, aValidationResult, aValidationTime, &aInitialPolicies,
+ aStatus);
+ }
+
+void CPKIXCertChainHelper::CancelValidate()
+ {
+ if (iState == EInitializeCertStore ||
+ iState == EValidateChain)
+ {
+ Cancel();
+ }
+ }
+
+void CPKIXCertChainHelper::StartValidate(CPKIXCertChainBase& aCertChain,
+ CPKIXValidationResult& aValidationResult,
+ const TTime& aValidationTime,
+ const CArrayPtr<HBufC>* aInitialPolicies,
+ TRequestStatus& aStatus)
+ {
+ __ASSERT_ALWAYS(iState == EIdle, User::Panic(KPanicCat, 1));
+ iCertChain = &aCertChain;
+ iValidationResult = &aValidationResult;
+ iValidationTime = aValidationTime;
+ iInitialPolicies = aInitialPolicies;
+ iClientStatus = &aStatus;
+ aStatus = KRequestPending;
+ InitializeCertStore();
+ }
+
+void CPKIXCertChainHelper::InitializeCertStore()
+ {
+ iState = EInitializeCertStore;
+ if (iCertStoreInitialized)
+ {
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, KErrNone);
+ }
+ else
+ {
+ iCertStore->Initialize(iStatus);
+ }
+ SetActive();
+ }
+
+void CPKIXCertChainHelper::ValidateChainL()
+ {
+ iState = EValidateChain;
+ if (iInitialPolicies)
+ {
+ iCertChain->ValidateL(*iValidationResult,
+ iValidationTime,
+ *iInitialPolicies,
+ iStatus);
+ }
+ else
+ {
+ iCertChain->ValidateL(*iValidationResult,
+ iValidationTime,
+ iStatus);
+ }
+ SetActive();
+ }
+
+void CPKIXCertChainHelper::RunL()
+ {
+ User::LeaveIfError(iStatus.Int());
+
+ switch (iState)
+ {
+ case EInitializeCertStore:
+ iCertStoreInitialized = ETrue;
+ ValidateChainL();
+ break;
+
+ case EValidateChain:
+ Complete(KErrNone);
+ break;
+
+ default:
+ User::Invariant();
+ }
+ }
+
+TInt CPKIXCertChainHelper::RunError(TInt aError)
+ {
+ Complete(aError);
+ return KErrNone;
+ }
+
+void CPKIXCertChainHelper::DoCancel()
+ {
+ TInt result = KErrCancel;
+
+ switch (iState)
+ {
+ case EInitializeCertStore:
+ iCertStore->CancelInitialize();
+ break;
+
+ case EValidateChain:
+ if (iStatus == KRequestPending)
+ {
+ iCertChain->CancelValidate();
+ }
+ else
+ {
+ result = iStatus.Int();
+ }
+ break;
+
+ default:
+ // Do nothing
+ break;
+ }
+
+ Complete(result);
+ }
+
+void CPKIXCertChainHelper::Complete(TInt aError)
+ {
+ iState = EIdle;
+ iCertChain = NULL;
+ iValidationResult = NULL;
+ iInitialPolicies = NULL;
+ if (iClientStatus)
+ {
+ User::RequestComplete(iClientStatus, aError);
+ }
+ }