Last Comment Bug 148214 - NSS should support delta-CRLs.
: NSS should support delta-CRLs.
Status: NEW
Product: NSS
Classification: Components
Component: Libraries (show other bugs)
: 3.5
: All All
P4 enhancement with 2 votes (vote)
: Future
Assigned To: Wan-Teh Chang
: 95498 (view as bug list)
Depends on:
Blocks: 148200
  Show dependency treegraph
Reported: 2002-05-30 13:36 PDT by Wan-Teh Chang
Modified: 2011-04-19 14:42 PDT (History)
11 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---

HTML that demonstrates the problem (51.88 KB, text/html)
2006-01-22 03:18 PST, David Lowrey
no flags Details

Description User image Wan-Teh Chang 2002-05-30 13:36:29 PDT
NSS should support delta-CRLs.
Comment 1 User image Nelson Bolyard (seldom reads bugmail) 2003-05-08 14:17:54 PDT
"Future" target implies P4.
Comment 2 User image Nelson Bolyard (seldom reads bugmail) 2004-02-04 20:47:59 PST
*** Bug 95498 has been marked as a duplicate of this bug. ***
Comment 3 User image Julien Pierre 2005-02-15 21:27:36 PST
Implementing delta CRLs should be fairly straightforward, thanks to the CRL
cache changes made in bug 243585 . I would say that it is about 3 days, but
unfortunately the project isn't on my to-do list at Sun currently.

Nevertheless, here is what is left to do :

1) fix CERT_DecodeDERCrlWithFlags so that it supports delta CRLs .
There is currently a check for unsupported critical extensions which fails. We
would need to add the delta CRL extension to the supported list, and add a bit
in the opaque CRL fields to indicate that the CRL is a delta.

However, I think the deltas should only decode if a new flag is added,
CRL_DECODE_ALLOW_DELTAS . Otherwise, applications that until now were only
expecting full CRLs might get delta CRLs out of this function. The new flag is
needed to make sure the application can deal with a delta.

2) fix the new CERT_CacheCRL and CERT_UncacheCRL public functions so that they
use CRL_DECODE_ALLOW_DELTAS during the CRL decoding step

3) fix the CRL selection algorithm in DPCache_SelectCRL
Currently, the algorithm picks the CRL with the latest thisUpdate, and builds a
cache of it. The chosen full CRL is saved in the "selected" field of the DPCache

The new CRL selection function would need to find up to two objects instead of
one - a full CRL, as it does now, and a delta CRL which can be applied to it.

Identification of the best combination is probably better accomplished using the
CRL number extension (required by RFC 3280) than with the thisUpdate field.

Once the delta is identified (if any), then selectCRL would build a cache of the
delta, as it does now, with DPCache_Populate, which shouldn't need any modification.

4) Fix the DPCache_Lookup function, so that it does a look up of the serial
number in both the full CRL's hash table and the delta CRL's hash table, if
present .

This function would need to properly deal with the "hold" and "remove from CRL"
reason codes.

5) note that the above won't allow storage of delta CRLs in softoken, they will
only the CRL cache and thus the cert chain verification to process delta CRLs.
Adding delta CRL storage to softoken would require a new PKCS#11 object type to
be defined specifically for delta CRLs. This may require a new database format.
Part of the requirement would be the ability to store multiple delta CRLs. We
don't want to repeat the mistake of being able to store only one CRL per issuer.

However, adding PKCS#11 storage of delta CRLs is an optional part of the
project. Now that the CERT_CacheCRL / CERT_UncacheCRL APIs are available, NSS
applications have the ability to fetch CRLs on their own and feed them to the
CRL cache so NSS can use them, even if those CRLs can't be stored in a PKCS#11
token. Implementing steps 1 - 4 as described above would add the ability to feed
delta CRLs to those functions, instead of just full CRLs as is currently the case.
Comment 4 User image David Lowrey 2006-01-22 03:18:10 PST
Created attachment 209266 [details]
HTML that demonstrates the problem

This file demonstrates the problem.

The graphics representing the barcodes are missing, but that doesnt effect the problem.

It looks fine when you display it, but when you print it, it looks bad.
Comment 5 User image David Lowrey 2006-01-22 03:18:53 PST
I have attached a HTML file that demonstrates the problem.
Comment 6 User image Nelson Bolyard (seldom reads bugmail) 2006-01-22 14:03:24 PST
I think that attachment was attached to the wrong bug.
This bug has nothing to do with printing.

Note You need to log in before you can comment on or make changes to this bug.