Information technology -- ASN.1 encoding rules

Technologies de l'information -- Règles de codage ASN.1

General Information

Status
Published
Current Stage
4020 - DIS ballot initiated: 5 months
Start Date
28-Sep-2020
Completion Date
28-Sep-2020
Ref Project

RELATIONS

Buy Standard

Draft
ISO/IEC DIS 8825-2 - Information technology -- ASN.1 encoding rules
English language
67 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

DRAFT INTERNATIONAL STANDARD
ISO/IEC DIS 8825-2
ISO/IEC JTC 1/SC 6 Secretariat: KATS
Voting begins on: Voting terminates on:
2020-09-28 2020-12-21
Information technology — ASN.1 encoding rules —
Part 2:
Specification of Packed Encoding Rules (PER)
Technologies de l'information — Règles de codage ASN.1 —
Partie 2: Spécification des règles de codage compact (PER)
ICS: 35.100.60
THIS DOCUMENT IS A DRAFT CIRCULATED
FOR COMMENT AND APPROVAL. IT IS
THEREFORE SUBJECT TO CHANGE AND MAY
NOT BE REFERRED TO AS AN INTERNATIONAL
STANDARD UNTIL PUBLISHED AS SUCH.
IN ADDITION TO THEIR EVALUATION AS
BEING ACCEPTABLE FOR INDUSTRIAL,
This document is circulated as received from the committee secretariat.
TECHNOLOGICAL, COMMERCIAL AND
USER PURPOSES, DRAFT INTERNATIONAL
STANDARDS MAY ON OCCASION HAVE TO
BE CONSIDERED IN THE LIGHT OF THEIR
POTENTIAL TO BECOME STANDARDS TO
WHICH REFERENCE MAY BE MADE IN
Reference number
NATIONAL REGULATIONS.
ISO/IEC DIS 8825-2:2020(E)
RECIPIENTS OF THIS DRAFT ARE INVITED
TO SUBMIT, WITH THEIR COMMENTS,
NOTIFICATION OF ANY RELEVANT PATENT
RIGHTS OF WHICH THEY ARE AWARE AND TO
PROVIDE SUPPORTING DOCUMENTATION. ISO/IEC 2020
---------------------- Page: 1 ----------------------
ISO/IEC DIS 8825-2:2020(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2020

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 2020 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC DIS 8825-2:2020(E)
CONTENTS
Page

Introduction ............................................................................................................................................................ vi

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 ........................................................................................................................ 2

3.6 PER Encoding Instructions ............................................................................................................... 2

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

4 Abbreviations ............................................................................................................................................... 5

5 Notation ........................................................................................................................................................ 5

6 Convention ................................................................................................................................................... 5

7 Encoding rules defined in this Recommendation | International Standard .................................................... 5

8 Conformance ................................................................................................................................................ 6

9 PER encoding instructions ............................................................................................................................ 6

10 The approach to encoding used for PER ...................................................................................................... 7

10.1 Use of the type notation..................................................................................................................... 7

10.2 Use of tags to provide a canonical order ........................................................................................... 7

10.3 PER-visible constraints ..................................................................................................................... 7

10.4 Type and value model used for encoding .......................................................................................... 9

10.5 Structure of an encoding.................................................................................................................... 9

10.6 Types to be encoded ........................................................................................................................ 10

11 Encoding procedures .................................................................................................................................. 10

11.1 Production of the complete encoding .............................................................................................. 10

11.2 Open type fields .............................................................................................................................. 11

11.3 Encoding as a non-negative-binary-integer ..................................................................................... 11

11.4 Encoding as a 2's-complement-binary-integer ................................................................................. 12

11.5 Encoding of a constrained whole number ....................................................................................... 12

11.6 Encoding of a normally small non-negative whole number ............................................................. 13

11.7 Encoding of a semi-constrained whole number ............................................................................... 13

11.8 Encoding of an unconstrained whole number .................................................................................. 14

11.9 General rules for encoding a length determinant ............................................................................. 14

12 Encoding the boolean type ......................................................................................................................... 16

13 Encoding the integer type ........................................................................................................................... 16

14 Encoding the enumerated type .................................................................................................................... 17

15 Encoding the real type ................................................................................................................................ 18

16 Encoding the bitstring type ......................................................................................................................... 18

17 Encoding the octetstring type ..................................................................................................................... 19

18 Encoding the null type ................................................................................................................................ 19

19 Encoding the sequence type ........................................................................................................................ 19

20 Encoding the sequence-of type ................................................................................................................... 20

Rec. ITU-T X.691 (08/2015) iii
© ISO/IEC 2020 – All rights reserved
---------------------- Page: 3 ----------------------
ISO/IEC DIS 8825-2:2020(E)

21 Encoding the set type .................................................................................................................................. 21

22 Encoding the set-of type ............................................................................................................................. 21

23 Encoding the choice type ............................................................................................................................ 22

24 Encoding the object identifier type ............................................................................................................. 22

25 Encoding the relative object identifier type ................................................................................................ 23

26 Encoding the internationalized resource reference type ............................................................................. 23

27 Encoding the relative internationalized resource reference type ................................................................ 23

28 Encoding the embedded-pdv type............................................................................................................... 23

29 Encoding of a value of the external type .................................................................................................... 23

30 Encoding the restricted character string types ............................................................................................ 24

31 Encoding the unrestricted character string type .......................................................................................... 26

32 Encoding the time type, the useful time types, the defined time types and the additional time types ......... 26

32.1 General ............................................................................................................................................ 26

32.2 Encoding subtypes with the "Basic=Date" property setting ...................................................... 31

32.3 Encoding subtypes with the "Basic=Time" property setting ....................................................... 33

32.4 Encoding subtypes with the "Basic=Date-Time" property setting .......................................... 36

32.5 Encoding subtypes with the "Basic=Interval Interval-type=SE" property setting ...... 36

32.6 Encoding subtypes with the "Basic=Interval Interval-type=D" property setting ......... 36

32.7 Encoding subtypes with the "Basic=Interval Interval-type=SD" or

"Basic=Interval Interval-type=DE" property setting ................................................... 37

32.8 Encoding subtypes with the "Basic=Rec-Interval Interval-type=SE" property setting 38

32.9 Encoding subtypes with the "Basic=Rec-Interval Interval-type=D" property setting 39

32.10 Encoding subtypes with the "Basic=Rec-Interval Interval-type=SD" or

"Basic=Rec-Interval Interval-type=DE" property setting ........................................ 39

32.11 Encoding subtypes with mixed settings of the Basic property ...................................................... 40

33 Object identifiers for transfer syntaxes ....................................................................................................... 43

Annex A Example of encodings ......................................................................................................................... 44

A.1 Record that does not use subtype constraints .................................................................................. 44

A.1.1 ASN.1 description of the record structure ..................................................................... 44

A.1.2 ASN.1 description of a record value ............................................................................. 44

A.1.3 ALIGNED PER representation of this record value ...................................................... 44

A.1.4 UNALIGNED PER representation of this record value ................................................ 45

A.2 Record that uses subtype constraints ............................................................................................... 47

A.2.1 ASN.1 description of the record structure ..................................................................... 47

A.2.2 ASN.1 description of a record value ............................................................................. 47

A.2.3 ALIGNED PER representation of this record value ...................................................... 47

A.2.4 UNALIGNED PER representation of this record value ................................................ 48

A.3 Record that uses extension markers ................................................................................................. 49

A.3.1 ASN.1 description of the record structure ..................................................................... 49

A.3.2 ASN.1 description of a record value ............................................................................. 50

A.3.3 ALIGNED PER representation of this record value ...................................................... 50

A.3.4 UNALIGNED PER representation of this record value ................................................ 51

A.4 Record that uses extension addition groups .................................................................................... 53

A.4.1 ASN.1 description of the record structure ..................................................................... 53

A.4.2 ASN.1 description of a record value ............................................................................. 53

A.4.3 ALIGNED PER representation of this record value ...................................................... 53

A.4.4 UNALIGNED PER representation of this record value ................................................ 54

Annex B Combining PER-visible and non-PER-visible constraints ................................................................... 55

B.1 General ............................................................................................................................................ 55

B.2 Extensibility and visibility of constraints in PER ............................................................................ 55

B.2.1 General .......................................................................................................................... 55

B.2.2 PER-visibility of constraints .......................................................................................... 56

B.2.3 Effective constraints ...................................................................................................... 57

B.3 Examples ......................................................................................................................................... 58

iv Rec. ITU-T X.691 (08/2015)
© ISO/IEC 2020 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC DIS 8825-2:2020(E)

Annex C Support for the PER algorithms ........................................................................................................... 60

Annex D Support for the ASN.1 rules of extensibility ....................................................................................... 61

Annex E Tutorial annex on concatenation of PER encodings ............................................................................ 62

Annex F Identification of Encoding Rules .......................................................................................................... 63

Rec. ITU-T X.691 (08/2015) v
© ISO/IEC 2020 – All rights reserved
---------------------- Page: 5 ----------------------
ISO/IEC DIS 8825-2:2020(E)
Introduction

Specifications 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 types defined

using the notation specified in Rec. ITU-T X.680 | ISO/IEC 8824-1. 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 a set of Packed Encoding Rules (PER), so called because they achieve a much more

compact representation than that achieved by the Basic Encoding Rules (BER) and its derivatives described in Rec.

ITU-T X.690 | ISO/IEC 8825-1 which is referenced for some parts of the specification of these Packed Encoding

Rules.
vi Rec. ITU-T X.691 (08/2015)
© ISO/IEC 2020 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC DIS 8825-2:2020(E)
ISO/IEC 8825-2: 2015 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
Information technology –
ASN.1 encoding rules:
Specification of Packed Encoding Rules (PER)
1 Scope

This Recommendation | International Standard specifies a set of Packed Encoding Rules that may be used to derive a

transfer syntax for values of types defined in Rec. ITU-T X.680 | ISO/IEC 8824-1. These Packed Encoding Rules are also

to be applied for decoding such a transfer syntax in order to identify the data values being transferred.

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

– are intended for use in circumstances where minimizing the size of the representation of values is the

major concern in the choice of encoding rules;

– allow the extension of an abstract syntax by addition of extra values, preserving the encodings

of the existing values, for all forms of extension described in Rec. ITU-T X.680 | ISO/IEC 8824-1;

– can be modified in accordance with the provisions of Rec. ITU-T X.695 | ISO/IEC 8825-6.

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. It cannot be applied using later versions

of this standard.
2.1 Identical Recommendations | International Standards

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

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

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

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

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

Notation One (ASN.1): Constraint specification.

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

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

– Recommendation ITU-T X.690 (2020) | ISO/IEC 8825-1:2020, 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.695 (2020) | ISO/IEC 8825-6:2020, Information technology – ASN.1 encoding

rules: Registration and application of PER encoding instructions.
2.2 Additional references

– ISO/IEC 646:1991, Information technology – ISO 7-bit coded character set for information interchange.

– ISO/IEC 2022:1994, Information technology – Character code structure and extension techniques.

Rec. ITU-T X.691 (08/2015) 1
© ISO/IEC 2020 – All rights reserved
---------------------- Page: 7 ----------------------
ISO/IEC DIS 8825-2:2020(E)
ISO/IEC 8825-2: 2015 (E)

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

character sets.

– ISO 6093:1985, Information processing – Representation of numerical values in character strings for

information interchange.

– 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).

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

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

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

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

