After quoting a passage from ITU document X.690, whose title is:
    ASN.1 encoding rules:
    Specification of Basic Encoding Rules (BER),
    Canonical Encoding Rules (CER) and
    Distinguished Encoding Rules (DER)
on 2009-02-26 01:40 PST, Kyle Hamilton wrote,

> I have not received a specific answer as to my query: 
> is "-----BEGIN X509 CRL-----" a valid DER sequence?

Kyle, the answer to that question is in the document from which you
quoted.  See the section entitled "Basic Encoding Rules".  All other
forms of encoding are derivatives of BER, so understanding BER is
the foundation.  I encourage you to read it.

The short answer is: No.  No data made up entirely of printable ASCII
strings is a valid DER or BER encoding.

PEM's only real value is that it allows data to be copied and pasted
into and out of text documents.  The base64 content is no more
enlightening, and IMO is significantly less informative, than the
binary DER.  PEM encoding adds a MINIMUM 33% overhead in amount of data
that must be sent. That's a 33% tax on all the bandwidth providers and
memory chips, just to allow copying into text documents.  It also requires
an additional pass over all the data to translated it to/from PEM form,
because the binary form is always the one that is valuable to the software.
Use of PEM may be appropriate in text documents, but CRLs being fetched over
the wire are fundamentally NOT text documents.

To make all users pay a 33% bandwidth tax, so that the occasional and rare
person who wants to actually look at the contents can avoid binary, is
silly.  Further, you can find out what kind of document it is from the
MIME content type of the http response, so the PEM header is redundant.

The main point here is that, on the Internet, interoperability is all
achieved based on compliance to Standards.  A standard that says
"There's one way to do this" is generally preferred in the IETF
(but not in the ITU, obviously) to a standard that says "there are
many ways to do this and you must implement them all to be interoperable."

Many of the places where software products already permit a variety of
data formats to be used exist simply because, at the time that the
specification for that software was written, it failed to adequately
specify data formats, usually because it never occurred to the authors
that more than one format was likely to ever be used.  It seemed "obvious"
which was the right format, so no comment about format was provided.
That is the reason for utterly absurd implementations like the one
described in
https://developer.mozilla.org/en/NSS_Certificate_Download_Specification
which accepts certificates in no less than 8 different formats of data.

I applaud the IETF for specifying the formats for CRLs in sufficient
detail that products need not carry multiple implementations in order to
find one that works.  I lament products that promote the use of non-standard
formats, and that some so-called "authorities" are unaware of the
standards' requirements.
--
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to