Information technology — ASN.1 encoding rules — Part 7: Specification of Octet Encoding Rules (OER)

This document specifies a set of Basic Octet Encoding Rules (BASIC-OER) that may be used to derive a transfer syntax for values of the types defined in Rec. ITU-T X.680 | ISO/IEC 8824-1, Rec. ITU‑T X.681 | ISO/IEC 8824-2, Rec. ITU-T X.682 | ISO/IEC 8824-3, Rec. ITU-T X.683 | ISO/IEC 8824-4. This document also specifies a set of Canonical Octet Encoding Rules (CANONICAL-OER) which provides constraints on the Basic Octet Encoding Rules and produces a unique encoding for any given ASN.1 value. It is implicit in the specification of these encoding rules that they are also to be used for decoding. The encoding rules specified in this document: – are used at the time of communication; – are intended for use in circumstances where encoding/decoding speed is the major concern in the choice of encoding rules; – allow the extension of an abstract syntax by addition of extra values for all forms of extensibility described in Rec. ITU-T X.680 | ISO/IEC 8824‑1.

Technologies de l'information — Règles de codage ASN.1 — Partie 7: Spécification des règles de codage des octets (OER)

General Information

Status
Published
Publication Date
29-Jun-2021
Current Stage
6060 - International Standard published
Start Date
30-Jun-2021
Completion Date
30-Jun-2021
Ref Project

RELATIONS

Buy Standard

Standard
ISO/IEC 8825-7:2021 - Information technology -- ASN.1 encoding rules
English language
26 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

INTERNATIONAL ISO/IEC
STANDARD 8825-7
Third edition
2021-06
Information technology — ASN.1
encoding rules —
Part 7:
Specification of Octet Encoding Rules
(OER)
Technologies de l'information — Règles de codage ASN.1 —
Partie 7: Spécification des règles de codage des octets (OER)
Reference number
ISO/IEC 8825-7:2021(E)
ISO/IEC 2021
---------------------- Page: 1 ----------------------
ISO/IEC 8825-7:2021(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2021

All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may

be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting

on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address

below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2021 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 8825-7:2021(E)
Foreword

ISO (the International Organization for Standardization) and IEC (the International Electrotechnical

Commission) form the specialized system for worldwide standardization. National bodies that are

members of ISO or IEC participate in the development of International Standards through technical

committees established by the respective organization to deal with particular fields of technical activity.

ISO and IEC technical committees collaborate in fields of mutual interest. Other international

organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the

work.

The procedures used to develop this document and those intended for its further maintenance are

described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for

the different types of document should be noted. This document was drafted in accordance with

the editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives or

www.iec.ch/members_experts/refdocs)

Attention is drawn to the possibility that some of the elements of this document may be the subject of

patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details

of any patent rights identified during the development of the document will be in the Introduction and/or

on the ISO list of patent declarations received (see www.iso.org/patents) or the IEC list of patent

declarations received (see patents.iec.ch).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and

expressions related to conformity assessment, as well as information about ISO's adherence to the

World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT)

see www.iso.org/iso/foreword.html. In the IEC, see www.iec.ch/understanding-standards.

This document was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,

Subcommittee SC 6, Telecommunications and information exchange between systems, in collaboration

with ITU-T. The identical text is published as ITU-T X.696 (02/2021).

This third edition cancels and replaces the second edition (ISO/IEC 8825-7:2015), which has been

technically revised. It also incorporates ISO/IEC 8825-7:2015/Cor 2:2017, ISO/IEC 8825-7:2015/

Cor 3:2018, ISO/IEC 8825-7:2015/Cor 4:2018.

A list of all parts in the ISO/IEC 8825 series can be found on the ISO and IEC websites.

Any feedback or questions on this document should be directed to the user’s national standards body. A

complete listing of these bodies can be found at www.iso.org/members.html and www.iec.ch/national-

committees.
© ISO/IEC 2021 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 8825-7:2021(E)
CONTENTS
Page

1 Scope ....................................................................................................................................................... 1

2 Normative references ................................................................................................................................ 1

2.1 Identical Recommendations | International Standards..................................................................... 1

2.2 Additional references ..................................................................................................................... 1

3 Definitions................................................................................................................................................ 2

3.1 Specification of basic notation ....................................................................................................... 2

3.2 Information object specification ..................................................................................................... 2

3.3 Constraint specification ................................................................................................................. 2

3.4 Parameterization of ASN.1 specification ........................................................................................ 2

3.5 Basic Encoding Rules (BER) ......................................................................................................... 2

3.6 Packed Encoding Rules (PER) ....................................................................................................... 2

