equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). |
2 * Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). |
3 * All rights reserved. |
3 * All rights reserved. |
4 * This component and the accompanying materials are made available |
4 * This component and the accompanying materials are made available |
5 * under the terms of the License "Eclipse Public License v1.0" |
5 * under the terms of the License "Eclipse Public License v1.0" |
6 * which accompanies this distribution, and is available |
6 * which accompanies this distribution, and is available |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
39 #include "swi/sisinstallblock.h" |
39 #include "swi/sisinstallblock.h" |
40 #include "swi/sistruststatus.h" |
40 #include "swi/sistruststatus.h" |
41 #include "hashcontainer.h" |
41 #include "hashcontainer.h" |
42 #include "certchainconstraints.h" |
42 #include "certchainconstraints.h" |
43 #include "devinfosupportclient.h" |
43 #include "devinfosupportclient.h" |
44 |
44 #include "cleanuputils.h" |
45 #include "log.h" |
45 #include "log.h" |
46 |
46 |
47 // PKIX dependencies |
47 // PKIX dependencies |
48 #include <pkixcertchain.h> |
48 #include <pkixcertchain.h> |
49 #include <x509keys.h> |
49 #include <x509keys.h> |
709 TRevocationDialogMessage* aRevocationMessageOut, |
709 TRevocationDialogMessage* aRevocationMessageOut, |
710 RPointerArray<TOCSPOutcome>& aOcspOutcomeOut, |
710 RPointerArray<TOCSPOutcome>& aOcspOutcomeOut, |
711 RPointerArray<CX509Certificate>& aCertOut, |
711 RPointerArray<CX509Certificate>& aCertOut, |
712 TRequestStatus& aStatus) |
712 TRequestStatus& aStatus) |
713 { |
713 { |
|
714 CleanupResetAndDestroyPushL(aCertOut); |
714 Cancel(); |
715 Cancel(); |
715 |
716 |
716 DEBUG_PRINTF2(_L8("Security Manager - Performing OCSP with revocation server at %S."), |
717 DEBUG_PRINTF2(_L8("Security Manager - Performing OCSP with revocation server at %S."), |
717 &aOcspUri); |
718 &aOcspUri); |
718 |
719 |
725 { |
726 { |
726 CX509Certificate* certOut = CX509Certificate::NewLC(iValidPkixChains[index]->Cert(0)); |
727 CX509Certificate* certOut = CX509Certificate::NewLC(iValidPkixChains[index]->Cert(0)); |
727 aCertOut.AppendL(certOut); |
728 aCertOut.AppendL(certOut); |
728 CleanupStack::Pop(certOut); |
729 CleanupStack::Pop(certOut); |
729 } |
730 } |
730 |
731 |
731 DEBUG_PRINTF2(_L8("Security Manager - Validating %d certificate chains for this controller."), numChains); |
732 DEBUG_PRINTF2(_L8("Security Manager - Validating %d certificate chains for this controller."), numChains); |
732 |
733 |
733 iClientStatus = &aStatus; |
734 iClientStatus = &aStatus; |
734 *iClientStatus = KRequestPending; |
735 *iClientStatus = KRequestPending; |
735 |
736 |
746 iRevocationHandler->SetDefaultURIL(aOcspUri); |
747 iRevocationHandler->SetDefaultURIL(aOcspUri); |
747 iState = EOCSPCheck; |
748 iState = EOCSPCheck; |
748 |
749 |
749 iRevocationHandler->SendRequestL(iValidPkixChains, aIap, iStatus); |
750 iRevocationHandler->SendRequestL(iValidPkixChains, aIap, iStatus); |
750 |
751 |
|
752 CleanupStack::Pop(&aCertOut); |
751 SetActive(); |
753 SetActive(); |
752 } |
754 } |
753 |
755 |
754 EXPORT_C void CSecurityManager::VerifyControllerL( |
756 EXPORT_C void CSecurityManager::VerifyControllerL( |
755 TDesC8& aRawController, |
757 TDesC8& aRawController, |
1142 |
1144 |
1143 EXPORT_C void CSecurityManager::GetCertificatesFromControllerL( |
1145 EXPORT_C void CSecurityManager::GetCertificatesFromControllerL( |
1144 const Sis::CController& aController, |
1146 const Sis::CController& aController, |
1145 RPointerArray<CX509Certificate>& aCerts) |
1147 RPointerArray<CX509Certificate>& aCerts) |
1146 { |
1148 { |
|
1149 CleanupResetAndDestroyPushL(aCerts); |
1147 // Go through all SIS chains and extract end certificates from them. |
1150 // Go through all SIS chains and extract end certificates from them. |
1148 const RPointerArray<Sis::CSignatureCertificateChain>& chains= |
1151 const RPointerArray<Sis::CSignatureCertificateChain>& chains= |
1149 aController.SignatureCertificateChains(); |
1152 aController.SignatureCertificateChains(); |
1150 for (TInt i=0; i<chains.Count(); i++) |
1153 for (TInt i=0; i<chains.Count(); i++) |
1151 { |
1154 { |
1163 CleanupStack::Pop(endCertCopy); |
1166 CleanupStack::Pop(endCertCopy); |
1164 |
1167 |
1165 // Cleanup. |
1168 // Cleanup. |
1166 CleanupStack::PopAndDestroy(pkixChain); |
1169 CleanupStack::PopAndDestroy(pkixChain); |
1167 } |
1170 } |
|
1171 CleanupStack::Pop(&aCerts); |
1168 } |
1172 } |
1169 |
1173 |
1170 EXPORT_C void CSecurityManager::FillCertInfoArrayL( |
1174 EXPORT_C void CSecurityManager::FillCertInfoArrayL( |
1171 const RPointerArray<CX509Certificate>& aCertificates, |
1175 const RPointerArray<CX509Certificate>& aCertificates, |
1172 RPointerArray<CCertificateInfo>& aCertInfos) |
1176 RPointerArray<CCertificateInfo>& aCertInfos) |