Information technology — ASN.1 encoding rules — Part 8: Specification of JavaScript Object Notation Encoding Rules (JER)

This document specifies a set of JavaScript Object Notation Encoding Rules (JER) that may be used to derive a transfer syntax for values of 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 and Rec. ITU-T X.683 | ISO/IEC 8824-4. 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 interoperability with applications using JSON 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. This document also specifies the syntax and semantics of JER encoding instructions, as well as the rules for their assignment and combination. JER encoding instructions can be used to control JER encoding for specific Abstract Syntax Notation One (ASN.1) types.

Technologies de l'information — Règles de codage ASN.1 — Partie 8: Titre manque

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-8:2021 - Information technology -- ASN.1 encoding rules
English language
29 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

INTERNATIONAL ISO/IEC
STANDARD 8825-8
Second edition
2021-06
Information technology — ASN.1
encoding rules —
Part 8:
Specification of JavaScript Object
Notation Encoding Rules (JER)
Reference number
ISO/IEC 8825-8:2021(E)
ISO/IEC 2021
---------------------- Page: 1 ----------------------
ISO/IEC 8825-8: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-8: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.697 (02/2021).

This second edition cancels and replaces the first edition (ISO/IEC 8825-8:2018), which has been

technically revised.

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-8: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 .................................................................................................................................................. 3

5 Encodings specified by this Recommendation | International Standard ............................................................. 3

6 Conformance ...................................................................................................................................................... 4

7 General provisions ............................................................................................................................................. 4

7.1 Use of the type notation ........................................................................................................................... 4

7.2 Constraints ............................................................................................................................................... 5

7.3 Type and value model used for encoding ................................................................................................. 6

7.4 Types to be encoded ................................................................................................................................. 6

7.5 Encoding instructions ............................................................................................................................... 6

7.6 Production of a complete JER encoding .................................................................................................. 7

8 Notation, lexical items and keywords used in JER encoding instructions ......................................................... 7

9 Specifying JER encoding instructions ................................................................................................................ 8

10 Assigning a JER encoding instruction using a type prefix ................................................................................. 9

11 Assigning a JER encoding instruction using a JER encoding control section .................................................... 9

12 Identification of the targets for a JER encoding instruction ............................................................................... 9

12.1 General rules ............................................................................................................................................ 9

12.2 Types defined in the module .................................................................................................................... 10

12.3 Built-in types ............................................................................................................................................ 10

12.4 Types imported from another module ...................................................................................................... 10

13 Multiple assignment of JER encoding instructions ............................................................................................ 10

13.1 Order in which multiple assignments are considered ............................................................................... 10

13.2 Effect of assigning a negating encoding instruction ................................................................................ 11

13.3 Multiple assignment of JER encoding instructions of the same category ................................................ 11

14 The ARRAY encoding instruction ....................................................................................................................... 11

14.1 General .................................................................................................................................................. 11

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

14.2 Restrictions .............................................................................................................................................. 11

15 The BASE64 encoding instruction ..................................................................................................................... 11

15.1 General .................................................................................................................................................. 11

15.2 Restrictions .............................................................................................................................................. 12

16 The NAME encoding instruction ......................................................................................................................... 12

16.1 General .................................................................................................................................................. 12

16.2 Restrictions .............................................................................................................................................. 13

17 The OBJECT encoding instruction ..................................................................................................................... 13

17.1 General .................................................................................................................................................. 13

17.2 Restrictions .............................................................................................................................................. 13

18 The TEXT encoding instruction ......................................................................................................................... 13

18.1 General .................................................................................................................................................. 13

18.2 Restrictions .............................................................................................................................................. 14

19 The UNWRAPPED encoding instruction .............................................................................................................. 14

19.1 General .................................................................................................................................................. 14

19.2 Restrictions .............................................................................................................................................. 14

20 Encoding of boolean values ............................................................................................................................... 14

21 Encoding of integer values ................................................................................................................................. 15

22 Encoding of enumerated values ......................................................................................................................... 15

23 Encoding of real values ...................................................................................................................................... 15

23.1 General .................................................................................................................................................. 15

23.2 Encoding of the special real values .......................................................................................................... 15

23.3 Encoding as a JSON number.................................................................................................................... 16

23.4 Encoding as a JSON object ...................................................................................................................... 16

24 Encoding of bitstring values ............................................................................................................................... 16

24.1 General .................................................................................................................................................. 16

24.2 Encoding of bitstring types with a fixed size ........................................................................................... 16

24.3 Encoding of bitstring types with a variable size ....................................................................................... 16

24.4 Alternative encoding of bitstring types with a JER-visible contents constraint ....................................... 16

25 Encoding of octetstring values ........................................................................................................................... 17

25.1 General .................................................................................................................................................. 17

25.2 Encoding of an octetstring value as a JSON string containing a Base64 encoding .................................. 17

25.3 Encoding of an octetstring value as a JSON string containing a hexadecimal encoding ......................... 17

25.4 Alternative encoding of an octetstring type with a JER-visible contents constraint ................................ 17

26 Encoding of the null value ................................................................................................................................. 17

27 Encoding of sequence values ............................................................................................................................. 17

27.1 General .................................................................................................................................................. 17

27.2 Array-based encoding .............................................................................................................................. 17