3.7 Additional definitions .................................................................................................................... 2

4 Abbreviations ........................................................................................................................................... 4

5 Convention ............................................................................................................................................... 4

6 Encodings specified by this Recommendation | International Standard ..................................................... 4

7 Conformance ............................................................................................................................................ 5

8 General provisions .................................................................................................................................... 5

8.1 Use of the type notation ................................................................................................................. 5

8.2 Constraints .................................................................................................................................... 5

8.3 Type and value model used for encoding ....................................................................................... 7

8.4 Types to be encoded ...................................................................................................................... 7

8.5 Production of a complete OER encoding........................................................................................ 7

8.6 Length determinant ........................................................................................................................ 7

8.7 Encoding of tags ............................................................................................................................ 8

9 Encoding of Boolean values ..................................................................................................................... 8

10 Encoding of integer values........................................................................................................................ 8

11 Encoding of enumerated values ................................................................................................................ 9

12 Encoding of real values .......................................................................................................................... 10

13 Encoding of bitstring values ................................................................................................................... 11

13.1 General ........................................................................................................................................ 11

13.2 Encoding of bitstring types with a fixed size ................................................................................ 11

13.3 Encoding of bitstring types with a variable size ........................................................................... 11

14 Encoding of octetstring values ................................................................................................................ 11

15 Encoding of the null value ...................................................................................................................... 12

16 Encoding of sequence values .................................................................................................................. 12

17 Encoding of sequence-of values .............................................................................................................. 13

18 Encoding of set values ............................................................................................................................ 13

19 Encoding of set-of values ....................................................................................................................... 13

20 Encoding of choice values ...................................................................................................................... 13

21 Encoding of object identifier values ........................................................................................................ 14

22 Encoding of relative object identifier values ........................................................................................... 14

23 Encoding of values of the internationalized resource reference type ........................................................ 14

24 Encoding of values of the relative internationalized resource reference type ........................................... 14

25 Encoding of values of the embedded-pdv type ........................................................................................ 14

26 Encoding of values of the external type .................................................................................................. 14

27 Encoding of values of the restricted character string types ...................................................................... 15

28 Encoding of values of the unrestricted character string type .................................................................... 15

Rec. ITU-T X.696 (02/2021) iii
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 8825-7:2021(E)
Page

29 Encoding of values of the time types ...................................................................................................... 16

29.1 General ........................................................................................................................................ 16

29.2 Optimized encoding of time subtypes with the Basic=Date property setting ................................. 17

29.3 Optimized encoding of time subtypes with the Basic=Time property setting ................................ 18

29.4 Optimized encoding of time subtypes with the Basic=Interval property setting ............................ 19

30 Encoding of open type values ................................................................................................................. 20

31 Canonical Octet Encoding Rules............................................................................................................. 20

32 Object identifier values referencing the encoding rules ........................................................................... 21

Annex A – Example of OER encodings ............................................................................................................. 21

A.1 ASN.1 description of the record structure .................................................................................... 22

A.2 ASN.1 description of a record value ............................................................................................ 22

A.3 BASIC-OER and CANONICAL-OER representation of this record value ................................... 22

A.3.1 Hexadecimal view .......................................................................................................... 23

A.3.2 Descriptive view ............................................................................................................ 23

Annex B – Interoperability with NTCIP 1102:2004 ........................................................................................... 26

Bibliography ..................................................................................................................................................... 26

iv Rec. ITU-T X.696 (02/2021)
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 5 ----------------------
ISO/IEC 8825-7:2021(E)
Introduction

The publications Rec. ITU-T X.680 | ISO/IEC 8824-1, Rec. ITU-T X.681 | ISO/IEC 8824-2, Rec. ITU-T X.682 |

ISO/IEC 8824-3, Rec. ITU-T X.683 | ISO/IEC 8824-4 together describe Abstract Syntax Notation One (ASN.1), a

notation for the definition of messages to be exchanged between peer applications.

This Recommendation | International Standard defines encoding rules that may be applied to values of ASN.1 types

which have been defined using the notation specified in the above-mentioned publications. Application of these

encoding rules produces a transfer syntax for such values. It is implicit in the specification of these encoding rules that

they are also to be used for decoding.

There are more than one set of encoding rules that can be applied to values of ASN.1 types. This Recommendation |

International Standard defines two sets of Octet Encoding Rules, so-called because the encoding of every type takes a

whole number of octets. Encoding and decoding data with the Octet Encoding Rules is usually faster than encoding and

decoding the same data with the Basic Encoding Rules (described in Rec. ITU-T X.690 | ISO/IEC 8825-1) or the

