What are the limitations of the ASN.1 INTEGER type? What is the value of MAX that appears in some ASN.1 definitions? How can I indicate that an ASN.1 INTEGER value may be large?

Unlike conventional programming languages, where the integer numbers are implicitly limited by the hardware architecture to 64-bit, 32-bit or even to 16-bit numbers, ASN.1 does not put any limitation on the value of INTEGER at all.

In some specifications MIN and MAX are written in parenthesis next to the type definition: Non-negative ::= INTEGER (0..MAX) Non-positive ::= INTEGER (MIN..0)

In ASN.1 the parenthesis are used to specify subtype constraints. The '..' mark indicates that the values of the defined subtype are limited by the given range. What do MIN and MAX mean here? In general, MIN and MAX in ASN.1 specifies that the range extends in that direction as far as the parent type allows. Here the parent type is an INTEGER that has no limits. This means that in the above notation both MAX and MIN do not represent any finite number. MIN denotes negative infinity and MAX denotes positive infinity. Thus the notation above is normally used to define semi-constrained sets of numbers (with only either the lower or the upper bound being finite).

Is it realistic to expect that some message can contain a value of integer that is "arbitrarily big" (say, that is greater than the maximum 64-bit number)? The answer is yes. In cryptographic standards, for example, huge numbers are pretty common.

We provide an example with more detailed information on this topic. The example explicitly marks types with the --<HUGE>-- directive to indicate that they require special handling because their values most likely will overflow a Java 'long'.

To make it easier for you to run the example from the command line, two scripts are included, a Unix .sh and a Windows .bat.

To run it on a Unix platform, cd to the "hugeint" directory and type:

./run.sh

To run it on Windows, cd to the "hugeint" directory and type:

run

To do a cleanup on Unix, type:

./run.sh cleanup

To do a cleanup on Windows, type:

run cleanup

To download please click on the file below:
hugeint.zip 5KB


The samples included with some of the Knowledge Center answers are meant for your general understanding of the OSS products. Different versions of the products might produce slightly different outputs. Consult the products documentation and samples for the most up-to-date products information and code examples.



Contact Support
contact Our office hours
24 hours/day, 7 days/week

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email: support@oss.com
Free Trial
download

Test drive the OSS Nokalva ASN.1, 4G and XML Tools now! Your trial includes complete software, documentation, sample programs, free 24x7 technical support and more.




Learn ASN.1
Learn ASN.1

Our expert personnel can help you learn ASN.1!

We offer 4-day ASN.1 courses at our headquarters or your premises.