27.3 Object-based encoding ............................................................................................................................. 17

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

28 Encoding of sequence-of values ......................................................................................................................... 18

29 Encoding of set values ....................................................................................................................................... 18

30 Encoding of set-of values ................................................................................................................................... 18

30.1 General .................................................................................................................................................. 18

30.2 Array-based encoding .............................................................................................................................. 18

30.3 Object-based encoding ............................................................................................................................. 18

31 Encoding of choice values .................................................................................................................................. 19

31.1 General .................................................................................................................................................. 19

31.2 Unwrapped encoding ............................................................................................................................... 19

31.3 Wrapped encoding ................................................................................................................................... 19

32 Encoding of object identifier values ................................................................................................................... 19

33 Encoding of relative object identifier values ...................................................................................................... 19

34 Encoding of values of the internationalized resource reference type ................................................................. 19

35 Encoding of values of the relative internationalized resource reference type .................................................... 19

36 Encoding of values of the embedded-pdv type .................................................................................................. 19

37 Encoding of values of the external type ............................................................................................................. 20

38 Encoding of values of the restricted character string types ................................................................................ 20

39 Encoding of values of the unrestricted character string type .............................................................................. 20

40 Encoding of values of the time types ................................................................................................................. 20

41 Encoding of open type values ............................................................................................................................ 20

42 Object identifier values referencing the encoding rules ..................................................................................... 20

Annex A Examples of JER encodings ............................................................................................................................ 21

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

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

A.3 Example JER representation of this record value .................................................................................... 21

A.4 Additional examples of JER encodings ................................................................................................... 22

Annex B Examples of JER encoding instructions and their effect on the encodings ..................................................... 25

B.1 ASN.1 description of the record structure ................................................................................................ 25

B.2 ASN.1 description of a record value ........................................................................................................ 25

B.3 JER representation of this record value .................................................................................................... 26

B.4 Additional examples of JER encodings ................................................................................................... 26

B.5 Examples of JER encodings of choice types ............................................................................................ 28

Rec. ITU-T X.697 (02/2021) v
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 8825-8:2021(E)
Introduction

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 and 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

defined using the notation specified in the publications listed in the previous paragraph. 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 is 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 JavaScript Object Notation Encoding Rules (JER), so called because the encodings

they produce are instances of the JSON grammar specified in ECMA-404.

This Recommendation | International Standard specifies the syntax and semantics of JER encoding instructions that

modify the JSON text produced by the application of JER to certain ASN.1 types.

Clauses 8 to 12 list the JER encoding instructions and specify the syntax for their assignment to an ASN.1 type or

component using either a JER type prefix (see Rec. ITU-T X.680 | ISO/IEC 8824-1, clause 31.3) or a JER encoding

control section (see Rec. ITU-T X.680 | ISO/IEC 8824-1, clause 54).

Clause 13 defines the order of precedence if JER encoding instructions are present in both a JER type prefix and in a JER

encoding control section.
Clauses 14 to 19 specify:

a) the syntax of each JER encoding instruction used in a type prefix or a JER encoding control section;

b) restrictions on the JER encoding instructions that can be associated with a particular ASN.1 type (resulting

from inheritance and multiple assignments).

Clauses 20 to 41 specify the JER encoding of ASN.1 types, referencing earlier clauses that define the JER encoding

instructions.

Annex A is informative and contains examples of JER encodings where JER encoding instructions are not used.

Annex B is informative and contains examples of JER encoding instructions and their effect on the JER encodings.

vi Rec. ITU-T X.697 (02/2021)
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 7 ----------------------
ISO/IEC 8825-8:2021 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
Information technology – ASN.1 encoding rules: Specification of JavaScript
Object Notation Encoding Rules (JER)
1 Scope

This Recommendation | International Standard specifies a set of JavaScript Object Notation Encoding Rules (JER) that

may be used to derive a transfer syntax for values of 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 and Rec. ITU-T X.683 | ISO/IEC 8824-4. 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 interoperability with applications using JSON 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.

This Recommendation | International Standard also specifies the syntax and semantics of JER encoding instructions, as

well as the rules for their assignment and combination. JER encoding instructions can be used to control JER encoding

for specific Abstract Syntax Notation One (ASN.1) types.
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.226 (1994) | ISO/IEC 8823-1:1994, Information technology – Open Systems

Interconnection – Connection-oriented Presentation protocol: Protocol specification.

– 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
– ECMA Standard ECMA-404 (2017), The JSON Data Interchange Syntax.
Rec. ITU-T X.697 (02/2021) 1
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC 8825-8:2021 (E)

– IETF RFC 2045 (1996), Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet

Message Bodies.

– 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/IEC8824-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) composite type;
b) composite value;
c) outermost type;
d) relay-safe encoding;
e) simple type;
f) textually dependent.
3.7 Additional definitions

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 JER or which is generated by JER decoding.
2 Rec. ITU-T X.697 (02/2021)
© ISO/IEC 2021 – All rights reserved
---------------------- Page: 9 ----------------------
ISO/IEC 8825-8:2021 (E)

3.7.2 associated encoding instruction (for a type): A set of JER encoding instructions associated with a type.

3.7.3 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 JER-visible constraints (see clause 7.2.7).

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

values of the string type that
...

Questions, Comments and Discussion

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