BS ISO/IEC 8825-3:2021
$215.11
Information technology. ASN.1 encoding rules – Specification of Encoding Control Notation (ECN)
Published By | Publication Date | Number of Pages |
BSI | 2021 | 208 |
This Recommendation | International Standard defines a notation for specifying encodings of ASN.1 types or of parts of types.
It provides several mechanisms for such specification, including:
-
direct specification of the encoding using standardized notation;
-
specification of the encoding by reference to standardized encoding rules;
-
specification of the encoding of an ASN.1 type by reference to an encoding structure;
-
specification of the encoding using non-ECN notation.
It also provides the means to link the specification of encodings to the type definitions to which they are to be applied.
ECN does not currently provide any support for specifications using the OID internationalized resource identifier type or the relative OID internationalized resource identifier type (see Rec. ITU-T X.680 | ISO/IEC 8824-1), and these are not referred to further in this Standard.
PDF Catalog
PDF Pages | PDF Title |
---|---|
2 | undefined |
6 | Blank Page |
7 | CONTENTS |
14 | Introduction |
15 | 1 Scope 2 Normative references 2.1 Identical Recommendations | International Standards |
16 | 2.2 Additional references 3 Definitions 3.1 ASN.1 definitions 3.2 ECN-specific definitions |
19 | 4 Abbreviations 5 Definition of ECN syntax 6 Encoding conventions and notation 7 The ECN character set |
20 | 8 ECN lexical items 8.1 Encoding object references 8.2 Encoding object set references 8.3 Encoding class references |
21 | 8.4 Reserved word items 8.5 Reserved encoding class name items 8.6 Non-ECN item 9 ECN Concepts |
22 | 9.1 Encoding Control Notation (ECN) specifications 9.2 Encoding classes |
23 | 9.3 Encoding structures 9.4 Encoding objects 9.5 Encoding object sets 9.6 Defining new encoding classes |
25 | 9.7 Defining encoding objects 9.8 Differential encoding-decoding |
26 | 9.9 Encoders options in encodings 9.10 Properties of encoding objects 9.11 Parameterization |
27 | 9.12 Governors 9.13 General aspects of encodings 9.14 Identification of information elements |
28 | 9.15 Reference fields and determinants 9.16 Replacement classes and structures |
29 | 9.17 Mapping abstract values onto fields of encoding structures 9.18 Transforms and transform composites |
30 | 9.19 Contents of Encoding Definition Modules |
31 | 9.20 Contents of the Encoding Link Module 9.21 Defining encodings for primitive encoding classes |
33 | 9.22 Application of encodings 9.23 Combined encoding object set 9.24 Application point |
34 | 9.25 Conditional encodings 9.26 Other conditions for applying encodings |
35 | 9.27 Encoding control for the open type 9.28 Changes to ASN.1 Recommendations | International Standards 10 Identifying encoding classes, encoding objects, and encoding object sets |
38 | 11 Encoding ASN.1 types 11.1 General 11.2 Built-in encoding classes used for implicitly generated encoding structures |
39 | 11.3 Simplification and expansion of ASN.1 notation for encoding purposes |
41 | 11.4 The implicitly generated encoding structure 12 The Encoding Link Module (ELM) |
42 | 12.1 Structure of the ELM 12.2 Encoding types |
43 | 13 Application of encodings 13.1 General 13.2 The combined encoding object set and its application |
45 | 14 The Encoding Definition Module (EDM) |
47 | 15 The renames clause 15.1 Explicitly generated and exported structures |
48 | 15.2 Name changes |
49 | 15.3 Specifying the region for name changes |
50 | 16 Encoding class assignments 16.1 General |
53 | 16.2 Encoding structure definition |
55 | 16.3 Alternative encoding structure 16.4 Repetition encoding structure |
56 | 16.5 Concatenation encoding structure 17 Encoding object assignments 17.1 General |
57 | 17.2 Encoding with a defined syntax |
58 | 17.3 Encoding with encoding object sets 17.4 Encoding using value mappings |
59 | 17.5 Encoding an encoding structure |
61 | 17.6 Differential encoding-decoding |
62 | 17.7 Encoding options |
63 | 17.8 Non-ECN definition of encoding objects 18 Encoding object set assignments 18.1 General |
64 | 18.2 Built-in encoding object sets |
65 | 19 Mapping values 19.1 General |
66 | 19.2 Mapping by explicit values |
67 | 19.3 Mapping by matching fields |
68 | 19.4 Mapping by #TRANSFORM encoding objects 19.5 Mapping by abstract value ordering |
70 | 19.6 Mapping by value distribution |
71 | 19.7 Mapping integer values to bits |
72 | 20 Defining encoding objects using defined syntax |
73 | 21 Types used in defined syntax specification 21.1 The Unit type 21.2 The EncodingSpaceSize type |
74 | 21.3 The EncodingSpaceDetermination type 21.4 The UnusedBitsDetermination type |
75 | 21.5 The OptionalityDetermination type |
76 | 21.6 The AlternativeDetermination type 21.7 The RepetitionSpaceDetermination type |
77 | 21.8 The Justification type |
78 | 21.9 The Padding type 21.10 The Pattern and Non-Null-Pattern types |
79 | 21.11 The RangeCondition type 21.12 The Comparison type |
80 | 21.13 The SizeRangeCondition type 21.14 The ReversalSpecification type |
81 | 21.15 The ResultSize type 21.16 The HandleValueSet type |
82 | 21.17 The IntegerMapping type 22 Commonly used encoding property groups 22.1 Replacement specification 22.1.1 Encoding properties, syntax and purpose |
83 | 22.1.2 Specification restrictions |
84 | 22.1.3 Encoder actions 22.1.4 Decoder actions |
85 | 22.2 Pre-alignment and padding specification 22.2.1 Encoding properties, syntax and purpose 22.2.2 Specification constraints 22.2.3 Encoder actions 22.2.4 Decoder actions |
86 | 22.3 Start pointer specification 22.3.1 Encoding properties, syntax and purpose 22.3.2 Specification constraints 22.3.3 Encoder actions 22.3.4 Decoder actions |
87 | 22.4 Encoding space specification 22.4.1 Encoding properties, syntax and purpose 22.4.2 Specification restrictions |
88 | 22.4.3 Encoder actions 22.4.4 Decoder actions |
89 | 22.5 Optionality determination 22.5.1 Encoding properties, syntax and purpose 22.5.2 Specification restrictions |
90 | 22.5.3 Encoder actions 22.5.4 Decoder actions |
91 | 22.6 Alternative determination 22.6.1 Encoding properties, syntax and purpose 22.6.2 Specification restrictions 22.6.3 Encoder actions |
92 | 22.6.4 Decoder actions 22.7 Repetition space specification 22.7.1 Encoding properties, syntax and purpose |
93 | 22.7.2 Specification constraints |
94 | 22.7.3 Encoder actions 22.7.4 Decoder actions |
95 | 22.8 Value padding and justification 22.8.1 Encoding properties, syntax, and purpose |
96 | 22.8.2 Specification restrictions 22.8.3 Encoder actions |
97 | 22.8.4 Decoder actions 22.9 Identification handle specification 22.9.1 Encoding properties, syntax and purpose |
98 | 22.9.2 Specification constraints 22.9.3 Encoders actions 22.9.4 Decoders actions 22.10 Concatenation specification 22.10.1 Encoding properties, syntax and purpose |
99 | 22.10.2 Specification constraints 22.10.3 Encoder actions 22.10.4 Decoder actions 22.11 Contained type encoding specification 22.11.1 Encoding properties, syntax and purpose |
100 | 22.11.2 Encoder actions 22.11.3 Decoder actions 22.12 Bit reversal specification 22.12.1 Encoding properties, syntax, and purpose 22.12.2 Specification constraints |
101 | 22.12.3 Encoder actions 22.12.4 Decoder actions 23 Defined syntax specification for bit-field and constructor classes 23.1 Defining encoding objects for classes in the alternatives category 23.1.1 The defined syntax |
102 | 23.1.2 Purpose and restrictions 23.1.3 Encoder actions 23.1.4 Decoder actions 23.2 Defining encoding objects for classes in the bitstring category 23.2.1 The defined syntax |
103 | 23.2.2 Model for the encoding of classes in the bitstring category |
104 | 23.2.3 Purpose and restrictions 23.2.4 Encoder actions |
105 | 23.2.5 Decoder actions 23.3 Defining encoding objects for classes in the boolean category 23.3.1 The defined syntax |
106 | 23.3.2 Purpose and restrictions |
107 | 23.3.3 Encoder actions 23.3.4 Decoder actions 23.4 Defining encoding objects for classes in the characterstring category 23.4.1 The defined syntax |
108 | 23.4.2 Model for the encoding of classes in the characterstring category 23.4.3 Purpose and restrictions |
109 | 23.4.4 Encoder actions 23.4.5 Decoder actions 23.5 Defining encoding objects for classes in the concatenation category 23.5.1 The defined syntax |
111 | 23.5.2 Purpose and restrictions 23.5.3 Encoder actions |
112 | 23.5.4 Decoder actions 23.6 Defining encoding objects for classes in the integer category 23.6.1 The defined syntax 23.6.2 Purpose and restrictions 23.6.3 Encoder actions 23.6.4 Decoder actions 23.7 Defining encoding objects for the #CONDITIONAL-INT class 23.7.1 The defined syntax |
114 | 23.7.2 Purpose and restrictions |
115 | 23.7.3 Encoder actions |
116 | 23.7.4 Decoder actions 23.8 Defining encoding objects for classes in the null category 23.8.1 The defined syntax |
117 | 23.8.2 Purpose and restrictions 23.8.3 Encoder actions |
118 | 23.8.4 Decoder actions 23.9 Defining encoding objects for classes in the octetstring category 23.9.1 The defined syntax |
119 | 23.9.2 Model for the encoding of classes in the octetstring category 23.9.3 Purpose and restrictions |
120 | 23.9.4 Encoder actions 23.9.5 Decoder actions 23.10 Defining encoding objects for classes in the open type category 23.10.1 The defined syntax |
121 | 23.10.2 Model for the encoding of classes in the open type category |
122 | 23.10.3 Purpose and restrictions 23.10.4 Encoder actions 23.10.5 Decoder actions |
123 | 23.11 Defining encoding objects for classes in the optionality category 23.11.1 The defined syntax 23.11.2 Purpose and restrictions |
124 | 23.11.3 Encoder actions 23.11.4 Decoder actions 23.12 Defining encoding objects for classes in the pad category 23.12.1 The defined syntax |
125 | 23.12.2 Purpose and restrictions 23.12.3 Encoder actions 23.12.4 Decoder actions |
126 | 23.13 Defining encoding objects for classes in the repetition category 23.13.1 The defined syntax 23.13.2 Purpose and restrictions 23.13.3 Encoder actions 23.13.4 Decoder actions 23.14 Defining encoding objects for the #CONDITIONAL-REPETITION class 23.14.1 The defined syntax |
128 | 23.14.2 Purpose and restrictions 23.14.3 Encoder actions |
129 | 23.14.4 Decoder actions 23.15 Defining encoding objects for classes in the tag category 23.15.1 The defined syntax |
130 | 23.15.2 Purpose and restrictions |
131 | 23.15.3 Encoder actions 23.15.4 Decoder actions 23.16 Defining encoding objects for classes in the other categories |
132 | 24 Defined syntax specification for the #TRANSFORM encoding class 24.1 Summary of encoding properties and defined syntax |
134 | 24.2 Source and target of transforms |
135 | 24.3 The int-to-int transform |
136 | 24.4 The bool-to-bool transform 24.5 The bool-to-int transform |
137 | 24.6 The int-to-bool transform 24.7 The int-to-chars transform |
138 | 24.8 The int-to-bits transform |
139 | 24.9 The bits-to-int transform 24.10 The char-to-bits transform |
141 | 24.11 The bits-to-char transform |
142 | 24.12 The bit-to-bits transform 24.13 The bits-to-bits transform |
143 | 24.14 The chars-to-composite-char transform 24.15 The bits-to-composite-bits transform |
144 | 24.16 The octets-to-composite-bits transform 24.17 The composite-char-to-chars transform 24.18 The composite-bits-to-bits transform 24.19 The composite-bits-to-octets transform |
145 | 25 Complete encodings and the #OUTER class 25.1 Encoding properties, syntax and purpose for the #OUTER class |
146 | 25.2 Encoder actions for #OUTER 25.3 Decoder actions for #OUTER |
147 | Annex A Addendum to Rec. ITU-T X.680 | ISO/IEC 8824-1 A.1 Exports and imports clauses A.2 Addition of REFERENCE |
148 | A.3 Notation for character string values |
149 | Annex B Addendum to Rec. ITU-T X.681 | ISO/IEC 8824-2 B.1 Definitions B.2 Additional lexical items B.2.1 Ordered value list field references B.2.2 Ordered encoding object list field references B.2.3 Encoding class field references B.3 Addition of “ENCODING-CLASS” B.4 FieldSpec additions |
150 | B.5 Fixed-type ordered value list field spec B.6 Fixed-class encoding object field spec B.7 Variable-class encoding object field spec |
151 | B.8 Fixed-class encoding object set field spec B.9 Fixed-class ordered encoding object list field spec B.10 Encoding class field spec B.11 Ordered value list notation B.12 Ordered encoding object list notation |
152 | B.13 Primitive field names B.14 Additional reserved words |
153 | B.15 Definition of encoding objects B.16 Additions to “Setting” |
154 | Annex C Addendum to Rec. ITU-T X.683 | ISO/IEC 8824-4 Annex C Addendum to Rec. ITU-T X.683 | ISO/IEC 8824-4 |
158 | Annex D Examples D.1 General examples D.1.1 An encoding object for a boolean type |
159 | D.1.2 An encoding object for an integer type D.1.3 Another encoding object for an integer type D.1.4 An encoding object for an integer type with holes D.1.5 A more complex encoding object for an integer type |
160 | D.1.6 Positive integers encoded in BCD |
161 | D.1.7 An encoding object of class #BITS |
162 | D.1.8 An encoding object for an octetstring type D.1.9 An encoding object for a character string type D.1.10 Mapping character values to bit values |
163 | D.1.11 An encoding object for a sequence type D.1.12 An encoding object for a choice type |
164 | D.1.13 Encoding a bitstring containing another encoding D.1.14 An encoding object set |
165 | D.1.15 ASN.1 definitions D.1.16 EDM definitions D.1.17 ELM definitions |
166 | D.2 Specialization examples D.2.1 Encoding by distributing values to an alternative encoding structure D.2.2 Encoding by mapping ordered abstract values to an alternative encoding structure |
167 | D.2.3 Compression of non-continuous value ranges D.2.4 Compression of non-continuous value ranges using a transform |
168 | D.2.5 Compression of an unevenly distributed value set by mapping ordered abstract values D.2.6 Presence of an optional component depending on the value of another component |
169 | D.2.7 The presence of an optional component depends on some external condition D.2.8 A variable length list |
170 | D.2.9 Equal length lists |
171 | D.2.10 Uneven choice alternative probabilities |
172 | D.2.11 A version 1 message |
173 | D.2.12 The encoding object set D.2.13 ASN.1 definitions |
174 | D.2.14 EDM definitions D.2.15 ELM definitions D.3 Explicitly generated structure examples |
175 | D.3.1 Sequence with optional components defined by a pointer D.3.2 Addition of a boolean type as a presence determinant |
177 | D.3.3 Sequence with optional components identified by a unique tag and delimited by a length field |
178 | D.3.4 Sequence-of type with a count D.3.5 Encoding object sets |
179 | D.3.6 ASN.1 definitions D.3.7 EDM definitions D.3.8 ELM definitions |
180 | D.4 A more-bit encoding example D.4.1 Description of the problem D.4.2 Use of ASN.1 to provide the more-bit determinant |
181 | D.4.3 Use of value mappings to provide the more-bit determinant |
182 | D.4.4 Use of the replacement mechanism to provide the more-bit determinant D.5 Legacy protocol specified with tabular notation D.5.1 Introduction |
184 | D.5.2 Encoding definition for the top-level message structure D.5.3 Encoding definition for a message structure |
185 | D.5.4 Encoding for the sequence type “B” D.5.5 Encoding for an octet-aligned sequence-of type with a length determinant D.5.6 Encoding for an octet-aligned sequence-of type which continues to the end of the PDU D.5.7 EDM definitions |
186 | D.5.8 ELM definitions |
187 | Annex E Support for Huffman encodings |
189 | Annex F Additional information on the Encoding Control Notation (ECN) |
190 | Annex G Summary of the ECN notation |