Home > Products > ASN1C News

ASN1C ASN.1 Compiler News

The current major version of ASN1C is 6.3. The following features have been added recently:

General

XML Schema (XSD) Compilation
The capability to generate code for XSD files has been added in addition to ASN.1 files. This is accomplished by doing an internal transformation of XSD-to-ASN.1 as specified in the X.694 standard. The resulting types and encoders/decoders make it possible to encode data in W3C-compliant XML form as well as the fast, efficient binary forms as specified in ASN.1 encoding rules standards (BER, DER, CER, or PER).
XSD-to-ASN.1 Translation
The -asn1 switch was added to provide generation of ASN.1 source code from the ASN.1 input based on what the compiler sees and supports. Besides the obvious use of providing neatly formatted ASN.1 source code, the tool is also useful for producing ASN.1 source code from XML schema document (XSD) files as well as producing trimmed specifications when <include> or <exclude> configuration directives are used.
Improved Cross-Platform GUI Wizard
The GUI wizard program used to select options and invoke the compiler was upgraded to be more intuitive by using a tabbed interface.
Eclipse Editor Plug-in
An ASN.1 editor plug-in is now available for use with ASN1C. This plug-in allows ASN.1 source files to be created and edited. ASN1C projects can be created to select compilation options and to invoke the compiler to compile the source files. Any errors that occur during compilation are shown in an error syntax window.

C/C++

Improved Table Constraint Handling
The -table-unions compile option was added to create unions-based table constraint code for ASN.1 specifications that make use of table constraints. These include 3GPP specifications such as RANAP, NBAP, and RNSAP as well as security specifications (CMS, PKIX) and legacy telecom applications (MAP).
Support for stream-based PER encode/decode
Support has been added for stream-based encoding/decoding of PER messages in C/C++. In previous releases, only encoding and decoding from memory buffers was supported. The EmployeeSocketStream sample program demonstrates encoding and decoding PER messages to and from a socket-based stream.
Support for the ASN.1 CONTAINING keyword
Support has been added for adding the type definition contained within a contents constraint specified using the CONTAINING keyword directly into the container type. The generated code will then automatically deal with converting the content to and from the BIT or OCTET STRING type that uses this constraint.
Configuration variables for reducing code size
Several configuration variables have been added for reducing the size of generated code. <notUsed/> and <perEncoding/ were added to allow a user to reduce the code footprint size by removing unused or boilerplate parts of encoded PER messages from generated encoders and decoders. The <encoders>, <decoders>, and <memfree> module directives were added to select individual encode, decode, and memory free functions for generation in a given compilation run.
Support for newer Visual Studio versions
Runtime libraries for Visual Studio 2005 and 2008 (C, C++) are now included by default in Windows packages. In addition, the directory structure has changed to more explicitly indicate which version of Visual Studio is supported: c and cpp remain compatible with version 6.0; *_vs2003 replace the *_mscv71 directories; *_vs2005 replace the *_mscv8 directories.
Generation of Visual Studio Project Files
The generate VC project option (-vcproj) has been added to allow generation of Visual Studio project files. These allow a user who is familair with Visual Studio to get up and running quickly by generating both the code and project files necessary to build the project from a given set of XSD or ASN.1 schemas.
Support for Symbian OS
A special compiler switch (-symbian) and run-time compilation options have been added that allows ASN1C generated code to work with the Symbian OS. This capability is present in the embedded developers package.

Java

Constraint checking added to Java/C# setters
Generated Java and C# set methods will now do constraint checks as defined in the ASN.1 source code when setting a variable. This is done in addition to checks done by the encode methods.
J2ME CLDC Support Upgraded
ASN1C can now generate code with Java J2ME CLDC support by using the -cldc command-line option in conjunction with the optimized .jar files with this support.
Generation of Ant build.xml files for Java
The capability has been added to generate Ant build.xml files for building generated Java projects including a reader and a writer. This makes it possible to easily import the project into popular Java IDE's such as Eclipse or Netbeans.
XML Schema (XSD) Compilation
It is now possible to directly generate Java or C# classes directly from an XML Schema (XSD) file. These classes allow encoding /decoding of XML instances as well as binary messages (BER, DER, CER, or PER)