Thoughts on the current state of ASN.1 and XML technologies.

Archive for category ASN1VE

Viewing Huawei IMS CDR’s in ASN1VE (Updated)

This is an update to the original blog post on this topic done on June 28, 2011 at http://www.obj-sys.com/blog/?p=355. At the time, we did not have support in ASN1VE to process 3GPP TS 32.297 CDR headers, which is what the Huawei IMS CDR’s mentioned in the post contained. Although it is still possible to skip these headers, this is not reliable as the headers may be variable length. The updated procedure to view these CDR files with a newer version of ASN1VE is as follows:

  1. Open the CDR file. The “Assign All Items Wizard” popup window will appear:

    wizard1

    Select the “cdr” option (not “ber”) and click Next.

  2. The second wizard popup will appear:

    wizard1

    On this popup, check the “3GPP TS 32.297 Headers” radio button and click Next.

The normal procedure for assigning an ASN.1 schema file can then be followed from that point forward. The result will be the display of the CDR file with the headers fully decoded.

An example of this can be found in the sample/ts32297 directory within an ASN1VE installation.

No Comments

Missing DLL Error When Trying to Start ASN1VE on Windows

If you’re running a Windows system with a version of the operating system that’s older than Windows 10, there’s a chance you’ll see a pop-up box like this if you install and try to start ASN1VE:

The missing DLL is part of the Visual Studio 2015 redistributable kit. If this error occurs, it means your Windows system doesn’t have this kit.

You can download the kit and install it from here.

No Comments

New ASN1VE and ASN2TXT releases for 2019

New major releases of our ASN1VE and ASN2TXT products are now available. The primary new feature added to each is support for the new ASN.1 JSON Encoding Rules (JER) as documented in the ITU-T X.697 standard that was made public last fall. ASN1VE now has a JSON tab that shows the JSON encoding for any binary message type. In addition, the Import and Export options under the File pulldown menu allow export to, or importing from JSON. ASN2TXT support translations in both directions (binary -> JSON and JSON -> binary).

Other improvements to ASN1VE included the following:

  • Added the capability to display and edit the contents of OCTET or BIT STRING types with contents constraints (CONTAINING constructs) using the inner contained type.
  • Added level to the tag search dialog to make it possible to search for tags at a given level instead of at any level.
  • Improved PDU tag matching for BER/DER messages with UNIVERSAL tags (common in ASN.1 used in security specifications). This makes it easier to find the PDU type of a message if it is not known.
  • Changed the Windows and Mac installation procedures to install the executable files in the Program Files area and sample programs in the User area. On Windows, sample programs are now copied to the user’s Documents directory under the ASN1VE folder.

For ASN2TXT, the capability do tag path filtering was another new feature that was added. This makes it possible to find and output elements in textual form if the full ASN.1 specification is not available. This capability was further described in this blog post.

Further details can be found in the release notes:

ASN1VE Release Notes
ASN2TXT Release Notes

No Comments

ASN.1 Tag Path Filtering in ASN2TXT

The latest release of our ASN.1 to Text Translation Tool (ASN2TXT) contains a new feature called “tag path filtering”. The purpose of this is to allow users to target specific items within a BER-encoded message without the need for full ASN.1 schema information. One use case for this would be the case where a user has a Call Detail Record (CDR) specification which has snippets of ASN.1 code, but which does not have the full specification. Another use case is where the user has the full specification, but is only interested in accessing a few specific items within the encoded data.

The way it works is the “tag path” to specific elements within the message is specified in an XML file along with other information such as the data type of the item and names to be used. The tag path is a concatenated list of ASN.1 tag values using a special compact syntax. So instead of using the full name for a tag such as [UNIVERSAL 22], only the first letter of the tag class would be used and there would be no space between the letter and the tag number. Therefore, [U22] would be the shorthand name for this tag.

In addition to the tag path, the following items can be used in a tag path specification:

  • name – a name that will be used in some types of output formats in place of the generated tag name.
  • type – the data type of the element used to format the value for output.
  • value – a textual value that would replace the actual data at the tag location.

The specification of a complete tag path is expressed in XML as follows:

<asn1TagPath>
  <path> path in tag path format </path>
  <name> name of the element </name>
  <type> data type of the element </type>
  <value> value to use for the element </value>
</asn1TagPath>

A tag path filter consists of one or more of these elements wrapped in an <asn1TagFilter> element.

This is just a brief summary of the basic idea behind tag paths. Full details can be found in the ASN2TXT User’s Manual in the section on ASN.1 Tag Path Filtering.

No Comments

New Releases of ASN1C and ASN1VE for 2017

We have released new versions of our ASN1C and ASN1VE products for 2017.

ASN1C is an ASN.1 code generator capable of generating C/C++, Java and C# data bindings for ASN.1 schemas.  The new release adds the following new features:

  • Support added for OER in Java and C# – The capability to generate encoders and decoders for the Octet Encoding Rules (OER) in Java and C# languages has been added.  The capability existed previously to generate C/C++ code for these rules. Generated code now supports the ITU-T X.696 standard by default, although it is still possible to code conforming to the original NTCIP standard..
  • Support added for Canonical OER – The capability to generate code to support Canonical OER in all languages has been added.
  • Generation of C/C++ code to better support 64-bit architectures – A new command-line option – -x64 – was added to generate code that is a better fit for 64-bit architectures.
  • Improved support for ISO date/time C/C++ code generation for BER and DER encoding rules.
  • Support added for character string types as default values.
  • Libraries built with gcc 6.x have been added to Linux distributions.

ASN1VE is an ASN.1 Viewer/Editor program that allows ASN.1 encoded data to analyzed and edited.  The following new capabilities were added:

  • Capability to select multiple elements in tree view for deletion or searching.
  • Capability to more accurately show the location of errors in encoded data.
  • Automatic detection of block-size and padding bytes in CDR files with blocked format.

Both of these releases take advantage of a year’s worth of work to improve the ASN.1 processing engine code base infrastructure.  This includes integration of bug fixes to all issues reported during the past year and well as performance and security improvements.

Free evaluation downloads of both products are now available on our web-site.  Users with active support may upgrade to the new releases at any time.

 

No Comments