Packed Encoding Rules (described in Rec. ITU-T X.691 | ISO/IEC 8825-2).

NOTE – The encoding rules specified in this Recommendation | International Standard derive from the Octet Encoding Rules

(OER) published by American Association of State Highway and Transportation Officials (AASHTO), Institute of

Transportation Engineers (ITE) and National Electrical Manufacturers Association (NEMA) as NTCIP 1102:2004. In most

practical cases, an implementation of this Recommendation | International Standard can interoperate with an implementation of

NTCIP 1102.
Clauses 8 to 30 specify the BASIC-OER encoding of ASN.1 types.
Clause 31 specifies the CANONICAL-OER encoding of ASN.1 types.

Annex A is informative and contains examples of BASIC-OER and CANONICAL-OER encodings.

Annex B is informative and addresses the Interoperability of the encoding rules with NTCIP 1102:2004.

Rec. ITU-T X.696 (02/2021) v
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 8825-7:2021 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
Information technology – ASN.1 encoding rules: Specification of
Octet Encoding Rules (OER)
1 Scope

This Recommendation | International Standard specifies a set of Basic Octet Encoding Rules (BASIC-OER) that may be

used to derive a transfer syntax for values of the types defined in Rec. ITU-T X.680 | ISO/IEC 8824-1,

Rec. ITU-T X.681 | ISO/IEC 8824-2, Rec. ITU-T X.682 | ISO/IEC 8824-3, Rec. ITU-T X.683 | ISO/IEC 8824-4. This

Recommendation | International Standard also specifies a set of Canonical Octet Encoding Rules (CANONICAL-OER)

which provides constraints on the Basic Octet Encoding Rules and produces a unique encoding for any given ASN.1

value. It is implicit in the specification of these encoding rules that they are also to be used for decoding.

The encoding rules specified in this Recommendation | International Standard:
– are used at the time of communication;

– are intended for use in circumstances where encoding/decoding speed is the major concern in the choice

of encoding rules;

– allow the extension of an abstract syntax by addition of extra values for all forms of extensibility

described in Rec. ITU-T X.680 | ISO/IEC 8824-1.
2 Normative references

The following Recommendations and International Standards contain provisions which, through reference in this text,

constitute provisions of this Recommendation | International Standard. At the time of publication, the editions indicated

were valid. All Recommendations and Standards are subject to revision, and parties to agreements based on this

Recommendation | International Standard are encouraged to investigate the possibility of applying the most recent

edition of the Recommendations and Standards listed below. Members of IEC and ISO maintain registers of currently

valid International Standards. The Telecommunication Standardization Bureau of the ITU maintains a list of currently

valid ITU-T Recommendations.

NOTE – This Recommendation | International Standard is based on ISO/IEC 10646:2003 and the Unicode standard version

3.2.0:2002. It cannot be applied using later versions of these two standards.
2.1 Identical Recommendations | International Standards

– Recommendation ITU-T X.680 (2021) | ISO/IEC 8824-1:2021, Information technology – Abstract

Syntax Notation One (ASN.1): Specification of basic notation.

– Recommendation ITU-T X.681 (2021) | ISO/IEC 8824-2:2021, Information technology – Abstract

Syntax Notation One (ASN.1): Information object specification.

– Recommendation ITU-T X.682 (2021) | ISO/IEC 8824-3:2021, Information technology – Abstract

Syntax Notation One (ASN.1): Constraint specification.

– Recommendation ITU-T X.683 (2021) | ISO/IEC 8824-4:2021, Information technology – Abstract

Syntax Notation One (ASN.1): Parameterization of ASN.1 specifications.

– Recommendation ITU-T X.690 (2021) | ISO/IEC 8825-1:2021, Information technology – ASN.1

encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and

Distinguished Encoding Rules (DER).

– Recommendation ITU-T X.691 (2021) | ISO/IEC 8825-2:2021, Information technology – ASN.1

encoding rules: Specification of Packed Encoding Rules (PER).

NOTE – The references above shall be interpreted as references to the identified Recommendations | International Standards

together with all their published amendments and technical corrigenda.
2.2 Additional references

– ISO/IEC 2375:2003, Information technology – Procedure for registration of escape sequences and

coded character sets.

– ISO International Register of Coded Character Sets to be Used with Escape Sequences.

– ISO/IEC 10646:2003, Information technology – Universal Multiple-Octet Coded Character Set (UCS).

Rec. ITU-T X.696 (02/2021) 1
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 7 ----------------------
ISO/IEC 8825-7:2021 (E)
3 Definitions

For the purposes of this Recommendation | International Standard, the following definitions apply.

