What's New in ASN-1Step

Applies to: ASN-1Step 9.0

What's New in ASN-1Step 9.0

New Features

ASN-1Step now includes ASN.1 Studio v9.0.

ASN-1Step now supports X.680 Amendment 1, which relaxes the IMPORTS clause to allow symbols to be imported from the latest module version, as indicated by the object identifier. The IMPORTS clause can now include WITH SUCCESSORS and WITH DESCENDANTS as the SelectionOption.

The JSON encoders now support an alternative form of encoding values of BIT STRING or OCTET STRING types with contents constraints when an ENCODED BY is absent. When you select this method, the values are encoded as text (the JSON value represents the contained value) rather than hex string.

What's New in ASN-1Step 8.3

New Features

ASN-1Step now includes ASN.1 Studio v8.3.

Support for the Canonical Packed Encoding Rules (ALIGNED and UNALIGNED), as specified by ITU-T Recommendation X.691 (08/2015) | ISO/IEC 8825-2:2015 has been added:

  • The new -cper and -cuper compiler options instruct ASN-1Step to enable support for CPER.
  • For better security, the CPER decoder operates in strict mode: every deviation from the X.691 standard is reported.


ASN-1Step will now accept any valid value of GeneralizedTime and UTCTime types and will encode it according to X.690 Clause 11.7 and 11.8. Previously, it was assumed that the input value already satisfied the restrictions imposed on its encoding by these clauses. Therefore

  • All encoders reported an error if the time differential was present in the input value.
  • The DER/CER/COER encoders reported an error if the input value represented as a NULLTERM string did not contain the minutes or seconds component.

The XER and E-XER encoders now encode any valid NULLTERM values of GeneralizedTime and UTCTime types without making additional changes. Previously, when the input value did not contain a minutes or seconds component, the encoders unnecessarily included a zero minutes or seconds component in the encoding and recalculated the fractional part, if any.

The JSON encoders now encode non-special REAL values as JSON numbers. The JSON decoders will accept both encoding forms: JSON number and JSON object encodings. Previously, non-special REAL values could be encoded as JSON objects. For example, an unconstrained REAL type value was encoded as {base10value: N } The decoders reported an error when such values were encoded as JSON numbers.

ASN-1Step no longer skips adding or removing trailing zero bits when PER encoding a bitstring type value that is defined with a "NamedBitList", has a PER-visible constraint applied, and the -noconstraint option is specified. This is in conformamce with X.691 clause 16.3.

ASN-1Step will automatically disable the default -relaxedMode option when the -designerWarnings option is specified.

What's New in ASN-1Step 8.2

New Features

ASN-1Step now includes ASN.1 Studio v8.2.

JSON Encoding Rules support in ASN-1Step now conforms to Draft ITU-T Recommendation X.jsoner.

JSON encodings inside files with the .jer extension are now accepted.

ASN-1Step conforms to the draft version of the JSON encoding rules (X.jsoner document) as regards the encoding of REAL types. Previously, REAL types were encoded according to the OSS Technical Specification for JSON Encoding Rules.

ASN-1Step supports 3GPP CDR files with messages encoded using various encoding rules that are specified inside 3GPP record headers. Currently the BER, Aligned and Unaligned PER, and XER encoding rules are supported.


Previously, when the -sampleAsn1Value option was specified, ASN-1Step created invalid sample values that had missing values for non-optional components inside SET or SEQUENCE types with constraints that are not yet supported by sample code generation. Now sample values are created, though they might not satisfy all applied constraints.

ASN-1Step issues an error without attempting to decode when the -decode option is used with an invalid PDU type identifier or a 0-PDU number and the Aligned PER, Unaligned PER, OER, COER, or JSON rules are used. Previously, ASN-1Step attempted to decode messages and relied on the corresponding decoder to issue an error.

Trace data generated when decoding PER Aligned messages now prints a whole number of octets in the "Total encoded length" string. Previously, "Total encoded length" was printed without taking the mandatory padding bits into account. For example, 3.2 was printed instead of 4.0 (or 4).

What's New in ASN-1Step 8.1.1

New Features

ASN-1Step now includes ASN.1 Studio v8.1.1.

What's New in ASN-1Step 8.1

New Features

ASN-1Step now includes ASN.1 Studio v8.1.

ASN-1Step now supports 64-bit precision (19-20 decimal digits) in TIME type fractions.

