Peter Gutmann (pgut001@cs.auckland.ac.nz)
Mon, 22 Feb 1999 21:19:00 (NZDT)
<lots of ASN.1 bashing deleted>
>Warning: I have heard numerous complaints that ASN.1 sucks mightily--not
>that I understand the complaints or am competent to judge them.
The problem isn't ASN.1, it's how it's used, or as the old saying goes, "The
determined programmer can write FORTRAN in any language". ASN.1 is just
another programming language, and like any language it's possible to write
complete crap in it. The problem with ASN.1 is that there are no style
guidelines for it (although I've tried to make a start to address some of the
worst sins towards the end of
http://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt), which means that
people will throw together the ASN.1 equivalent of uncommented spaghetti code
with one-letter variable names, and everyone else will look at it and say
"ASN.1 sucks mightily". ASN.1, if used properly, is an extremely elegant and
powerful notation for describing data formats. For opposite ends of the
scale, compare things like PFX (described in
http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html) and CRMF (which has so
many weird and illogical optional elements in it that I don't know how you'll
ever get two versions to interoperate, and actually goes out of it's way to be
non-Y2K-compliant) with things like PKCS #7 (where, like RFC 822, you can just
sit down and implement something straight from the ASN.1 and know that it'll
immediately interoperate with most other implementations) or PKCS #15 (which
is a kind of tour de force of what you can do with ASN.1 if you know how to
use it).
Peter.
The following archive was created by hippie-mail 7.98617-22 on Sat Apr 10 1999 - 01:18:28