3.1 Specification of basic notation

For the purposes of this Recommendation | International Standard, all the definitions in Rec. ITU-T X.680 |

ISO/IEC 8824-1 apply.
3.2 Information object specification

For the purposes of this Recommendation | International Standard, all the definitions in Rec. ITU-T X.681 |

ISO/IEC 8824-2 apply.
3.3 Constraint specification

This Recommendation | International Standard makes use of the following terms defined in Rec. ITU-T X.682 |

ISO/IEC 8824-3:
a) component relation constraint;
b) table constraint.
3.4 Parameterization of ASN.1 specification

This Recommendation | International Standard makes use of the following term defined in Rec. ITU-T X.683 |

ISO/IEC 8824-4:
– variable constraint.
3.5 Basic Encoding Rules (BER)

This Recommendation | International Standard makes use of the following terms defined in Rec. ITU-T X.690 |

ISO/IEC 8825-1:
a) data value;
b) dynamic conformance;
c) encoding (of a data value);
d) receiver;
e) sender;
f) static conformance.
3.6 Packed Encoding Rules (PER)

This Recommendation | International Standard makes use of the following terms defined in Rec. ITU-T X.691 |

ISO/IEC 8825-2:
a) canonical encoding;
b) composite type;
c) composite value;
d) known-multiplier character string type;
e) outermost type;
f) relay-safe encoding;
g) simple type;
h) textually dependent.
3.7 Additional definitions

For the purposes of this Recommendation | International Standard, the following definitions apply.

2 Rec. ITU-T X.696 (02/2021)
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC 8825-7:2021 (E)

3.7.1 abstract syntax value: A value of an abstract syntax (defined as a set of values of a single ASN.1 type)

which is to be encoded by BASIC-OER or CANONICAL-OER, or which is generated by BASIC-OER or

CANONICAL-OER decoding.

3.7.2 effective value constraint (of an integer type): The smallest integer range that includes all the values of the

integer type that are permitted by the OER-visible constraints (see 8.2.7).

3.7.3 effective size constraint (of a string type): The smallest integer range that includes the lengths of all the

values of the string type that are permitted by the OER-visible constraints (see 8.2.8).

3.7.4 fixed-size signed number: A word (see 3.7.13) representing a negative, zero or positive whole number

encoded as a signed integer encoding (see 3.7.9).

NOTE 1 – The least significant bit of the whole number is stored in bit 1 of the last octet of the word.

NOTE 2 – The range of integers that can be encoded as fixed-size signed numbers is −128 to 127 for a one-octet word,

−32768 to 32767 for a two-octet word, −2147483648 to 2147483647 for a four-octet word, and

−9223372036854775808 to 9223372036854775807 for an eight-octet word.

3.7.5 fixed-size unsigned number: A word (see 3.7.13) representing a zero or positive whole number encoded as

an unsigned integer encoding (see 3.7.10).

NOTE 1 – The least significant bit of the whole number is stored in bit 1 of the last octet of the word.

NOTE 2 – The smallest integer that can be encoded as fixed-size unsigned numbers of any size is 0. The largest integer that can

be encoded as a fixed-size unsigned number is 255 for a one-octet word, 65535 for a two-octet word, 4294967295 for a four-octet

word, and 18446744073709551615 for an eight-octet word.

3.7.6 length determinant: A group of one or more consecutive octets encoding the length of a series of octets

(see 8.6).

3.7.7 octet: A group of eight consecutive bits, numbered from bit 8 (the most significant bit) to bit 1 (the least

significant bit).

NOTE – Within an OER encoding, each octet starts at a location that is a whole multiple of eight bits from the first bit of the

encoding.

3.7.8 OER-visible constraint: An instance of use of the ASN.1 constraint notation that affects the OER encoding

of a value.

3.7.9 signed integer encoding: The encoding of a whole number into a group of consecutive octets of a specified

length as a 2's-complement binary integer, which provides representations for whole numbers that are equal to, greater

than or less than zero.

NOTE – The value of a signed integer encoding is derived by numbering the bits in the octets of the group, starting with bit 1 of

the last octet and ending the numbering with bit 8 of the first octet. Each bit is assigned a numerical value of 2 , where N is its

position (starting from 0) in the above numbering sequence. The value of the signed integer encoding is obtained by summing the

numerical values assigned to each bit for those bits which are set to one, excluding bit 8 of the first octet, and then reducing this

value by the numerical value assigned to bit 8 of the first octet if that bit is set to one.

3.7.10 unsigned integer encoding: The encoding of a whole number into a group of consecutive octets of a

