| OLD | NEW | 
|---|
| 1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public | 
| 2  * License, v. 2.0. If a copy of the MPL was not distributed with this | 2  * License, v. 2.0. If a copy of the MPL was not distributed with this | 
| 3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 
| 4 /* | 4 /* | 
| 5  * pkix_build.c | 5  * pkix_build.c | 
| 6  * | 6  * | 
| 7  * Top level buildChain function | 7  * Top level buildChain function | 
| 8  * | 8  * | 
| 9  */ | 9  */ | 
| 10 | 10 | 
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 256                 state->buildConstants.anchors = | 256                 state->buildConstants.anchors = | 
| 257                         parentState->buildConstants.anchors; | 257                         parentState->buildConstants.anchors; | 
| 258                 state->buildConstants.userCheckers = | 258                 state->buildConstants.userCheckers = | 
| 259                         parentState->buildConstants.userCheckers; | 259                         parentState->buildConstants.userCheckers; | 
| 260                 state->buildConstants.hintCerts = | 260                 state->buildConstants.hintCerts = | 
| 261                         parentState->buildConstants.hintCerts; | 261                         parentState->buildConstants.hintCerts; | 
| 262                 state->buildConstants.revChecker = | 262                 state->buildConstants.revChecker = | 
| 263                         parentState->buildConstants.revChecker; | 263                         parentState->buildConstants.revChecker; | 
| 264                 state->buildConstants.aiaMgr = | 264                 state->buildConstants.aiaMgr = | 
| 265                         parentState->buildConstants.aiaMgr; | 265                         parentState->buildConstants.aiaMgr; | 
|  | 266                 state->buildConstants.trustOnlyUserAnchors = | 
|  | 267                         parentState->buildConstants.trustOnlyUserAnchors; | 
| 266         } | 268         } | 
| 267 | 269 | 
| 268         *pState = state; | 270         *pState = state; | 
| 269         state = NULL; | 271         state = NULL; | 
| 270 cleanup: | 272 cleanup: | 
| 271 | 273 | 
| 272         PKIX_DECREF(state); | 274         PKIX_DECREF(state); | 
| 273 | 275 | 
| 274         PKIX_RETURN(FORWARDBUILDERSTATE); | 276         PKIX_RETURN(FORWARDBUILDERSTATE); | 
| 275 } | 277 } | 
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 840         PKIX_ENTER(BUILD, "pkix_Build_VerifyCertificate"); | 842         PKIX_ENTER(BUILD, "pkix_Build_VerifyCertificate"); | 
| 841         PKIX_NULLCHECK_THREE(state, pTrusted, pNeedsCRLChecking); | 843         PKIX_NULLCHECK_THREE(state, pTrusted, pNeedsCRLChecking); | 
| 842         PKIX_NULLCHECK_THREE | 844         PKIX_NULLCHECK_THREE | 
| 843                 (state->candidateCerts, state->prevCert, state->trustChain); | 845                 (state->candidateCerts, state->prevCert, state->trustChain); | 
| 844 | 846 | 
| 845         *pNeedsCRLChecking = PKIX_FALSE; | 847         *pNeedsCRLChecking = PKIX_FALSE; | 
| 846 | 848 | 
| 847         PKIX_INCREF(state->candidateCert); | 849         PKIX_INCREF(state->candidateCert); | 
| 848         candidateCert = state->candidateCert; | 850         candidateCert = state->candidateCert; | 
| 849 | 851 | 
| 850         /* If user defined trust anchor list is not empty, do not |  | 
| 851          * trust any certs except to the ones that are in the list */ |  | 
| 852         if (state->buildConstants.numAnchors) { | 852         if (state->buildConstants.numAnchors) { | 
| 853             trustOnlyUserAnchors = PKIX_TRUE; | 853             trustOnlyUserAnchors = state->buildConstants.trustOnlyUserAnchors; | 
| 854         } | 854         } | 
| 855 | 855 | 
| 856         PKIX_CHECK( | 856         PKIX_CHECK( | 
| 857             PKIX_PL_Cert_IsCertTrusted(candidateCert, | 857             PKIX_PL_Cert_IsCertTrusted(candidateCert, | 
| 858                                        trustOnlyUserAnchors, | 858                                        trustOnlyUserAnchors, | 
| 859                                        &trusted, plContext), | 859                                        &trusted, plContext), | 
| 860             PKIX_CERTISCERTTRUSTEDFAILED); | 860             PKIX_CERTISCERTTRUSTEDFAILED); | 
| 861 | 861 | 
| 862         *pTrusted = trusted; | 862         *pTrusted = trusted; | 
| 863 | 863 | 
| (...skipping 2606 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3470             buildConstants.testDate = testDate; | 3470             buildConstants.testDate = testDate; | 
| 3471             buildConstants.timeLimit = NULL; | 3471             buildConstants.timeLimit = NULL; | 
| 3472             buildConstants.targetCert = targetCert; | 3472             buildConstants.targetCert = targetCert; | 
| 3473             buildConstants.targetPubKey = targetPubKey; | 3473             buildConstants.targetPubKey = targetPubKey; | 
| 3474             buildConstants.certStores = certStores; | 3474             buildConstants.certStores = certStores; | 
| 3475             buildConstants.anchors = anchors; | 3475             buildConstants.anchors = anchors; | 
| 3476             buildConstants.userCheckers = userCheckers; | 3476             buildConstants.userCheckers = userCheckers; | 
| 3477             buildConstants.hintCerts = hintCerts; | 3477             buildConstants.hintCerts = hintCerts; | 
| 3478             buildConstants.revChecker = revChecker; | 3478             buildConstants.revChecker = revChecker; | 
| 3479             buildConstants.aiaMgr = aiaMgr; | 3479             buildConstants.aiaMgr = aiaMgr; | 
| 3480 | 3480             buildConstants.trustOnlyUserAnchors = | 
|  | 3481                     procParams->useOnlyTrustAnchors; | 
|  | 3482 | 
| 3481             PKIX_CHECK(pkix_Build_GetResourceLimits(&buildConstants, plContext), | 3483             PKIX_CHECK(pkix_Build_GetResourceLimits(&buildConstants, plContext), | 
| 3482                     PKIX_BUILDGETRESOURCELIMITSFAILED); | 3484                     PKIX_BUILDGETRESOURCELIMITSFAILED); | 
| 3483 | 3485 | 
| 3484             PKIX_CHECK(pkix_ForwardBuilderState_Create | 3486             PKIX_CHECK(pkix_ForwardBuilderState_Create | 
| 3485                     (0,              /* PKIX_UInt32 traversedCACerts */ | 3487                     (0,              /* PKIX_UInt32 traversedCACerts */ | 
| 3486                     buildConstants.maxFanout, | 3488                     buildConstants.maxFanout, | 
| 3487                     buildConstants.maxDepth, | 3489                     buildConstants.maxDepth, | 
| 3488                     PKIX_FALSE,      /* PKIX_Boolean revCheckDelayed */ | 3490                     PKIX_FALSE,      /* PKIX_Boolean revCheckDelayed */ | 
| 3489                     PKIX_TRUE,       /* PKIX_Boolean canBeCached */ | 3491                     PKIX_TRUE,       /* PKIX_Boolean canBeCached */ | 
| 3490                     NULL,            /* PKIX_Date *validityDate */ | 3492                     NULL,            /* PKIX_Date *validityDate */ | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 3517             state->buildConstants.anchors = buildConstants.anchors; | 3519             state->buildConstants.anchors = buildConstants.anchors; | 
| 3518             PKIX_INCREF(buildConstants.userCheckers); | 3520             PKIX_INCREF(buildConstants.userCheckers); | 
| 3519             state->buildConstants.userCheckers = | 3521             state->buildConstants.userCheckers = | 
| 3520                     buildConstants.userCheckers; | 3522                     buildConstants.userCheckers; | 
| 3521             PKIX_INCREF(buildConstants.hintCerts); | 3523             PKIX_INCREF(buildConstants.hintCerts); | 
| 3522             state->buildConstants.hintCerts = buildConstants.hintCerts; | 3524             state->buildConstants.hintCerts = buildConstants.hintCerts; | 
| 3523             PKIX_INCREF(buildConstants.revChecker); | 3525             PKIX_INCREF(buildConstants.revChecker); | 
| 3524             state->buildConstants.revChecker = buildConstants.revChecker; | 3526             state->buildConstants.revChecker = buildConstants.revChecker; | 
| 3525             state->buildConstants.aiaMgr = buildConstants.aiaMgr; | 3527             state->buildConstants.aiaMgr = buildConstants.aiaMgr; | 
| 3526             aiaMgr = NULL; | 3528             aiaMgr = NULL; | 
|  | 3529             state->buildConstants.trustOnlyUserAnchors = | 
|  | 3530                     buildConstants.trustOnlyUserAnchors; | 
| 3527 | 3531 | 
| 3528             if (buildConstants.maxTime != 0) { | 3532             if (buildConstants.maxTime != 0) { | 
| 3529                     PKIX_CHECK(PKIX_PL_Date_Create_CurrentOffBySeconds | 3533                     PKIX_CHECK(PKIX_PL_Date_Create_CurrentOffBySeconds | 
| 3530                             (buildConstants.maxTime, | 3534                             (buildConstants.maxTime, | 
| 3531                             &state->buildConstants.timeLimit, | 3535                             &state->buildConstants.timeLimit, | 
| 3532                             plContext), | 3536                             plContext), | 
| 3533                             PKIX_DATECREATECURRENTOFFBYSECONDSFAILED); | 3537                             PKIX_DATECREATECURRENTOFFBYSECONDSFAILED); | 
| 3534             } | 3538             } | 
| 3535 | 3539 | 
| 3536             if (pVerifyNode != NULL) { | 3540             if (pVerifyNode != NULL) { | 
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3808                 *pBuildResult = buildResult; | 3812                 *pBuildResult = buildResult; | 
| 3809                 buildResult = NULL; | 3813                 buildResult = NULL; | 
| 3810         } | 3814         } | 
| 3811 | 3815 | 
| 3812 cleanup: | 3816 cleanup: | 
| 3813         PKIX_DECREF(buildResult); | 3817         PKIX_DECREF(buildResult); | 
| 3814         PKIX_DECREF(state); | 3818         PKIX_DECREF(state); | 
| 3815 | 3819 | 
| 3816         PKIX_RETURN(BUILD); | 3820         PKIX_RETURN(BUILD); | 
| 3817 } | 3821 } | 
| OLD | NEW | 
|---|