ISO/IEC 8825-6:
– identifying keyword.
3.7 Additional definitions

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

3.7.1 2's-complement-binary-integer encoding: The encoding of a whole number into a bit-field (octet-aligned in

the ALIGNED variant) of a specified length, or into the minimum number of octets that will accommodate that whole

2 Rec. ITU-T X.691 (08/2015)
© ISO/IEC 2020 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC DIS 8825-2:2020(E)
ISO/IEC 8825-2: 2015 (E)

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

than, or less than zero, as specified in 11.4.

NOTE 1 – The value of a two's complement binary number is derived by numbering the bits in the contents octets, starting with

bit 1 of the last octet as bit zero 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 in the above numbering sequence. The value of the two's complement binary number 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.

NOTE 2 – Whole number is a synonym for the mathematical term integer. It is used here to avoid confusion with the ASN.1 type

integer.

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

which is to be encoded by PER, or which is to be generated by PER decoding.

NOTE – The single ASN.1 type associated with an abstract syntax is formally identified by an object of class ABSTRACT-SYNTAX.

3.7.3 bit-field: The product of some part of the encoding mechanism that consists of an ordered set of bits that are

not necessarily a multiple of eight.

NOTE – If the use of this term is followed by "octet-aligned in the ALIGNED variant", this means that the bit-field is required to

