ISO/IEC 8825-1:1995
(Main)Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
Technologies de l'information — Règles de codage de la notation de syntaxe abstraite numéro un (ASN.1): Spécification des règles de codage de base (BER), des règles de codage canoniques (CER) et des règles de codage distinctives (DER)
General Information
Relations
Buy Standard
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 8825-l
First edition
1995-l O-l 5
Information technology - ASN.1 encoding
rules: Specification of Basic Encoding Rules
(BER), Canonical Encoding Rules (CER) and
Distinguished Encoding Rules (DER)
Technologies de /‘information - R&g/es de codage ASN. I: Spkifica tions
pour /es r&g/es de base de codage (BER), /es r&g/es canoniques de codage
(CER) et /es r&g/es de distinction de codage (DER)
Reference number
lSO/IEC 8825-l :I 995(E)
---------------------- Page: 1 ----------------------
ISO/IEC 8825-l: 1995(E)
CONTENTS
Page
1
1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Identical Recommendations I International Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
2.2 Additional references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .~.
3
2
4 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
5 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
6 Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
7 Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
8 Basic encoding rules .
3
8.1 General rules for encoding .
7
Encoding of a boolean value .
8.2
7
..............................................................................................................
8.3 Encoding of an integer value
7
Encoding of an enumerated value .
8.4
8
8.5 Encoding of a real value .
9
..............................................................................................................
8.6 Encoding of a bitstring value
10
8.7 Encoding of an octetstring value .
10
.....................................................................................................................
8.8 Encoding of a null value
11
Encoding of a sequence value .
8.9
11
........................................................................................................
8.10 Encoding of a sequence-of value
11
Encoding of a set value .
8.11
11
8.12 Encoding of a set-of value .
12
8.13 Encoding of a choice value .
12
8.14 Encoding of a tagged value .
12
Encoding of an open type .
8.15
13
Encoding of an instance-of value .
8.16
13
..................................................................................
8.17 Encoding of a value of the embedded-pdv type
14
8.18 Encoding of a value of the external type .
15
................................................................................................
8.19 Encoding of an object identifier value
16
Encoding for values of the restricted character string types .
8.20
18
.............................................................
8.21 Encoding for values of the unrestricted character string type
o ISO/IEC 1995
All rights reserved. Unless otherwise specified, no part of this publication may be
reproduced or utilized in any form or by any means, electronic or mechanical, including
photocopying and microfilm, without permission in writing from the publisher.
ISO/IEC Copyright Office l Case postale 56 l CH-1211 Geneve 20 l Switzerland
Printed in Switzerland
ii
---------------------- Page: 2 ----------------------
ISO/IEC 8825-l: 1995(E)
0 1s0/lEc
9 Canonical encoding rules . 19
19
91 Length forms .
String encoding forms . 19
9:2
19
93 . Set components .
......................................................................................................................... 19
10 Distinguished encoding rules
20
10.1 Length forms .
......................................................................................................................... 20
10.2 String encoding forms
20
10.3 Set components .
Restrictions on BER employed by both CER and DER . 20
11
20
11.1 Boolean values .
20
11.2 Unused bits .
11.3 Real values . 20
11.4 GeneralString values . 21
11.5 Set and sequence components with default value . 21
21
11.6 Set-of components .
21
11.7 GeneralizedTime .
21
12 Use of BER, CER and DER in transfer syntax definition .
Annex A - Example of encodings . 23
23
A. 1 ASN. 1 description of the record structure .
A.2 ASN. 1 description of a record value . 23
A.3 Representation of this record value . 23
.................................................................................................... 25
Annex B - Assignment of object identifier values
........................................................................................................... 26
Annex C - Illustration of real value encoding
.......................................................................... 28
Annex D - Use of the DER and CER in data origin authentication
28
D. 1 The problem to be solved .
29
D.2 The approach to a solution .
D.3 The implementation optimization . 29
. . .
111
---------------------- Page: 3 ----------------------
ISO/IEC 8825-l: 1995(E)
Foreword
IS0 (the International Organization for Standardization) and IEC (the Inter-
national Electrotechnical Commission) form the specialized system for worldwide
standardization. National bodies that are members of IS0 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.
IS0 and IEC technical committees collaborate in fields of mutual interest. Other
international organizations, governmental and non-governmental, in liaison with
IS0 and IEC, also take part in the work.
In the field of information technology, IS0 and IEC have established a joint
technical committee, ISO/IEC JTC 1. Draft International Standards adopted by the
joint technical committee are circulated to national bodies for voting. Publication
as an International Standard requires approval by at least 75 % of the national
bodies casting a vote.
International Standard ISOKIEC 8825-l was prepared by Joint Technical
Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 21, Open
systems interconnection, data management and open distributed processing, in
collaboration with ITU-T. The identical text is published as ITU-T
Recommendation X.690.
This is a revision of ISO/IEC 8825:1990.
ISO/IEC 8825:1995 consists of the following parts, under the general title
Information technology - ASN. I encoding rules:
- Part I: Specification of Basic Encoding Rules (BER), Canonical Encoding
Rules (CER) and Distinguished Encoding Rules (DER)
- Part 2: Specification of Packed Encoding Rules
Annexes A to D of this part of ISO/IEC 8825: 1995 are for information only.
IV
---------------------- Page: 4 ----------------------
ISO/IEC 8825=1:1995(E)
0 ISO/IEC
Introduction
\
ITU-T Rec. X.680 I ISO/IEC 8824-1, ITU-T Rec. X.681 I ISO/IEC 8824-2, ITU-T Rec. X.682 I ISOLIEC 8824-3,
ITU-T Rec. X.683 I ISO/IEC 8824-4 (Abstract Syntax Notation One or ASN. 1) together specify a notation for the
definition of abstract syntaxes, enabling application layer standards to define the types of information they need to
transfer using the presentation service. It also specifies a notation for the specification of values of a defined type.
This Recommendation I International Standard defines encoding rules that may be applied to values of types defined
using the ASN. 1 notation. 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 may be more than one set of encoding rules that can be applied to values of types that are defined using the ASN.l
notation. This Recommendation I International Standard defines three sets of encoding rules, called basic encoding
rules, canonical encoding rules and distinguished encoding rules. Whereas the basic encoding rules gives the sender
of an encoding various choices as to how data values may be encoded, the canonical and distinguished encoding rules
select just one encoding from those allowed by the basic encoding rules, eliminating all of the sender’s options. The
canonical and distinguished encoding rules differ from each other in the set of restrictions that they place on the basic
encoding rules.
The distinguished encoding rules is more suitable than the canonical encoding rules if the encoded value is small enough
to fit into the available memory and there is a need to rapidly skip over some nested values. The canonical encoding
rules is more suitable than the distinguished encoding rules if there is a need to encode values that are so large that they
cannot readily fit into the available memory or it is necessary to encode and transmit a part of a value before the entire
value is available. The basic encoding rules is more suitable than the canonical or distinguished encoding rules if the
encoding contains a set value or set-of value and there is no need for the restrictions that the canonical and distinguished
encoding rules impose. This is due to the memory and CPU overhead that the latter encoding rules exact in order to
guarantee that set values and set-of values have just one possible encoding.
A gi ves a n example of encoding rules. It does not form an integral
Annex the application of the basic part of this
Recom .mend .ation I International Standard.
Annex B summarizes the assignment of object identifier values made in this Recommendation International Standard. It
does not form an integral part of this Recommendation I International Standard.
encoding reals. It does not form an
Annex C gives ex .amples of applying the bas ic encoding rules for integral part of this
Recom mendation I International Standard.
Annex D provides a tutorial on the distinguished encoding rules to provide an integrity service for OS1
the use of
communications. It does not form an integral of this Recommendation I International Standard.
Pad
---------------------- Page: 5 ----------------------
This page intentionally left blank
---------------------- Page: 6 ----------------------
ISO/IEC 8825-l : 1995 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
INFORMATION TECHNOLOGY - ASN.l ENCODING RULES:
SPECIFICATION OF BASIC ENCODING RULES (BER),
CANONICAL ENCODING RULES (CER)
AND DISTINGUISHED ENCODING RULES (DER)
1 Scope
This Recommendation I International Standard specifies a set of basic encoding rules that may be used to derive the
specification of a transfer syntax for values of types defined using the notation specified in ITU-T Rec. X.680 (1994) I
ISOLIEC 8824-1:1995, ITU-T Rec. X.681 (1994) I ISO/IEC 8824-2:1995, ITU-T Rec. X.682 (1994) I
ISOLIEC 8824 3: 1995, and ITU-T Rec. X.683 (1994) I ISO/IEC 8824-4: 1995, collectively referred to as Abstract Syntax
Notation One or ASN.1. These basic encoding rules are also to be applied for decoding such a transfer syntax in order to
identify the data values being transferred. It also specifies a set of canonical and distinguished encoding rules that restrict
the encoding of values to just one of the alternatives provided by the basic encoding rules.
These encoding rules are used at the time of communication (by the presentation service provider when required by a
presentation context).
Normative references
2
The following Recommendations and International Standards contain provisions which, through reference in this text,
constitute provisions of this Recommendation I 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 I International Standard are encouraged to investigate the possibility of applying the most recent
editions of the Recommendations and Standards listed below. Members of IEC and IS0 maintain registers of currently
valid International Standards. The Telecommunications Standardization Bureau of the ITU maintains a list of currently
valid ITU-T Recommendations.
Identical Recommendations I International Standards
21 .
-
ITU-T Recommendation X.200 (1994) I ISO/IEC 7498-l : 1994, Information technology - Open Systems
Interconnection - Basic Reference Model: The basic model.
-
ITU-T Recommendation X.226 (1994) I ISO/IEC 8823-1:1994, Information technology - Open Systems
- Connection-oriented presentation protocol: Protocol specification.
Interconnection
-
ITU-T Recommendation X.680 (1994) I ISO/IEC 8824-l : 1995, Information technology - Abstract Syntax
Notation One (ASN.1): Specification of basic notation.
-
ITU-T Recommendation X.68 1 (1994) I ISO/IEC 8824-2: 1995, Information technology - Abstract Syntax
Notation One (ASN. 1): Information object specification.
-
ITU-T Recommendation X.682 (1994) I ISO/IEC 8824-3: 1995, Information technology - Abstract Syntax
Notation One (ASN. 1): Constraint specification.
-
ITU-T Recommendation X.683 (1994) I ISO/IEC 8824-4: 1995, Information technology - Abstract Syntax
Notation One (ASN. 1): Parameterization of ASN. 1 specifications.
22 0 Additional references
-
IS0 International Register of Coded Character Sets to be used with Escape Sequence.
-
ISO/IEC 2022: 1994, Information technology - Character code structure and extension techniques.
-
IS0 6093: 1985, Information processing - Representation of numerical values in character strings for
information interchange.
ITU-T Rec. X.690 (1994 E) 1
---------------------- Page: 7 ----------------------
ISO/IEC 8825-l : 1995 (E)
-
ISO/IEC 6429: 1992, Information technology - Control functions for coded character sets.
-
CCITT Recommendation X.208 (1988), Specification of Abstract Syntax Notation One (ASN. 1).
-
ISOIIEC 8824-l to 8824: 1990, Information technology - Open Systems Interconnection - Specification of
Abstract Syntax Notation One (ASN.1).
-
ISOIIEC 10646-l: 1993, Information technology - Universal Multiple-Octet Coded Character Set (KS) -
Part 1: Architecture and Basic Multilingual Plane.
Definitions
3
For the purposes of this Recommendation I International Standard the definitions of ISO/IEC 7498-l and ITU-T Rec. X.680 I
ISO/IEC 8824-l and the following definitions apply.
31 dynamic conformance: A statement of the requirem Lent for an implementation to adhere to the behavior
communication.
piescri bed by this Recommendation I Internation al Standard in an instance of
static conformance: A statement of the requirement for support by an implementation of a valid set of
32
features from among those defined by this Recommendation I International Standard.
33 . data value: Information specified as the value of a type; the type and the value are defined using ASN. 1.
. encoding (of a data value): The complete sequence of octets used to represent the data value.
34
35 . identifier octets: Part of a data value encoding which is used to identify the type of the value.
NOTE - Some ITU-T Recommendations use the term “data element” for this sequence of octets, but the term is not used in
this Recommendation I International Standard, as other Recommendations I International Standards use it to mean “data value”.
36 . length octets: Part of a data value encoding following the identifier octets which is used to determine the end
of the encoding.
37 . contents octets: That part of a data value encoding which represents a particular value, to distinguish it from
other values of the same type.
38 . end-of-contents octets: Part of a data value encoding, occurring at its end, which is used to determine the end
of the encoding.
NOTE - Not all encodings require end-of-contents octets.
39 . primitive encoding: A data value encoding in which the contents octets directly represent the value.
encoding in which the contents octets are the complete encoding of one
3.10 constructed encoding: A data value
or more data values.
3.11 receiver: An implementation decoding the octets produced sender, in order to identify the data value
by a
which was encoded.
3.12 sender: An implementation encoding a data value for transfer.
3.13 trailing 0 bit: A 0 in the last position of a bitstring value.
NOTE - The 0 in a bitstring value consisting of a single 0 bit is a trailing 0 bit. Its removal produces an empty bitstring.
4 Abbreviations
ASN.l Abstract Syntax Notation One
Basic Encoding Rules of ASN.l
BER
CER Canonical Encoding Rules of ASN.l
DER Distinguished Encoding Rules of ASN. 1
ULA Upper Layer Architecture
Notation
5
This Recommendation I International Standard references the notation defined by ITU-T Rec. X.680 I ISO/IEC 8824-l.
2 IT&T Rec. X.690 (1994 E)
---------------------- Page: 8 ----------------------
ISO/IEC 8825-l : 1995 (E)
6 Convention
61 This Recommendation I International Standard specifies the value of each octet in an encoding by use of the
tkms “most significant bit” and “least significant bit”.
NOTE - Lower layer specifications use the same notation to define the order of bit transmission on a serial line, or the
assignment of bits to parallel channels.
62 For the purposes of this Recommendation I International Standard only, 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”.
63 . For the purpose of this Recommendation I International Standard, two octet strings can be compared. One octet
string is equal to another if they are of the same length and are the same at each octet position. An octet string, Sl, is
greater than another, S2, if and only if either:
a) S1 and S2 have identical octets in every position up to and including the final octet in S2, but S1 is longer;
or
S1 and S2 have different octets in one or more positions, and in the first such position, the octet in Sl is
b)
4
greater than that in S2, considering the octets as unsigned binary numbers whose bit n has weight 2”-
Conformance
7.1 Dynamic conformance is specified by clause to clause inclusive.
Static conformance is specified by those standards which specify the application of one or more of these
7.2
encoding rules.
7.3 Alternative encodings are permitted by the basic encoding rules as a sender’s option. Receivers who claim
conformance to the basic encoding rules shall support all alternatives.
NOTE - Examples of such alternative encodings appear in 8.1.3.2 b) and Table 3.
No alternative encodings are permitted by the Canonical Encoding Rules or Distinguished Encoding Rules.
7.4
8 Basic encoding rules
General rules for encoding
81 .
8.1.1 Structure of an encoding
8.1.1.1 The encoding of a data value shall consist of four components which shall appear in the following order:
a) identifier octets (see 8.1.2);
b) length octets (see 8.1.3);
contents octets (see 8.1.4);
C>
end-of-contents octets (see 8.1.5).
d)
8.1.1.2 The end-of-contents octets shall not be present unless the value of the length octets requires them to be present
(see 8.1.3).
Figure 1 illustrates the structure of an encoding (primitive or constructed). Figure 2 illustrates an alternative
8.1.1.3
constructed encoding.
Identifier octets
8.1.2
The identifier octets shall encode the ASN.l tag (class and number) of the type of the data value.
8.1.2.1
ITU-T Rec. X.690 (1994 E) 3
---------------------- Page: 9 ----------------------
ISO/IEC 8825-l : 1995 (E)
Identifier octets Length octets Contents octets
I
The number of octets
in the contents octets
(see 8.1.3.2)
TIS04830-94/dO 1
Figure 1 - Structure of an encoding
End of contents octets
ldentif ier octets Length octets contents octets
Indicates that the contents Indicates that there are
octets are terminated by no further encodings
end of contents octets in the contents octets
(see 8.1.3.6)
TIS0484@94/dO2
Figure 2 - An alternative constructed encoding
8.1.2.2 For tags with a number ranging from zero to 30 (inclusive), the identifier octets shall comprise a single octet
encoded as follows:
a) bits 8 and 7 shall be encoded to represent the class of the tag as specified in Table 1;
b) bit 6 shall be a zero or a one according to the rules of 8.1.2.5;
c) bits 5 to 1 shall encode the number of the tag as a binary integer with bit 5 as the most significant bit.
Table 1 - Encoding of class of tag
Bit 7
Class
Universal
Application
Context-specific
Private
Figure 3 illustrates the form of an identifier octet for a type with a tag whose number is in the range zero to
8.1.2.3
30 (inclusive).
ITU-T Rec. X.690 (1994 E)
4
---------------------- Page: 10 ----------------------
ISO/IEC 8825-l : 1995 (E)
ldentif ier octet
8 7 6 5 4 3 2 1
Bits
Class P/C Number of tag
- 0 = Primitive
- 1 = Constructed
TlSO4850-94/dO3
Figure 3 - Identifier octet (low tag number)
8.1.2.4 For tags with a number greater than or equal to 3 1, the identifier shall comprise a leading octet followed by
one or more subsequent octets.
8.1.2.4.1 The leading octet shall be encoded as follows:
a) bits 8 and 7 shall be encoded to represent the class of the tag as listed in Table 1;
b) bit 6 shall be a zero or a one according to the rules of 8.1.2.5;
c) bits 5 to 1 shall be encoded as 111112.
8.1.2.4.2 The subsequent octets shall encode the number of the tag as follows:
a) bit 8 of each octet shall be set to one unless it is the last octet of the identifier octets;
b) bits 7 to 1 of the first subsequent octet, followed by bits 7 to 1 of the second subsequent octet, followed in
turn by bits 7 to 1 of each further octet, up to and including the last subsequent octet in the identifier
octets shall be the encoding of an unsigned binary integer equal to the tag number, with bit 7 of the first
subsequent octet as the most significant bit;
c) bits 7 to 1 of the first subsequent octet shall not all be zero.
8.1.2.4.3 Figure 4 illustrates the form of the identifier octets for a type with a tag whose number is greater than 30.
Subsequent octets
Leading octet 2nd octet Last octet
Class P/C 1 1 1 1 1
= Number of tag
*
A
TIS04860-94/dO4
Figure 4 - Identifier octets (high tag number)
8.1.2.5 Bit 6 shall be set to zero if the encoding is primitive, and shall be set to one if the encoding is constructed.
NOTE - Subsequent clauses specify whether the encoding is primitive or constructed for each type.
8.1.2.6 ITU-T Rec. X.680 I ISOLIEC 8824-l specifies that the tag of a type defined using the “CHOICE” keyword
takes the value of the tag of the type from which the chosen data value is taken.
ITU-T Rec. X.690 (1994 E) 5
---------------------- Page: 11 ----------------------
ISO/IEC 8825-l : 1995 (E)
8.1.2.7 ITU-T Rec. X.681 I ISO/IEC 8824-2, subclauses 14.2 and 14.4 specifies that the tag of a type defined using
“ObjectClassFieldType” is indeterminate if it is a type field, a variable-type value field, or a variable-type value set field.
This type is subsequently defined to be an ASN.l type, and the complete encoding is then identical to that of a value of
the assigned type (including the identifier octets).
8.1.3 Length octets
8.1.3.1 Two forms of length octets are specified. These are:
a) the definite form (see 8.1.3.3); and
b) the indefinite form (see 8.1.3.6).
8.1.3.2 A sender shall:
use the definite form (see 8.1.3.3) if the encoding is primitive;
a)
b) use either the definite form (see 8.1.3.3) or the indefinite form (see 8.1.3.6), a sender’s option, if the
encoding is constructed and all immediately available;
use the indefinite form (see 8.1.3.6) if the encoding is constructed and is not all immediately available.
Cl
8.1.3.3 For the definite form, the length octets shall consist of one or more octets, and shall represent the number of
octets in the contents octets using either the short form (see 8.1.3.4) or the long form (see 8.1.3.5) as a sender’s option.
NOTE - The short form can only be used if the number of octets in the contents octets is less than or equ
...
ISO/CEI --
NORME I-
8825-1
INTERNATIONALE
Première édition
1995-1 0-1 5
Technologies de l'information - Règles de
codage de la notation de syntaxe abstraite
numéro un (ASN.1): Spécification des
règles de codage de base (BER), des règles
de codage canoniques (CER) et des règles
de codage distinctives (DER)
Information technology - ASN. 1 encoding rules: Specification of Basic
Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished
Encoding Rules (DER)
Numéro de référence
ISO/CEI 8825-1 11 995(F)
---------------------- Page: 1 ----------------------
ISOKEI 8825-1:1995(F)
Sommaire
Page
1 Domaine d'application .
1
2 Références normatives .
1
2.1 Recommandations et Normes internationales identiques . 1
2.2 Autres références .
2
3 Définitions . 2
4 Abréviations .
3
5 Notation .
3
6 Conventions . 3
7 Conformité .
3
8 Règles de codage de base . 3
8.1 Règles générales de codage . 3
Codage dune valeur booléenne .
8.2 7
Codage dune valeur entière .
8.3 8
8.4 Codage dune valeur énumérée . 8
Codage d'une valeur réelle .
8.5 8
8.6 Codage dune valeur de type chaîne binaire . 10
Codage dune valeur de type chaîne d'octets .
8.7 11
Codage dune valeur vide .
8.8 11
8.9 Codage dune valeur de type séquence . 12
Codage dune valeur de type séquence-de .
8.10 12
8.11 Codage dune valeur de type ensemble . 12
Codage dune valeur de type ensemble-de .
8.12 12
8.13 Codage dune valeur de type choix .
13
Codage dune valeur étiquetée .
8.14 13
8.15 Codage dune valeur de type ouvert .
13
8.16 Codage dune valeur de type instance-de . 14
Codage dune valeur de type valeur de donnée de présentation encapsulée .
8.17 14
O ISO/CEI 1995
Droits de reproduction réservés . Sauf prescription différente. aucune partie de cette publi-
cation ne peut être reproduite ni utilisée sous quelque forme que ce soit et par aucun pro-
y compris la photocopie et les microfilms. sans l'accord
cédé. électronique ou mécanique.
écrit de l'éditeur .
ISO/CEI Copyright Office Case Postale 56 CH-121 1 Genève 20 Suisse
Version française tirée en 1996
Imprimé en Suisse
..
11
---------------------- Page: 2 ----------------------
O ISO/CEI ISOKEI 8825-1:1995(F)
Codage dune valeur de type externe .
8.18 15
Codage dune valeur d'identificateur d'objet .
8.19 16
Codage d'une valeur de type chaîne de caractères avec restnction . 17
8.20
8.21 Codage dune valeur de type chaîne de caractères sans restriction . 19
Règles de codage canoniques .
20
9
9.1 Formes de longueur .
20
9.2 Formes de codage des chaînes . 20
9.3 Eléments d'ensemble .
20
Règles de codage distinctives .
21
10
10.1 Formes de longueur .
21
10.2 Formes de codage des chaînes . 21
10.3 Eléments d'ensemble . 21
11 Restrictions aux règles de codage de base applicables aux règles de codage canoniques et distinctives . 21
11.1 Valeurs booléennes .
21
21
11.2 Bits inutilisés .
1 1.3 Valeurs réelles .
21
11.4 Valeurs du type chaîne générale Generalstring . 22
Eléments d'ensemble et éléments de séquence avec valeur par défaut . 22
11.5
11.6 Eléments d'ensemble-de . 22
1 1.7 Temps généralisé .
22
12 Utilisation des règles de codage canoniques, distinctives et de base dans une définition de syntaxe de
transfert .
23
Annexe A . Exemples de codages . 24
A.l Description ASN.1 de la structure de l'enregistrement . 24
A.2 Description ASN.l dune valeur d'enregistrement . 24
A.3 Représentation de la valeur de cet enregistrement . 24
Annexe B - Affectation des valeurs d'identificateur d'objet .
26
Annexe C - Illustration du codage dune valeur réelle . 27
Annexe D - Utilisation des règles de codage distinctives (DER) et canoniques (CER) en authentification
29
d'origine des données .
D.l Problème à résoudre . 29
D.2 Approche de la solution . 30
D.3 Optimisation du produit . 30
iii
---------------------- Page: 3 ----------------------
0 ISO/CEI
ISOKEI 8825-1:1995(F)
Avant-propos
LIS0 (Organisation internationale de normalisation) et la CE1 (Commission élec-
trotechnique internationale) forment ensemble un système consacré à la normali-
sation internationale considérée comme un tout. Les organismes nationaux
membres de 1'ISO ou de la CE1 participent au développement de Normes interna-
tionales par l'intermédiaire des comités techniques créés par l'organisation concer-
née afin de s'occuper des différents domaines particuliers de l'activité technique.
Les comités techniques de I'ISO et de la CE1 collaborent dans des domaines d'inté-
rêt commun. D'autres organisations internationales, gouvernementales ou non
gouvernementales, en liaison avec I'ISO et la CE1 participent également aux tra-
vaux.
Dans le domaine des technologies de l'information, I'ISO et la CE1 ont créé un
comité technique mixte, l'ISO/CEI JTC 1. Les projets de Normes internationales
adoptés par le comité technique mixte sont soumis aux organismes nationaux pour
approbation, avant leur acceptation comme Normes internationales. Les Normes
internationales sont approuvées conformément aux procédures qui requièrent l'ap-
probation de 75 % au moins des organismes nationaux votants.
La Norme internationale ISO/CEI 8825-1 a été élaborée par le comité technique
mixte ISO/CEI JTC 1, Technologies de l'information, sous-comité SC 21, Znter-
ou-
connexion des systèmes ouverts, gestion des données et traitement distribué
vert, en collaboration avec WIT-T. Le texte identique est publié en tant que
Recommandation UIT-T X.690.
C'est une révision de l'ISO/CEI 8825: 1990.
L'ISO/CEI 8825: 1995 comprend les parties suivantes, présentées sous le titre gé-
néral Technologies de l'information - Règles de codage de la notation de syntaxe
un (ASN.1):
abstraite numéro
-
Partie 1: Spécification des règles de codage de base (BER), des règles de
codage canoniques (CER) et des règles de codage distinctives (DER)
-
Partie 2: Spécification des règles de codage condensées
Les annexes A à D de la présente partie de l'ISO/CEI 8825:1995 sont données
uniquement à titre d'information.
iv
---------------------- Page: 4 ----------------------
0 ISOKEI ISO/CEI 8825-1: 1995(F)
Introduction
Les Rec. UIT-T X.680 I ISO/CEI 8824-1, UIT-T X.681 I ISO/CEI 8824-2, UIT-T X.682 I ISO/CEI 8824-3,
I ISO/CEI 8824-4, (Syntaxe abstraite numéro un ou ASN.l) spécifient une notation de définition de
UIT-TX.683
syntaxes abstraites, permettant aux normes de la couche application de définir les types d'informations nécessaires au
transfert des données au moyen du service de présentation. Elles définissent également une notation pour la spécification
des valeurs de chaque type défini.
La présente Recommandation I Norme internationale définit les règles de codage applicables aux valeurs des types
définis au moyen de la notation ASN. 1. L'application de ces règles de codage produit une syntaxe de transfert pour ces
valeurs. I1 est implicitement entendu que la spécification de ces règles de codage s'applique également au décodage.
Plusieurs ensembles de règles de codage peuvent être appliqués aux valeurs des types définis au moyen de la notation
ASN. 1. La présente Recommandation I Norme internationale définit trois ensembles de règles de codage, appelés règles
de codage de base, règles de codage canoniques et règles de codage distinctives. Alors que les règles de codage de
base offrent au codeur différentes possibilités de codage pour les valeurs, les règles de codage canoniques et distinctives
sélectionnent pour chaque valeur un seul codage parmi les possibilités offertes par les règles de codage de base en
éliminant toutes les options laissées par celles-ci au codeur. Les règles distinctives et les règles canoniques diffèrent par
la nature des restrictions qu'elles imposent aux règles de codage de base.
Les règles distinctives conviennent mieux que les règles canoniques lorsque la valeur codée est suffisamment petite pour
tenir dans la mémoire disponible et lorsqu'il est nécessaire de passer rapidement certaines valeurs encapsulées. Les règles
canoniques sont mieux adaptées que les règles distinctives lorsqu'il est besoin de coder des valeurs si grandes qu'elles
dépassent la capacité mémoire disponible ou lorsqu'il est nécessaire de coder et de transmettre une partie d'une valeur
avant que celle-ci soit disponible dans sa totalité. Les règles de codage de base sont mieux adaptées que les règles de
codage canoniques ou distinctives s'il s'agit de coder une valeur du type ensemble ou ensemble-de sans s'astreindre aux
restrictions que les règles canoniques et distinctives imposent. Ceci est dû au surcroît de mémoire et de calculs que ces
dernières exigent afin de garantir que les valeurs de type ensemble ou ensemble-de n'ont qu'un seul codage possible.
L'Annexe A donne des exemples d'application des règles de codage de base. Elle ne fait pas partie intégrante de la
présente Recommandation I Norme internationale.
L'Annexe B résume les affectations de valeurs d'identificateurs d'objets stipulées dans la présente Recommandation I
Norme internationale. Elle ne fait pas partie intégrante de la présente Recommandation I Norme internationale.
L'Annexe C donne des exemples de l'application des règles de base au codage des réels. Elle ne fait pas partie intégrante
de la présente Recommandation I Norme internationale.
L'Annexe D montre comment utiliser les règles de codage distinctives pour assurer un service d'intégrité pour les
I Norme internationale.
communications OSI. Elle ne fait pas partie intégrante de la présente Recommandation
V
---------------------- Page: 5 ----------------------
ISOKEI 8825-1 : 1995 (F)
NORME INTERNATIONALE
RECOMMANDATION UIT-T
TECHNOLOGIES DE L'INFORMATION - RÈGLES DE CODAGE
DE LA NOTATION DE SYNTAXE ABSTRAITE NUMÉRO UN (ASN.l):
SPÉCIFICATION DES RÈGLES DE CODAGE DE BASE (BER),
DES RÈGLES DE CODAGE CANONIQUES (CER)
ET DES RÈGLES DE CODAGE DISTINCTIVES (DER)
1 Domaine d'application
La présente Recommandation I Norme internationale spécifie un ensemble de règles de codage de base qui peuvent être
utilisées pour spécifier une syntaxe de transfert pour des valeurs appartenant à des types définis au moyen de la notation
spécifiée dans les Rec. UIT-T X.680 (1994) I ISO/CEI 8824-1:1995, UIT-T X.681 (1994) I ISO/CEI 8824-2:1995,
UIT-T X.682 (1994) I ISO/CEI 8824-3:1995, et UIT-T X.683 (1994) I ISO/CEI 8824-4:1995, appelées collectivement
syntaxe abstraite numéro un ou ASN.l. Ces règles de codage de base s'appliquent également au décodage dune telle
syntaxe de transfert pour identifier les valeurs de données transférées. La Recommandation spécifie également un
ensemble de règles canoniques et distinctives qui restreignent le codage des valeurs à une seule des possibilités
autorisées par les règles de codage de base.
Ces règles de codage sont utilisées au moment de la communication (par le fournisseur du service de présentation,
lorsque le contexte de présentation le requiert).
2 Références normatives
Les Recommandations et les Normes internationales suivantes contiennent des dispositions qui, par suite de la référence
qui y est faite, constituent des dispositions valables pour la présente Recommandation I Norme internationale. Au
moment de la publication, les éditions indiquées étaient en vigueur. Toutes Recommandations et Normes sont sujettes à
révision et les parties prenantes aux accords fondés sur la présente Recommandation I Norme internationale sont invitées
à rechercher la possibilité d'appliquer les éditions les plus récentes des Recommandations et Normes indiquées ci-après.
Les membres de la CE1 et de l'IS0 possèdent le registre des Normes internationales en vigueur. Le Bureau de la
normalisation des télécommunications de l'UT tient à jour une liste des Recommandations de I'UIT-T en vigueur.
Recommandations et Normes internationales identiques
2.1
- Recommandation UIT-T X.200 (1994) I ISO/CEI 7498-1:1994, Technologie de l'information -
Interconnexion des systèmes ouverts - Modèle de référence de base: Le modèle de référence de base.
- Recommandation UIT-T X.226 (1994) I ISO/CEI 8823-1:1994, Technologie de l'information -
Interconnexion des systèmes ouverts - Protocole de présentation en mode connexion: Spécification du
protocole.
-
Recommandation UIT-T X.680 (1994) I ISO/CEI 8824-1: 1995, Technologie de l'information - Notation
de syntaxe abstraite numéro un: Spécification de la notation de base.
-
Recommandation UIT-T X.681 (1994) I ISO/CEI 8824-2: 1995, Technologies de I'infomtion - Notation
de syntaxe abstraite numéro un: Spéci@cation des objets informationnels.
-
Recommandation UIT-T X.682 (1994) I ISOICEI 8824-3:1995, Technologies de l'information - Notation
de syntaxe abstraite numéro un: Spécification des contraintes.
-
Recommandation UIT-T X.683 (1994) I ISO/CEI 8824-4: 1995, Technologie de l'information - Notation
de syntaxe abstraite numéro un: Paramétrage des spécifications de la notation de syntaxe abstraite
numéro un.
1
Rec. UIT-T X.690 (1994 F)
---------------------- Page: 6 ----------------------
ISOKEI 8825-1 : 1995 (F)
2.2 Autres références
IS0 Registre international des jeux de caractères codés à utiliser avec la séquence d'échappement.
ISOKEI 2022: 1994, Technologies de l'information - Structure de code de caractères et techniques
d'extension.
IS0 6093: 1985, Traitement de l'information - Représentation des valeurs numériques dans les chaînes de
caractères pour l'échange d'information.
ISOKEI 6429: 1992, Technologies de l'information - Fonctions de commande pour les jeux de caractères
codés.
Recommandation X.208 du CCITT (1988), Spécification de la syntaxe abstraite numéro un (ASN.1).
ISOKEI 8824-1 à 8824-4: 1990, Technologies de l'information - Interconnexion de systèmes ouverts -
Spécification de la notation de syntaxe abstraite numéro un.
ISOKEI 10646-1: 1993, Technologies de l'information - Jeu universel de caractères codés à plusieurs
octets - Partie I: Architecture et table multilingue.
3 Définitions
Pour les besoins de la présente Recommandation I Norme internationale, les définitions données par IS0 7498 et par la
Rec. UIT-T X.680 I ISOKEI 8824-1 sont utilisées et les termes suivants sont définis.
conformité dynamique: Déclaration de la nécessité pour une réalisation de se conformer au comportement
3.1
prescrit par la présente Recommandation I Norme internationale au cours dune instance de communication.
3.2 conformité statique: Déclaration de la nécessité pour une réalisation de présenter un ensemble valide de
caractéristiques, parmi celles définies par la présente Recommandation I Norme internationale.
3.3 valeur de données: Information spécifiée comme valeur dun type, le type et la valeur étant définis en ASN. 1.
3.4 codage (d'une valeur de données): Séquence d'octets complète utilisée pour représenter la valeur de données.
champ d'identification: Partie du codage dune valeur de données servant à identifier le type de la valeur.
3.5
NOTE - Certaines Recommandations UIT-T utilisent l'expression "élément de données" pour désigner cette séquence;
cette expression n'est pas utilisée dans la présente Recommandation I Norme internationale, car d'autres Recommandations I Normes
internationales l'utilisent au sens de "valeur de données".
3.6 champ de longueur: Partie du codage dune valeur de données placée à la suite du champ d'identification, et
servant à déterminer la longueur du codage.
champ de contenu: Partie du codage dune valeur de données représentant une valeur particulière qui la
3.7
distingue des autres valeurs du même type.
champ de fin de contenu: Partie du codage dune valeur de données placée à sa fin et servant à indiquer la fin
3.8
du codage.
NOTE - Les codages ne nécessitent pas tous des octets de fin de contenu.
3.9 codage primitif: Codage dune valeur de donnée dans lequel le champ de contenu représente directement la
valeur.
3.10 codage structuré: Codage dune valeur de donnée dans lequel le champ de contenu est le codage complet
d'une ou plusieurs autres valeurs de données.
3.11 destinataire: Réalisation décodant la séquence générée par un expéditeur pour déterminer la valeur de données
qui a été codée.
3.12
expéditeur: Réalisation codant une valeur de donnée pour la transférer.
2 R~c. UIT-T X.690 (1994 F)
---------------------- Page: 7 ----------------------
ISOKEI 8825-1 : 1995 (F)
bit de fin à O: Bit à O en dernière position dune valeur de chaîne binaire.
3.13
NOTE - Le O dune valeur de chaîne binaire constituée dun bit unique de valeur nulle est un bit de fin à O. Sa suppression
transforme la chaîne en une chaîne vide.
4 Abréviations
ASN. 1 Notation de syntaxe abstraite numéro un (abstract syntax notation one)
BER Règles de codage de base (de 1'ASN. 1) (basic encoding rules)
CER Règles de codage canoniques (de I'ASN. 1) (canonical encoding rules)
Règles de codage distinctives (de I'ASN. 1) (distinguished encoding rules)
DER
ULA Architecture des couches supérieures (upper layer architecture)
Notation
l5
La présente Recommandation I Norme internationale reprend la notation définie par la Rec. UIT-T X.680 I
ISOKEI 8824- 1.
6 Conventions
La présente Recommandation I Norme internationale spécifie les bits de chaque octet codé en utilisant les
6.1
expressions "bit le plus significatif' et "bit le moins significatif '.
NOTE - Les spécifications des couches inférieures utilisent la même notation pour définir l'ordre de transmission des bits
sur une ligne série ou l'affectation des bits sur des voies parallèles.
6.2 Aux fins de la présente Recommandation I Norme internationale, les bits dun octet sont numérotés de 8 à 1, le
bit 8 étant "le plus significatif' et le bit 1 "le moins significatif'.
6.3 I1 est possible aux fins de la présente Recommandation I Norme internationale de comparer deux chaînes
d'octets. Deux chaînes d'octets sont égales si elles ont la même longueur et si les octets de même rang sont identiques.
Une chaîne d'octets SI est supérieure à une chaîne S2 si et seulement si:
soit S1 et S2 ont tous leurs octets de même rang égaux jusqu'à l'octet final de S2 inclusivement, mais S1 est
a)
plus longue que S2;
soit S1 et S2 diffèrent par un ou plusieurs octets de même rang, l'octet de S1 de la première position de
b)
différence étant supérieur à son homologue de S2, les octets étant considérés comme des nombres binaires
non signés dont le bit n est de poids 2"-'.
Conformité
e'
à 12 inclusivement.
7.1 La conformité dynamique est spécifiée par les articles 8
La conformité statique est définie par les normes qui spécifient l'application dune ou plusieurs de ces règles de
7.2
codage.
Les règles de base autorisent des variantes de codage sur option de l'expéditeur. Les destinataires déclarant être
7.3
conformes aux règles de codage de base prendront en charge toutes les variantes possibles.
NOTE - Des exemples de ces variantes de codage figurent au 8.1.3.2 b) et au Tableau 3.
7.4 Aucune variante de codage n'est autorisée par les règles de codage canoniques et les règles de codage
distinctives.
8
Règles de codage de base
8.1 Règles générales de codage
8.1.1 Structure d'un codage
8.1.1.1 Le codage dune valeur de données comporte quatre composantes apparaissant dans l'ordre suivant:
a) champ d'identification (voir 8.1.2);
Rec. UIT-T X.690 (1994 F) 3
---------------------- Page: 8 ----------------------
ISOKEI 8825-1 1995 (F)
champ de longueur (voir 8.1.3);
b)
champ de contenu (voir 8.1.4);
c)
champ de fin de contenu (voir 8.1.5).
d)
8.1.1.2 Le champ de fin de contenu ne figurera que lorsque la valeur du champ de longueur en exige la présence
(voir 8.1.3).
1 présente la structure d'un codage (primitif ou structuré). La Figure 2 présente une variante de
8.1.1.3 La Figure
codage structuré.
8.1.2 Champ d'identification
8.1.2.1 Le champ d'identification code l'étiquette ASN. 1 (classe et numéro) du type de la valeur de données.
Champ
Champ de contenu
Champ de longueur
d'identification
Nombre d'octets
dans le champ de contenu
(voir 8.1.3.2)
I
llS04830-94/dOl
Figure 1 - Structure d'un codage
Champ
Champ de longueur Champ de contenu Séquence de fin de contenu
dldentificaiion
Indique que le champ Indique qu'il n'y a plus
se termine d'autres codages dans le
de contenu
champ de canimu
par une séquence de
fin decontenu
(vdr 8.1.3.6)
Figure 2 - Variante de codage structuré
8.1.2.2 Pour les étiquettes ayant un numéro entre O et 30 (inclusivement), le champ d'identification comprendra un
seul octet codé comme suit:
les bits 8 et 7 représentent la classe de l'étiquette conformément au Tableau 1;
a)
le bit 6 prend la valeur O ou 1, conformément aux règles du 8.1.2.5;
b)
les bits 5 à 1 représentent la valeur binaire du numéro de l'étiquette, le bit 5 étant le bit le plus significatif.
c)
4
Rec. UIT-T X.690 (1994 F)
---------------------- Page: 9 ----------------------
ISWCEI 8825-1 : 1995 (F)
Tableau 1 - Codage de la classe de l'étiquette
Classe Bit 8 Bit 7
Universelle O O
Propre à une application O 1
Spécifique au contexte 1 O
1 1
A usage privé
8.1.2.3 La Figure 3 présente la forme du champ d'identification d'un type dont l'étiquette a un numéro compris entre O
et 30.
I
Octet d'identification
Bits
Numéro d'étiquette
O = Type primitif
1 =Type structuré
I1
I'
TIS04850-94ldi
Figure 3 - Champ d'identification 2i un octet (étiquette de petit numéro)
8.1.2.4 Pour les étiquettes de numéro supérieur ou égal à 31, l'identificateur est composé dun octet de tête, suivi dun
ou de plusieurs autres octets.
8.1.2.4.1 L'octet de tête est codé comme suit:
les bits 8 et 7 représentent la classe de l'étiquette conformément au Tableau 1;
a)
le bit 6 prend la valeur O ou 1, conformément aux règles du 8.1.2.5;
b)
les bits 5 à 1 reçoivent la valeur 11 11 12.
c)
8.1.2.4.2 Les octets suivants représenteront le numéro de l'étiquette codé comme suit:
le bit 8 de chaque octet prendra la valeur 1, sauf s'il s'agit du dernier octet de l'identificateur;
a)
les bits 7 à 1 du premier octet suivant, suivis des bits 7 à 1 du deuxième octet à la suite, suivis à leur tour
b)
des bits 7 à 1 de chacun des octets suivants, jusques et y compris le dernier octet de l'identificateur,
recevront un entier binaire non signé égal au numéro de l'étiquette, le bit 7 du premier octet étant le bit de
plus fort poids;
les bits 7 à 1 du premier octet ne doivent pas tous être à zéro.
c)
8.1.2.4.3 La Figure 4 présente la structure du champ d'identification pour un type portant une étiquette de numéro
supérieur à 30.
Rec. UIT-T X.690 (1994 F) 5
---------------------- Page: 10 ----------------------
ISOKEI 8825-1 : 1995 (F)
Octets suivants
4 b
Dernier octet
Octet de tête 2e octet
4 b4 t----+
P/C 1 1 1 1 1
Classe
n+nioo = Numéro d'étiquette
TIS04860-94/404
Le bit 6 sera mis à O si le codage est de type primitif; et à 1 s'il est de type structuré.
8.1.2.5
NOTE - Les articles suivants précisent pour chaque type si le codage est primitif ou structuré.
La Rec. UIT-T X.680 I ISOKEI 8824-1 spécifie que l'étiquette dun type défini au moyen du mot clé
8.1.2.6
"CHOICE" prend la valeur de l'étiquette du type auquel appartient la valeur de donnée choisie.
8.1.2.7 Les paragraphes 14.2 et 14.4 de la Rec. UT-T X.681 I ISO/CEI 8824-2 spécifient que l'étiquette dun type
défini au moyen du type ouvert "ObjectClassFieldType" (type champ de classe d'objets) est indéterminée s'il s'agit dun
champ de type, dun champ de valeur de type variable, ou dun champ densemble de valeurs de type variable. Ce type est
par conséquent défini comme un type ASN. 1, et le codage complet est alors identique à celui dune valeur du type affecté
(y compris le champ de l'identificateur).
8.1.3 Champ d
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.