Subject: v1.3 R7 Enhanced SNACC Software Now Available

From: "Pawling, John" <[email-masked]>
Date: Fri, 30 Nov 2001 15:19:18 -0500

All,

Getronics Government Solutions has delivered the v1.3 R7 Enhanced SNACC
Abstract Syntax Notation.1 (ASN.1) Compiler, C++ library and C library
source code compilable for Linux, Sun Solaris 2.7 and Microsoft (MS) 
Windows NT/98/2000.  The Enhanced SNACC software is freely available to
everyone from: <http://www.getronicsgov.com/hot/snacc_home.htm>

The Enhanced SNACC ASN.1 software can be used to ASN.1 encode and decode
objects.  In past releases, Getronics enhanced the SNACC library to 
implement the Distinguished Encoding Rules (DER), support large ASN.1 
INTEGERs, and improve memory usage.    

v1.3 R7 Enhanced SNACC C++ ASN.1 Library enhancements:

 1) Enhanced AsnOcts class to leave large (>100 MB) OCTET STRING content
as files. 

 2) Replaced longjmps with C++ exceptions. 

 3) Enhanced AsnOid class with features from CSM_OID class. 

 4) Incorporated recent modifications to C string classes in C++ string
classes (i.e., BMPString, IA5String, etc.) 

 5) Enhanced AsnInt class to handle huge integers. 

 6) Incorporated all ASN.1 library types into a single header file. 

 7) Placed all ASN.1 types inside ASN namespace. 

 8) Added const qualifier to all C++ library member functions that 
don't change member variables. 

 9) Added mutable qualifier to the AsnList::curr member variable and
add const and non-const versions of the AsnList member functions. 

10) Enhanced SNACC C++ library to maximize thread-safety.  

11) Implemented 1997 X.690 DER requirement for SET OF components such 
that the tag and length of each component is ignored for purposes
of comparison. 

12) Tested with v2.0 S/MIME Freeware Library (SFL) 
<http://www.getronicsgov.com/hot/sfl_home.htm> that use the Enhanced
SNACC ASN.1 software to encode and decode the IETF S/MIME v3 
Cryptographic Message Syntax (RFC 2630) and Enhanced Security 
Services for S/MIME (RFC 2634) security protocol.  

13) Tested with freeware v2.0 Certificate Management Library (CML)
<http://www.getronicsgov.com/hot/cml_home.htm> that uses the Enhanced
SNACC ASN.1 software to encode and decode X.509 certificates, 
attribute certificates and Certificate Revocation Lists as specified
in the 2000 X.509 Recommendation.

14) Tested with freeware v2.0 Access Control Library (ACL)
<http://www.getronicsgov.com/hot/acl_home.htm> that uses the Enhanced
SNACC ASN.1 software to encode and decode security labels and other 
objects (such as Security Policy Information Files) required to
provide rule based automated access control as specified in SDN.801.

v1.3 R7 Enhanced SNACC Compiler enhancements:

1) Added support for ASN.1 string classes as built-in types. 

2) Replaced longjmps with C++ exceptions in generated code. 

3) Incorporated C ANY handling mechanisms.  This includes supporting 
the ANY handler parsing and registration mechanism used by the 
compiler. 

4) Changed generated code to be inside ASN namespace. 

API Changes: The v1.3 R7 Enhanced SNACC C++ ASN.1 Library provides the
identical API as provided by the v1.3 R6 Enhanced SNACC C++ ASN.1 Library 
except for the following changes: 

1) Enhanced SNACC symbols are contained in a SNACC namespace (see below).
 
2) The CSM_OID class has been replaced with the SNACC::AsnOid class. 
The AsnOid class now has string handling capabilities (both input and
output). The original CSM_OID::GetOidDescription() method was removed;
the AsnOid::GetChar() method returns the numeric OID as a string
(e.g. "1.2.3.1.1.1"). This will impact applications if they
compare the descriptive OIDs provided by the Enhanced SNACC Library. 
This will not impact the comparison of numeric strings. For example, 
applications will no longer be able to use "id_dsa", they must now
compare the numeric string representation of the id-dsa OID. 

3) The CSMIME class was split into two classes: CSM_CtilMgr (with
CSM_CtilInst, no certificate details) and CSMIME (with CSM_CSInst,
containing certificate details). This only impacts the 
application code that walks through the linked list of logins in 
the CSMIME class. The member variable name was changed from 
"m_pCSInsts" to "m_pCSInsts2". This was done to force the 
developer to view the logic to see if the simpler, non-certificate 
based login instance variable can be used. In most cases, the 
integrator will be able to simply add the "2" to the name and
re-build.

Namespace: The v2.0 libraries use the "namespace" feature.
The symbols for each library are contained in its own namespace:
SFL, CERT, CTIL, SNACC, acl, CML.  The namespace feature allows 
the compiler to isolate the symbols for each library. This 
enhancement causes a minor impact to the source code developed
to use the libraries.  The integrator will need to add a few
lines of code to each source code file (or, possibly, in an 
include file) stating that the appropriate namespaces are being
used such as: "using namespace SNACC;".

The Enhanced SNACC ASN.1 software implements the majority of the ASN.1
encoding/decoding rules specified in the 1988 X.209 Recommendation.  It 
implements the DER as specified in the 1994 X.690 Recommendation.  It does
not support all of the latest ASN.1 features, but there are work-arounds
that allow it to be used to produce ASN.1 hex encodings that are identical
to those produced by ASN.1 libraries that support the latest ASN.1
features.  Also, many of the IETF specifications, such as PKIX and S/MIME, 
include 1988-compliant ASN.1 syntax modules that can be compiled using the 
Enhanced SNACC ASN.1 compiler.

The Enhanced SNACC ASN.1 library is totally unencumbered as stated in the 
Enhanced SNACC Software Public License.  All source code for the Enhanced
SNACC software is being provided at no cost and with no financial 
limitations regarding its use and distribution.  Organizations can use the
Enhanced SNACC software without paying any royalties or licensing fees.  

The Internet Mail Consortium (IMC) has established an Enhanced SNACC web 
page <http://www.imc.org/imc-snacc/>.  The IMC has established an Enhanced
SNACC mail list which is used to: distribute information regarding
releases; discuss technical issues; and provide a means for users to 
provide feedback, comments, bug reports, etc.  Subscription information 
for the imc-snacc mail list is at the IMC web site listed above.

We welcome all feedback regarding the Enhanced SNACC software.  If bugs 
are reported, then we will investigate each reported bug and, if required, 
will produce a patch or an updated release of the software to repair the 
bug. 

This release announcement was sent to several mail lists, but please send
all messages regarding the Enhanced SNACC software to the imc-snacc mail
list ONLY.  Please do not send messages regarding the Enhanced SNACC 
software to any of the IETF mail lists.  We will respond to all messages
sent to the imc-snacc mail list.

===========================================
John Pawling, [email-masked]
Getronics Government Solutions, LLC
===========================================