begin on an octet boundary in the complete encoding for the aligned variant of PER.

3.7.4 canonical encoding: A complete encoding of an abstract syntax value obtained by the application of encoding

rules that have no implementation-dependent options; such rules result in the definition of a 1-1 mapping between

unambiguous and unique bitstrings in the transfer syntax and values in the abstract syntax.

3.7.5 composite type: A set, sequence, set-of, sequence-of, choice, embedded-pdv, external or unrestricted character

string type.
3.7.6 composite value: The value of a composite type.

3.7.7 constrained whole number: A whole number which is constrained by PER-visible constraints to lie within a

range from "lb" to "ub" with the value "lb" less than or equal to "ub", and the values of "lb" and "ub" as permitted values.

NOTE – Constrained whole numbers occur in the encoding which identifies the chosen alternative of a choice type, the length of

character, octet and bit string types whose length has been restricted by PER-visible constraints to a maximum length, the count of

the number of components in a sequence-of or set-of type that has been restricted by PER-visible constraints to a maximum

number of components, the value of an integer type that has been constrained by PER-visible constraints to lie within finite

minimum and maximum values, and the value that denotes an enumeration in an enumerated type.

3.7.8 effective size constraint (for a constrained string type): A single finite size constraint that could be applied

to a built-in string type and whose effect would be to permit all and only those lengths that can be present in the

