~ubuntu-branches/ubuntu/karmic/nss/karmic-updates

« back to all changes in this revision

Viewing changes to mozilla/security/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c

  • Committer: Bazaar Package Importer
  • Author(s): Chris Coulson
  • Date: 2010-03-31 02:23:43 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: james.westby@ubuntu.com-20100331022343-ck07ylqk8q474x26
Tags: 3.12.6-0ubuntu0.9.10.1
* New upstream release 3.12.6 RTM (NSS_3_12_6_RTM)
  - fixes CVE-2009-3555 aka US-CERT VU#120541
* Adjust patches to changed upstream code base
  - update debian/patches/38_kbsd.patch
  - update debian/patches/38_mips64_build.patch
  - update debian/patches/85_security_load.patch
* Remove patches that are merged upstream
  - delete debian/patches/91_nonexec_stack.patch
  - update debian/patches/series
* Bump nspr dependency to 4.8
  - update debian/control
* Add new symbols for 3.12.6
  - update debian/libnss3-1d.symbols 
* Enable transitional scheme for SSL renegotiation
  - add 97_SSL_RENEGOTIATE_TRANSITIONAL.patch
  - update debian/patches/series

Show diffs side-by-side

added added

removed removed

Lines of Context:
139
139
        PKIX_RETURN(OCSPCHECKER);
140
140
}
141
141
 
 
142
/*
 
143
 * FUNCTION: pkix_OcspChecker_MapResultCodeToRevStatus
 
144
 */
 
145
PKIX_RevocationStatus
 
146
pkix_OcspChecker_MapResultCodeToRevStatus(SECErrorCodes resultCode)
 
147
{
 
148
        switch (resultCode) {
 
149
            case SEC_ERROR_REVOKED_CERTIFICATE:
 
150
                return PKIX_RevStatus_Revoked;
 
151
            default:
 
152
                return PKIX_RevStatus_NoInfo;
 
153
        }
 
154
}
 
155
 
142
156
/* --Public-Functions--------------------------------------------- */
143
157
 
144
158
/*
187
201
        }
188
202
 
189
203
        PKIX_CHECK(
190
 
            PKIX_PL_OcspCertID_GetFreshCacheStatus(cid, NULL,
 
204
            PKIX_PL_OcspCertID_GetFreshCacheStatus(cid, date,
191
205
                                                   &hasFreshStatus,
192
206
                                                   &statusIsGood,
193
207
                                                   &resultCode,
198
212
                revStatus = PKIX_RevStatus_Success;
199
213
                resultCode = 0;
200
214
            } else {
201
 
                revStatus = PKIX_RevStatus_Revoked;
 
215
                revStatus = pkix_OcspChecker_MapResultCodeToRevStatus(resultCode);
202
216
            }
203
217
        }
204
218
 
251
265
        PKIX_RevocationStatus revStatus = PKIX_RevStatus_NoInfo;
252
266
        void *nbioContext = NULL;
253
267
 
254
 
        PKIX_ENTER(OCSPCHECKER, "pkix_OcspChecker_Check");
 
268
        PKIX_ENTER(OCSPCHECKER, "pkix_OcspChecker_CheckExternal");
255
269
 
256
270
        PKIX_CHECK(
257
271
            pkix_CheckType((PKIX_PL_Object*)checkerObject,
275
289
        if (uriFound == PKIX_FALSE) {
276
290
            /* no caching for certs lacking URI */
277
291
            resultCode = 0;
278
 
            if (methodFlags & PKIX_REV_M_REQUIRE_INFO_ON_MISSING_SOURCE) {
279
 
                revStatus = PKIX_RevStatus_Revoked;
280
 
            }
281
292
            goto cleanup;
282
293
        }
283
294
 
324
335
        }
325
336
 
326
337
        PKIX_CHECK(
327
 
            pkix_pl_OcspResponse_GetStatusForCert(cid, response,
 
338
            pkix_pl_OcspResponse_GetStatusForCert(cid, response, date,
328
339
                                                  &passed, &resultCode,
329
340
                                                  plContext),
330
341
            PKIX_OCSPRESPONSEGETSTATUSFORCERTFAILED);
331
342
        if (passed == PKIX_FALSE) {
332
 
            revStatus = PKIX_RevStatus_Revoked;
 
343
            revStatus = pkix_OcspChecker_MapResultCodeToRevStatus(resultCode);
333
344
        } else {
334
345
            revStatus = PKIX_RevStatus_Success;
335
346
        }
336
347
 
337
348
cleanup:
338
 
        if (revStatus == PKIX_RevStatus_NoInfo && uriFound &&
 
349
        if (revStatus == PKIX_RevStatus_NoInfo && (uriFound || 
 
350
            methodFlags & PKIX_REV_M_REQUIRE_INFO_ON_MISSING_SOURCE) &&
339
351
            methodFlags & PKIX_REV_M_FAIL_ON_MISSING_FRESH_INFO) {
340
352
            revStatus = PKIX_RevStatus_Revoked;
341
353
        }