specified length as an unsigned binary integer, which provides representations for whole numbers that are equal to or

greater than zero.

NOTE – The value of an unsigned integer encoding is derived by numbering the bits in the octets of the group, starting with bit 1

of the last octet and ending the numbering with bit 8 of the first octet. Each bit is assigned a numerical value of 2 , where N is its

position (starting from 0) in the above numbering sequence. The value of the unsigned integer encoding is obtained by summing

the numerical values assigned to each bit for those bits which are set to one.

3.7.11 variable-size signed number: A group of one or more consecutive octets containing a negative, zero, or

positive whole number encoded as a signed integer encoding, with the least significant bit of the binary number stored

in bit 1 of the last octet of the variable-size signed number.

NOTE – There are no restrictions to the length of such a group of octets. In particular, the Basic Octet Encoding Rules (but not

the Canonical Octet Encoding Rules) allow the presence of redundant octets set to 0 (for zero or positive values) or 255 (for

negative values) at the beginning of the group.

3.7.12 variable-size unsigned number: A group of one or more consecutive octets containing a zero or positive

whole number encoded as an unsigned integer encoding, with the least significant bit of the binary number stored in

bit 1 of the last octet of the variable-size unsigned number.

NOTE – There are no restrictions to the length of such a group of octets. In particular, the Basic Octet Encoding Rules (but not

the Canonical Octet Encoding Rules) allow the presence of redundant octets set to 0 at the beginning of the group.

3.7.13 word: A group of one, two, four or eight consecutive octets containing the encoding of a whole number,

where the first octet contains the most significant part of the number and the last octet contains the least significant part

of the number.
Rec. ITU-T X.696 (02/2021) 3
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 9 ----------------------
ISO/IEC 8825-7:2021 (E)

NOTE 1 – A single octet is also a word according to this definition. The octet ordering of words consisting of 2, 4 or 8 octets is

big-endian.

NOTE 2 – Within an OER encoding, a word can start at any location within the encoding that is a whole number of octets from

the beginning of the encoding (that is, there is no requirement that a word should start on a word boundary).

4 Abbreviations

For the purposes of this Recommendation | International Standard, the following abbreviations apply:

ASN.1 Abstract Syntax Notation One
BER Basic Encoding Rules of ASN.1
ITS Intelligent Transportation Systems
NTCIP National Transportation Communications for ITS Protocol
OER Octet Encoding Rules of ASN.1
PER Packed Encoding Rules of ASN.1
PDU Protocol Data Unit
5 Convention

For the purposes of this Recommendation | International Standard, the bits of an octet are numbered from 8 to 1, where

bit 8 is the most significant bit and bit 1 is the least significant bit.
6 Encodings specified by this Recommendation | International Standard

6.1 This Recommendation | International Standard specifies two sets of encoding rules (together with their

associated object identifiers) which can be used to encode and decode the values of an abstract syntax defined as the

values of a single (known) ASN.1 type. This clause describes their applicability and properties.

6.2 Without knowledge of the type of the value encoded, it is not possible to determine the structure of the

encoding. In particular, the end of the encoding cannot be determined from the encoding itself without knowledge of the

type being encoded.

6.3 OER encodings are always relay-safe provided the abstract values of the types EXTERNAL, EMBEDDED PDV

and CHARACTER STRING are constrained to prevent the carriage of OSI presentation context identifiers.

6.4 The most general set of encoding rules specified in this Recommendation | International Standard is

BASIC-OER, which does not in general produce a canonical encoding.

6.5 A second set of encoding rules specified in this Recommendation | International Standard is

CANONICAL-OER, which produces encodings that are canonical. This is defined as a restriction of implementation-

dependent choices in the BASIC-OER encoding.

NOTE 1 – CANONICAL-OER produces encodings that have applications when authenticators need to be applied to abstract

values.

NOTE 2 – Any implementation conforming to CANONICAL-OER for encoding is conformant to BASIC-OER for encoding.

Any implementation conforming to BASIC-OER for decoding is conformant to CANONICAL-OER for decoding. Thus,

encodings made according to CANONICAL-OER are encodings that are permitted by BASIC-OER.

6.6 If a type encoded with BASIC-OER or CANONICAL-OER contains EXTERNAL, EMBEDDED PDV or

CHARACTER STRING types, then the outer encoding ceases to be relay-safe unless the transfer syntax used for all the

EXTERNAL, EMBEDDED PDV or CHARACTER STRING types is relay-safe. If a type encoded with CANONICAL-OER

contains EXTERNAL, EMBEDDED PDV or CHARACTER STRING types, then the outer encoding ceases to be canonical

unless the encod
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.