Support for BC and OpenSSL is just a small part of ASN.1. In fact, for a long time there was no full implementation of ASN.1, at least for the public. Telecommunications and telephone manufacturers probably have fairly complete ASN.1 implementations. Currently the most advanced ASN.1 implementation available to the public is being developed as part of the OsmoCom project, Harald Welte wrote this on his blog: http://laforge.gnumonks.org/weblog/2011/04/12#20110412-mapv1_available
And, even worse, ASN.1, in particular, the very redundant encoding schemes (at least 3 different ways of encoding strings in ASN.1) have caused several security problems in recent years, due to the problems that it caused when proper handling of x509 certificates. x509 is another broken technology from hell, and IMHO is best avoided. Of course, SSL depends on it, but obtaining a certificate signed by a "trusted" CA does not mean anything; any CA can sign for any domain, and, having seen that your browser trusts by default, I no longer trust my browser.
So, let's briefly describe: ASN.1 is broken and should be avoided in new projects. This widespread use outside the telephone network is also the x509. Therefore, I will not use it. Use JSON, BSON, protocol buffers, Netstrings, or something sensible.
source share