Index: nss/lib/libpkix/pkix/top/pkix_build.c |
=================================================================== |
--- nss/lib/libpkix/pkix/top/pkix_build.c (revision 251855) |
+++ nss/lib/libpkix/pkix/top/pkix_build.c (working copy) |
@@ -65,7 +65,6 @@ |
state->numFanout = 0; |
state->numDepth = 0; |
state->reasonCode = 0; |
- state->revCheckDelayed = PKIX_FALSE; |
state->canBeCached = PKIX_FALSE; |
state->useOnlyLocal = PKIX_FALSE; |
state->revChecking = PKIX_FALSE; |
@@ -126,9 +125,6 @@ |
* Number of Certs that can be considered at this level (0 = no limit) |
* "numDepth" |
* Number of additional levels that can be searched (0 = no limit) |
- * "revCheckDelayed" |
- * Boolean value indicating whether rev check is delayed until after |
- * entire chain is built. |
* "canBeCached" |
* Boolean value indicating whether all certs on the chain can be cached. |
* "validityDate" |
@@ -159,7 +155,6 @@ |
PKIX_Int32 traversedCACerts, |
PKIX_UInt32 numFanout, |
PKIX_UInt32 numDepth, |
- PKIX_Boolean revCheckDelayed, |
PKIX_Boolean canBeCached, |
PKIX_PL_Date *validityDate, |
PKIX_PL_Cert *prevCert, |
@@ -195,7 +190,6 @@ |
state->numDepth = numDepth; |
state->reasonCode = 0; |
state->revChecking = numDepth; |
- state->revCheckDelayed = revCheckDelayed; |
state->canBeCached = canBeCached; |
state->useOnlyLocal = PKIX_TRUE; |
state->revChecking = PKIX_FALSE; |
@@ -371,7 +365,6 @@ |
"\tnumFanout: \t%d\n" |
"\tnumDepth: \t%d\n" |
"\treasonCode: \t%d\n" |
- "\trevCheckDelayed: \t%d\n" |
"\tcanBeCached: \t%d\n" |
"\tuseOnlyLocal: \t%d\n" |
"\trevChecking: \t%d\n" |
@@ -416,10 +409,6 @@ |
break; |
case BUILD_ABANDONNODE: asciiStatus = "BUILD_ABANDONNODE"; |
break; |
- case BUILD_CRLPREP: asciiStatus = "BUILD_CRLPREP"; |
- break; |
- case BUILD_CRL1: asciiStatus = "BUILD_CRL1"; |
- break; |
case BUILD_DATEPREP: asciiStatus = "BUILD_DATEPREP"; |
break; |
case BUILD_CHECKTRUSTED: asciiStatus = "BUILD_CHECKTRUSTED"; |
@@ -428,8 +417,6 @@ |
break; |
case BUILD_ADDTOCHAIN: asciiStatus = "BUILD_ADDTOCHAIN"; |
break; |
- case BUILD_CRL2: asciiStatus = "BUILD_CRL2"; |
- break; |
case BUILD_VALCHAIN: asciiStatus = "BUILD_VALCHAIN"; |
break; |
case BUILD_VALCHAIN2: asciiStatus = "BUILD_VALCHAIN2"; |
@@ -498,7 +485,6 @@ |
(PKIX_UInt32)state->numFanout, |
(PKIX_UInt32)state->numDepth, |
(PKIX_UInt32)state->reasonCode, |
- state->revCheckDelayed, |
state->canBeCached, |
state->useOnlyLocal, |
state->revChecking, |
@@ -656,8 +642,6 @@ |
PKIX_NULLCHECK_TWO(state, pPending); |
if ((state->status == BUILD_GATHERPENDING) || |
- (state->status == BUILD_CRL1) || |
- (state->status == BUILD_CRL2) || |
(state->status == BUILD_CHECKTRUSTED2) || |
(state->status == BUILD_VALCHAIN2) || |
(state->status == BUILD_AIAPENDING)) { |
@@ -780,16 +764,12 @@ |
* Checks whether the previous Cert stored in the ForwardBuilderState pointed |
* to by "state" successfully chains, including signature verification, to the |
* candidate Cert also stored in "state", using the Boolean value in "trusted" |
- * to determine whether "candidateCert" is trusted. Using the Boolean value in |
- * "revocationChecking" for the existence of revocation checking, it sets |
- * "pNeedsCRLChecking" to PKIX_TRUE if the candidate Cert needs to be checked |
- * against Certificate Revocation Lists. |
+ * to determine whether "candidateCert" is trusted. |
* |
* First it checks whether "candidateCert" has already been traversed by |
- * determining whether it is contained in the List of traversed Certs. It |
+ * determining whether it is contained in the List of traversed Certs. It then |
* checks the candidate Cert with user checkers, if any, in the List pointed to |
- * by "userCheckers". It then runs the signature validation. Finally, it |
- * determines the appropriate value for "pNeedsCRLChecking". |
+ * by "userCheckers". Finally, it runs the signature validation. |
* |
* If this Certificate fails verification, and state->verifyNode is non-NULL, |
* this function sets the Error code into the verifyNode. |
@@ -800,14 +780,8 @@ |
* "userCheckers" |
* Address of a List of CertChainCheckers to be used, if present, to |
* validate the candidateCert. |
- * "revocationChecking" |
- * Boolean indication of whether revocation checking is available, either |
- * as a CertChainChecker or a List of RevocationCheckers. |
* "trusted" |
* Boolean value of trust for the candidate Cert |
- * "pNeedsCRLChecking" |
- * Address where Boolean CRL-checking-needed value is stored. |
- * Must be non-NULL. |
* "plContext" |
* Platform-specific context pointer. |
* THREAD SAFETY: |
@@ -821,9 +795,7 @@ |
pkix_Build_VerifyCertificate( |
PKIX_ForwardBuilderState *state, |
PKIX_List *userCheckers, |
- PKIX_Boolean revocationChecking, |
PKIX_Boolean *pTrusted, |
- PKIX_Boolean *pNeedsCRLChecking, |
PKIX_VerifyNode *verifyNode, |
void *plContext) |
{ |
@@ -841,12 +813,10 @@ |
void *nbioContext = NULL; |
PKIX_ENTER(BUILD, "pkix_Build_VerifyCertificate"); |
- PKIX_NULLCHECK_THREE(state, pTrusted, pNeedsCRLChecking); |
+ PKIX_NULLCHECK_TWO(state, pTrusted); |
PKIX_NULLCHECK_THREE |
(state->candidateCerts, state->prevCert, state->trustChain); |
- *pNeedsCRLChecking = PKIX_FALSE; |
- |
PKIX_INCREF(state->candidateCert); |
candidateCert = state->candidateCert; |
@@ -944,26 +914,6 @@ |
PKIX_ERROR(PKIX_MISSINGDSAPARAMETERS); |
} |
} |
- |
- |
- if (revocationChecking) { |
- if (!trusted) { |
- if (state->revCheckDelayed) { |
- goto cleanup; |
- } else { |
- PKIX_Boolean isSelfIssued = PKIX_FALSE; |
- PKIX_CHECK( |
- pkix_IsCertSelfIssued(candidateCert, &isSelfIssued, |
- plContext), |
- PKIX_ISCERTSELFISSUEDFAILED); |
- if (isSelfIssued) { |
- state->revCheckDelayed = PKIX_TRUE; |
- goto cleanup; |
- } |
- } |
- } |
- *pNeedsCRLChecking = PKIX_TRUE; |
- } |
cleanup: |
PKIX_DECREF(candidateCert); |
@@ -2079,8 +2029,6 @@ |
PKIX_Boolean trusted = PKIX_FALSE; |
PKIX_Boolean isSelfIssued = PKIX_FALSE; |
PKIX_Boolean canBeCached = PKIX_FALSE; |
- PKIX_Boolean revocationCheckingExists = PKIX_FALSE; |
- PKIX_Boolean needsCRLChecking = PKIX_FALSE; |
PKIX_Boolean ioPending = PKIX_FALSE; |
PKIX_PL_Date *validityDate = NULL; |
PKIX_PL_Date *currTime = NULL; |
@@ -2391,9 +2339,6 @@ |
#endif |
if (state->status == BUILD_CERTVALIDATING) { |
- revocationCheckingExists = |
- (state->buildConstants.revChecker != NULL); |
- |
PKIX_DECREF(state->candidateCert); |
PKIX_CHECK(PKIX_List_GetItem |
(state->candidateCerts, |
@@ -2416,9 +2361,7 @@ |
verifyError = pkix_Build_VerifyCertificate |
(state, |
state->buildConstants.userCheckers, |
- revocationCheckingExists, |
&trusted, |
- &needsCRLChecking, |
verifyNode, |
plContext); |
@@ -2453,63 +2396,11 @@ |
(PKIX_LOOPDISCOVEREDDUPCERTSNOTALLOWED); |
} |
state->status = BUILD_GETNEXTCERT; |
- } else if (needsCRLChecking) { |
- state->status = BUILD_CRLPREP; |
} else { |
state->status = BUILD_DATEPREP; |
} |
} |
- if (state->status == BUILD_CRLPREP) { |
- PKIX_RevocationStatus revStatus; |
- PKIX_UInt32 reasonCode; |
- |
- verifyError = |
- PKIX_RevocationChecker_Check( |
- state->prevCert, state->candidateCert, |
- state->buildConstants.revChecker, |
- state->buildConstants.procParams, |
- PKIX_FALSE, |
- (state->parentState == NULL) ? |
- PKIX_TRUE : PKIX_FALSE, |
- &revStatus, &reasonCode, |
- &nbio, plContext); |
- if (nbio != NULL) { |
- *pNBIOContext = nbio; |
- goto cleanup; |
- } |
- if (revStatus == PKIX_RevStatus_Revoked || verifyError) { |
- if (!verifyError) { |
- /* if verifyError is returned then use it as |
- * it has a detailed revocation error code. |
- * Otherwise create a new error */ |
- PKIX_ERROR_CREATE(VALIDATE, PKIX_CERTIFICATEREVOKED, |
- verifyError); |
- } |
- if (state->verifyNode != NULL) { |
- PKIX_CHECK_FATAL(pkix_VerifyNode_SetError |
- (verifyNode, verifyError, plContext), |
- PKIX_VERIFYNODESETERRORFAILED); |
- PKIX_CHECK_FATAL(pkix_VerifyNode_AddToTree |
- (state->verifyNode, |
- verifyNode, |
- plContext), |
- PKIX_VERIFYNODEADDTOTREEFAILED); |
- PKIX_DECREF(verifyNode); |
- } |
- PKIX_DECREF(finalError); |
- finalError = verifyError; |
- verifyError = NULL; |
- if (state->certLoopingDetected) { |
- PKIX_ERROR |
- (PKIX_LOOPDISCOVEREDDUPCERTSNOTALLOWED); |
- } |
- state->status = BUILD_GETNEXTCERT; |
- } else { |
- state->status = BUILD_DATEPREP; |
- } |
- } |
- |
if (state->status == BUILD_DATEPREP) { |
/* Keep track of whether this chain can be cached */ |
PKIX_CHECK(pkix_Build_UpdateDate(state, plContext), |
@@ -2711,7 +2602,6 @@ |
(childTraversedCACerts, |
state->buildConstants.maxFanout, |
state->numDepth - 1, |
- state->revCheckDelayed, |
canBeCached, |
validityDate, |
state->candidateCert, |
@@ -3521,7 +3411,6 @@ |
(0, /* PKIX_UInt32 traversedCACerts */ |
buildConstants.maxFanout, |
buildConstants.maxDepth, |
- PKIX_FALSE, /* PKIX_Boolean revCheckDelayed */ |
PKIX_TRUE, /* PKIX_Boolean canBeCached */ |
NULL, /* PKIX_Date *validityDate */ |
targetCert, /* PKIX_PL_Cert *prevCert */ |