J. G. Van Dyke and Associates (VDA), a Wang Government Services Company, has
delivered an enhanced version of the freeware SNACC v1.3 rev 0.07 Abstract
Syntax Notation.1 (ASN.1) Compiler and Library. In past releases, VDA
enhanced the C++ version of the SNACC library to implement the Distinguished
Encoding Rules (DER). In the new release, VDA enhanced the C and C++
versions of the SNACC library to support PrintableString, TeletexString,
VisibileString, BMPString, UniversalString and UTF8String character string
types. We added an optional function to SNACC that can be used to convert
ASN.1 OCTET STRINGs to single- or multi-byte character strings (as
appropriate). This is needed to support the RFC 2459 PKIX requirements.
The SNACC enhancement is completely optional and does not impact existing
code that uses SNACC. The SNACC library decodes an object as it always has.
If the application/library needs the ASN.1 OCTET STRINGs converted to
character strings, then it calls the new SNACC function/class to perform the
conversion. If an application/library does not need the ASN.1 OCTET STRINGs
converted, then it does not need to call the conversion function/classes and
can use the SNACC-generated structures/classes as always.
The VDA-enhanced SNACC compiler and C++ library is available along with the
S/MIME Freeware Library (SFL)
<http://www.armadillo.huntsville.al.us/software/smime> that uses SNACC to
implement the S/MIME v3 set of specifications. The snacc1_6VDA.zip file
contains the SNACC v1.3 rev 0.07 ASN.1 Compiler and C++ Library source code
compilable for Unix and MS Windows NT/95/98/2000.
The VDA-enhanced SNACC C library is available along with the freeware
Certificate Management Library (CML)
uses SNACC to implement the 1997 X.509 Recommendation and RFC 2459. The
CML17sr.tar.Z file includes the source code for the CML and VDA-enhanced
SNACC C library compilable for Unix and MS Windows NT/95/98/2000.
We plan to consolidate the enhancements made by VDA to the C and C++
versions of the SNACC source code into a single baseline that can be
delivered in a single tar/zip file.
In the new release, we also corrected a bug in the DEC_LOAD_ANYBUF macro.
We changed "bytesDecoded" to "bytesDecodedXX" to avoid conflict other SNACC
uses of the "bytesDecoded" variable. We also enhanced the AsnOid method so
that it accepts a dynamic number of components within an object identifier.
SNACC implements the majority of ASN.1 encoding/decoding rules. SNACC does
not support all of
the latest ASN.1 features, but there are work-arounds that allow SNACC to be
used to produce ASN.1 hex encodings that are identical to those produced by
ASN.1 libraries that do support the latest ASN.1 features. Also note that
many of the PKIX specs, such as RFC 2459, include 1988-compliant ASN.1
syntax modules which can be directly compiled using SNACC.
The SNACC ASN.1 library is totally unencumbered as stated in the SFL Public
License. All source code for the VDA-enhanced SNACC software is being
provided at no cost and with no financial limitations regarding its use and
distribution. Organizations can use the VDA-enhanced SNACC software without
paying any royalties or licensing fees.
The Internet Mail Consortium (IMC) has established a SNACC web page
<http://www.imc.org/imc-snacc/>. The IMC has also established a SNACC mail
list which is used to: distribute information regarding SNACC releases;
discuss SNACC-related issues; and provide a means for SNACC users to provide
feedback, comments, bug reports, etc. Subscription information for the
imc-snacc mail list is at the IMC web site listed above.
VDA welcomes all feedback regarding the VDA-enhanced SNACC software. If
bugs are reported, then VDA will investigate each reported bug and, if
required, will produce a patch or an updated release of the software to
repair the bug. We recommend that comments should be sent to the imc-snacc
mail list. We will respond to all messages on that list.
John Pawling, Director - Systems Engineering
J.G. Van Dyke & Associates, Inc;
a Wang Government Services Company