The PER encoder-decoder implementation now conforms to the recent X.691 corrigendum (2015): an encoding contained in a BIT STRING should be at least one octet for PER ALIGNED and 1 bit for PER UNALIGNED.

OER encoding of untagged CHOICE values is now aligned with Corrigendum 1 of the X.696 standard. Previously, such CHOICE values were encoded BER-style: the outermost tag of the chosen alternative was encoded only once.


When OER is used, ASN-1Step now correctly processes ISO 8601 TIME type values with a property settings constraint that specifies "Basic=Date" and "Date=Y", "Date=YM", or "Date=YMD", with no Year settings. Previously, the OER encoder produced a verbose encoding instead of an optimized binary encoding.

ASN-1Step now fully conforms to ITU-T X.680 Clause 46.3c. This clause states that the minutes component of a GeneralizedTime type value can be omitted when the difference between local time and UTC is an integral number of hours. Previously, a false error could be issued when the minutes component was absent.

What's New in ASN-1Step 8.0

New Features

ASN-1Step now includes ASN.1 Studio v8.0.

ASN-1Step now includes support for the 2015 version of the ASN.1 standard.

New command-line options

The following command-line options enable support for the new JSON flags and features:

  • The -json option allows you to specify one or more valid JSON runtime flags to control the way the JSON encodings are created.
  • The -jsonIndent option allows you to specify the indentation size for the JSON encoding generated by ASN-1Step.

For example:

asn1step -json JSON_ENC_ABSENT_COMPONENTS:JSON_WRAPPED_ENCODING jtest.asn -encode value1 -jsonIndent 4

What's New in ASN-1Step 7.4

New Features

ASN-1Step now includes ASN.1 Studio v7.4.

New Command-line Options

OSS runtime flags are now available through the following ASN-1Step options:

-flags <flags>
-encFlags <flags>
-decFlags <flags>

You can specify one or more valid runtime flags separated by commas or colons, immediately after the option. To disable a flag, precede it by an exclamation point ("!").

Use the -csv <flags> command-line option to enable support for Comma-Separated Values (CSV) format when decoding messages.


ASN-1Step skips over pad bytes (0x00 or 0xFF) when decoding concatenated BER messages.

When encoding with PER, ASN-1Step no longer encodes components defined with a DEFAULT value when the value to be encoded is the default one (of a simple type, as noted in clause 19.5 of X.691).

What's New in ASN-1Step 7.1

New Features

ASN-1Step now includes ASN.1 Studio v7.1.

Enhanced OER Support

ASN-1Step now supports Octet Encoding Rules (OER) and Canonical Octet Encoding Rules (COER) as defined in "Rec. ITU-T X.696 | ISO/IEC 8825-7", rather than only the subset of ASN.1 types as defined in the "NTCIP 1102:2004 Octet Encoding Rules (OER) Base Protocol" document.
The Octet Encoding Rules (OER), like the Packed Encoding Rules (PER), produce compact encodings by taking advantage of information present in the ASN.1 schema to limit the amount of information included in each encoded message. However, in contrast to PER, OER favors encoding/decoding speed over compactness of the encodings.

What's New in ASN-1Step 7.0

New Features

ASN-1Step now includes ASN.1 Studio v7.0.

New Command-line Options

Use the new -allSampleAsn1Values and -sampleAsn1Value options to create files that contain sample messages for PDU types in the ASN.1 input that are in ASN.1 value notation format.


Command-line Utility
  • The -listPduIds option now accepts the optional true argument which, when specified, instructs ASN-1Step to limit the number of printed PDU identifiers available for decoding to unreferenced PDU types and to types marked with PDU directives.
  • Error messages and warnings issued now have the same format as error messages issued by other OSS ASN.1 Tools components. Note that ASN-1Step messages used as headers or as part of a trace may still start with the "ASN1STEP" prefix to visually separate output from different operations.

This documentation applies to release 9.0 and later of ASN-1Step®. For earlier versions, consult the PDF manual available in your product installation.

Copyright © 2020 OSS Nokalva, Inc. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means electronic, mechanical, photocopying, recording or otherwise, without the prior permission of OSS Nokalva, Inc.
Every distributed copy of ASN-1Step is associated with a specific license and related unique license number. That license determines, among other things, what functions of ASN-1Step are available to you.