| 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_pl_ocspcertid.c | 5 * pkix_pl_ocspcertid.c |
| 6 * | 6 * |
| 7 * Certificate ID Object for OCSP | 7 * Certificate ID Object for OCSP |
| 8 * | 8 * |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 PKIX_PL_OcspCertID *cid, | 177 PKIX_PL_OcspCertID *cid, |
| 178 PKIX_PL_Date *validity, | 178 PKIX_PL_Date *validity, |
| 179 PKIX_Boolean *hasFreshStatus, | 179 PKIX_Boolean *hasFreshStatus, |
| 180 PKIX_Boolean *statusIsGood, | 180 PKIX_Boolean *statusIsGood, |
| 181 SECErrorCodes *missingResponseError, | 181 SECErrorCodes *missingResponseError, |
| 182 void *plContext) | 182 void *plContext) |
| 183 { | 183 { |
| 184 PRTime time = 0; | 184 PRTime time = 0; |
| 185 SECStatus rv; | 185 SECStatus rv; |
| 186 SECStatus rvOcsp; | 186 SECStatus rvOcsp; |
| 187 OCSPFreshness freshness; |
| 187 | 188 |
| 188 PKIX_ENTER(DATE, "PKIX_PL_OcspCertID_GetFreshCacheStatus"); | 189 PKIX_ENTER(DATE, "PKIX_PL_OcspCertID_GetFreshCacheStatus"); |
| 189 PKIX_NULLCHECK_THREE(cid, hasFreshStatus, statusIsGood); | 190 PKIX_NULLCHECK_THREE(cid, hasFreshStatus, statusIsGood); |
| 190 | 191 |
| 191 if (validity != NULL) { | 192 if (validity != NULL) { |
| 192 PKIX_CHECK(pkix_pl_Date_GetPRTime(validity, &time, plContext), | 193 PKIX_CHECK(pkix_pl_Date_GetPRTime(validity, &time, plContext), |
| 193 PKIX_DATEGETPRTIMEFAILED); | 194 PKIX_DATEGETPRTIMEFAILED); |
| 194 } else { | 195 } else { |
| 195 time = PR_Now(); | 196 time = PR_Now(); |
| 196 } | 197 } |
| 197 | 198 |
| 198 rv = ocsp_GetCachedOCSPResponseStatusIfFresh( | 199 rv = ocsp_GetCachedOCSPResponseStatus( |
| 199 cid->certID, time, PR_TRUE, /*ignoreGlobalOcspFailureSetting*/ | 200 cid->certID, time, PR_TRUE, /*ignoreGlobalOcspFailureSetting*/ |
| 200 &rvOcsp, missingResponseError); | 201 &rvOcsp, missingResponseError, &freshness); |
| 201 | 202 |
| 202 *hasFreshStatus = (rv == SECSuccess); | 203 *hasFreshStatus = (rv == SECSuccess && freshness == ocspFresh); |
| 203 if (*hasFreshStatus) { | 204 if (*hasFreshStatus) { |
| 204 *statusIsGood = (rvOcsp == SECSuccess); | 205 *statusIsGood = (rvOcsp == SECSuccess); |
| 205 } | 206 } |
| 206 cleanup: | 207 cleanup: |
| 207 PKIX_RETURN(OCSPCERTID); | 208 PKIX_RETURN(OCSPCERTID); |
| 208 } | 209 } |
| 209 | 210 |
| 210 /* | 211 /* |
| 211 * FUNCTION: PKIX_PL_OcspCertID_RememberOCSPProcessingFailure | 212 * FUNCTION: PKIX_PL_OcspCertID_RememberOCSPProcessingFailure |
| 212 * DESCRIPTION: | 213 * DESCRIPTION: |
| (...skipping 28 matching lines...) Expand all Loading... |
| 241 | 242 |
| 242 cert_RememberOCSPProcessingFailure(cid->certID, &certIDWasConsumed); | 243 cert_RememberOCSPProcessingFailure(cid->certID, &certIDWasConsumed); |
| 243 | 244 |
| 244 if (certIDWasConsumed) { | 245 if (certIDWasConsumed) { |
| 245 cid->certID = NULL; | 246 cid->certID = NULL; |
| 246 } | 247 } |
| 247 | 248 |
| 248 PKIX_RETURN(OCSPCERTID); | 249 PKIX_RETURN(OCSPCERTID); |
| 249 } | 250 } |
| 250 | 251 |
| OLD | NEW |