Well, I got an interesting correspondence yesterday and a follow-up today–and in investigating I realized that there were some primitives in my ASN.1 BER library which I failed to handle back when I wrote this two years ago.
Originally I wrote the library because I was interested in building my own LDAP engine. I had written parts of an engine, but I “borrowed” the Netscape LDAP library’s BER tag parsing code to handle incoming and outgoing messages. But the LDAP library wasn’t mine, nor was it robust, so I set out to write a replacement.
The problem was when I got enough to parse LDAP, I considered my replacement done. And it wasn’t. Far from it.
It turns out there are a couple of other primitive types that have been introduced elsewhere: RFC 3641 defines a couple of new constructs, and it turns out I completely skipped one of the primitives, the relative OID type, when I originally built my library.
I’ve corrected the problems, and uploaded a new version of the library, though the new types aren’t very well tested at this point.
Update: After spending the past few months writing Objective C++ code, it felt good to blow the dust off my mad Java sk|11z.
Update 2: Did I mention Fatih Batuk’s Java ASN.1 Compiler that uses my library? Go check it out.