constrained string type.
NOTE 1 – For example, the following has an effective size constraint:
A ::= IA5String (SIZE(1..4) | SIZE(10..15))

since it can be rewritten with a single size constraint that applies to all values:

A ::= IA5String (SIZE(1..4 | 10..15))

whereas the following has no effective size constraint since the string can be arbitrarily long if it does not contain any characters

other than 'a', 'b' and 'c':
B ::= IA5String (SIZE(1..4) | FROM("abc"))

NOTE 2 – The effective size constraint is used only to determine the encoding of lengths.

3.7.9 effective permitted-alphabet constraint (for a constrained restricted character string type): A single

permitted-alphabet constraint that could be applied to a built-in known-multiplier character string type and whose effect

would be to permit all and only those characters that can be present in at least one character position of any one of the

values in the constrained restricted character string type.
NOTE 1 – For example, in:
Ax ::= IA5String (FROM("AB") | FROM("CD"))
Bx ::= IA5String (SIZE(1..4) | FROM("abc"))

Ax has an effective permitted-alphabet constraint of "ABCD". Bx has an effective permitted-alphabet constraint that consists

of the entire IA5String alphabet since there is no smaller permitted-alphabet constraint that applies to all values of Bx.

NOTE 2 – The effective permitted-alphabet constraint is used only to determine the encoding of characters.

3.7.10 enumeration index: The non-negative whole number associated with an "EnumerationItem" in an enumerated

type. The enumeration indices are determined by sorting the "EnumerationItem"s into ascending order by their

enumeration value, then by assigning an enumeration index starting with zero for the first "EnumerationItem", one for the

second, and so on up to the last "EnumerationItem" in the sorted list.

NOTE – "EnumerationItem"s in the "RootEnumeration" are sorted separately from those in the "AdditionalEnumeration".

Rec. ITU-T X.691 (08/2015) 3
© ISO/IEC 2020 – All rights reserved
---------------------- Page: 9 ----------------------
ISO/IEC DIS 8825-2:2020(E)
ISO/IEC 8825-2: 2015 (E)

3.7.11 extensible for PER encoding: A property of a type which requires that PER identifies an encoding of a value

as that of a root value or as that of an extension addition.

NOTE – Root values are normally encoded more efficiently than extension additions.

3.7.12 field-list: An ordered set of bit-fields that is produced as a result of applying these encoding rules to

components of an abstract value.

3.7.13 indefinite-length: An encoding whose length is greater than 64K-1 or whose maximum length cannot be

determined from the ASN.1 notation.

3.7.14 fixed-length type: A type such that the value of the outermost length determinant in an encoding of this type

can be determined (using the mechanisms specified in this Recommendation | International Standard) from the type

notation (after the application of PER-visible constr
...

Questions, Comments and Discussion

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