ISO/IEC 8825-1:2002
(Main)Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER) — Part 1:
Information technology — ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER) — Part 1:
ISO/IEC 8825-1:2002 defines a set of Basic Encoding Rules (BER) 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 used for decoding. ISO/IEC 8825-1:2002 defines also a set of Distinguished Encoding Rules (DER) and a set of Canonical Encoding Rules (CER) both of which provide constraints on the Basic Encoding Rules (BER). The key difference between them is that DER uses the definite length form of encoding while CER uses the indefinite length form. DER is more suitable for the small encoded values, while CER is more suitable for the large ones. It is implicit in the specification of these encoding rules that they are also used for decoding.
Technologies de l'information — Règles de codage 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) — Partie 1:
L'ISO/CEI 8825-1:2002 définit un ensemble de règles de codage de base (BER, basic encoding rules) 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 de telles valeurs. Il est implicitement entendu que ces règles de codage servent également au décodage. L'ISO/CEI 8825-1:2002 définit également un ensemble de règles de codage distinctives (DER, distinguished encoding rules) et un ensemble de règles de codage canoniques (CER, canonical encoding rules) qui permettent tous deux de déclarer des contraintes sur les règles de codage de base (BER). La principale différence entre ces deux ensembles de règles est que les DER utilisent des formes de codage de longueur définie alors que les CER utilisent les formes de longueur indéfinie. Les DER sont mieux adaptées au codage des petites valeurs, et les CER à celui des grandes valeurs. Il est implicitement entendu que ces règles de codage servent également au décodage.
General Information
Relations
Buy Standard
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 8825-1
Third edition
2002-12-15
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 ASN.1:
Spécification des règles de codage de base, des règles de codage
canoniques et des règles de codage distinctives
Reference number
ISO/IEC 8825-1:2002(E)
©
ISO/IEC 2002
---------------------- Page: 1 ----------------------
ISO/IEC 8825-1:2002(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.
© ISO/IEC 2002
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 either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published by ISO in 2003
Published in Switzerland
ii © ISO/IEC 2002 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 8825-1:2002(E)
CONTENTS
Page
Introduction . vi
1 Scope . 1
2 Normative references . 1
2.1 Identical Recommendations | International Standards . 1
2.2 Additional references . 1
3 Definitions. 2
4 Abbreviations . 2
5 Notation. 2
6 Convention . 2
7 Conformance . 3
8 Basic encoding rules. 3
8.1 General rules for encoding . 3
8.1.1 Structure of an encoding . 3
8.1.2 Identifier octets . 4
8.1.3 Length octets . 5
8.1.4 Contents octets . 6
8.1.5 End-of-contents octets. 6
8.2 Encoding of a boolean value . 6
8.3 Encoding of an integer value. 7
8.4 Encoding of an enumerated value . 7
8.5 Encoding of a real value. 7
8.6 Encoding of a bitstring value . 8
8.7 Encoding of an octetstring value. 9
8.8 Encoding of a null value . 10
8.9 Encoding of a sequence value . 10
8.10 Encoding of a sequence-of value . 10
8.11 Encoding of a set value . 10
8.12 Encoding of a set-of value. 11
8.13 Encoding of a choice value . 11
8.14 Encoding of a tagged value . 11
8.15 Encoding of an open type. 12
8.16 Encoding of an instance-of value . 12
8.17 Encoding of a value of the embedded-pdv type . 12
8.18 Encoding of a value of the external type. 12
8.19 Encoding of an object identifier value . 13
8.20 Encoding of a relative object identifier value. 14
8.21 Encoding for values of the restricted character string types. 14
8.22 Encoding for values of the unrestricted character string type . 17
9 Canonical encoding rules . 17
9.1 Length forms . 17
9.2 String encoding forms . 17
9.3 Set components . 17
10 Distinguished encoding rules . 18
10.1 Length forms . 18
10.2 String encoding forms . 18
10.3 Set components . 18
11 Restrictions on BER employed by both CER and DER . 18
11.1 Boolean values . 18
11.2 Unused bits. 18
11.3 Real values . 18
© ISO/IEC 2002 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 8825-1:2002(E)
11.4 GeneralString values . 19
11.5 Set and sequence components with default value . 19
11.6 Set-of components. 19
11.7 GeneralizedTime. 19
11.8 UTCTime . 20
11.8.4 Examples of valid representations. 20
11.8.5 Examples of invalid representations. 20
12 Use of BER, CER and DER in transfer syntax definition . 20
Annex A – Example of encodings . 22
A.1 ASN.1 description of the record structure. 22
A.2 ASN.1 description of a record value . 22
A.3 Representation of this record value. 22
Annex B – Assignment of object identifier values . 24
Annex C – Illustration of real value encoding . 25
iv © ISO/IEC 2002 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 8825-1:2002(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. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. 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.
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.
ISO/IEC 8825-1 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 Rec.X.690.
This third edition cancels and replaces the second edition (ISO/IEC 8825-1:1998), which has been technically
revised. It also incorporates the Amendment ISO/IEC 8825-1:1998/Amd.1:2000 and the Technical Corrigenda
ISO/IEC 8825-1:1998/Cor.1:1999 and ISO/IEC 8825-1:1998/Cor.2:2002.
ISO/IEC 8825 consists of the following parts, under the general title Information technology — ASN.1
encoding rules:
Part 1: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished
Encoding Rules (DER)
Part 2: Specification of Packed Encoding Rules (PER)
Part 3: Specification of Encoding Control Notation (ECN)
Part 4: XML Encoding Rules (XER)
Part 5: Mapping W3C XML schema definitions into ASN.1
© ISO/IEC 2002 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 8825-1:2002(E)
Introduction
ITU-T Rec. X.680 | ISO/IEC 8824-1, ITU-T Rec. X.681 | ISO/IEC 8824-2, ITU-T Rec. X.682 | ISO/IEC 8824-3,
ITU-T Rec. X.683 | ISO/IEC 8824-4 (Abstract Syntax Notation One or ASN.1) together specify a notation for the
definition of abstract syntaxes, enabling application standards to define the types of information they need to transfer. It
also specifies a notation for the specification of values of a defined type.
This Recommendation | 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.1 notation. This Recommendation | International Standard defines three sets of encoding rules, called basic
encoding rules, canonical encoding rules and distinguished encoding rules. Whereas the basic encoding rules give 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.
Annex A gives an example of the application of the basic encoding rules. It does not form an integral part of this
Recommendation | 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 | International Standard.
Annex C gives examples of applying the basic encoding rules for encoding reals. It does not form an integral part of this
Recommendation | International Standard.
vi © ISO/IEC 2002 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 8825-1:2002 (E)
INTERNATIONAL STANDARD
ISO/IEC 8825-1 : 1995 (E)
ITU-T Rec. X.690 (1994 E)
ITU-T RECOMMENDATION
Information technology – ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER),
Canonical Encoding Rules (CER)
and Distinguished Encoding Rules (DER)
1 Scope
This Recommendation | 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 |
ISO/IEC 8824-1, ITU-T Rec. X.681 | ISO/IEC 8824-2, ITU-T Rec. X.682 | ISO/IEC 8824-3, and ITU-T Rec. X.683 |
ISO/IEC 8824-4, 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.
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.
2.1 Identical Recommendations | International Standards
– ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-1:2002, Information technology – Abstract Syntax
Notation One (ASN.1): Specification of basic notation.
– ITU-T Recommendation X.681 (2002) | ISO/IEC 8824-2:2002, Information technology – Abstract Syntax
Notation One (ASN.1): Information object specification.
– ITU-T Recommendation X.682 (2002) | ISO/IEC 8824-3:2002, Information technology – Abstract Syntax
Notation One (ASN.1): Constraint specification.
– ITU-T Recommendation X.683 (2002) | ISO/IEC 8824-4:2002, Information technology – Abstract Syntax
Notation One (ASN.1): Parameterization of ASN.1 specifications.
2.2 Additional references
– ISO International Register of Coded Character Sets to be used with Escape Sequences.
– ISO/IEC 2022:1994, Information technology – Character code structure and extension techniques.
– ISO 2375:1985, Data processing – Procedure for registration of escape sequences.
– ISO 6093:1985, Information processing – Representation of numerical values in character strings for
information interchange.
– ISO/IEC 6429:1992, Information technology – Control functions for coded character sets.
– ISO/IEC 10646-1:2000, Information technology – Universal Multiple-Octet Coded Character Set (UCS)
– Part 1: Architecture and Basic Multilingual Plane.
ITU-T Rec. X.690 (07/2002) 1
---------------------- Page: 7 ----------------------
ISO/IEC 8825-1:2002 (E)
3 Definitions
For the purposes of this Recommendation | International Standard, the definitions of ITU-T Rec. X.200 | ISO/IEC
7498-1 and ITU-T Rec. X.680 | ISO/IEC 8824-1 and the following definitions apply.
3.1 canonical encoding: A complete encoding of an abstract value obtained by the application of encoding rules
that have no implementation-dependent options. Such rules result in the definition of a 1-1 mapping between
unambiguous and unique encodings and values in the abstract syntax.
3.2 constructed encoding: A data value encoding in which the contents octets are the complete encoding of one
or more data values.
3.3 contents octets: That part of a data value encoding which represents a particular value, to distinguish it from
other values of the same type.
3.4 data value: Information specified as the value of a type; the type and the value are defined using ASN.1.
3.5 dynamic conformance: A statement of the requirement for an implementation to adhere to the prescribed
behaviour in an instance of communication.
3.6 encoding (of a data value): The complete sequence of octets used to represent the data value.
3.7 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.
3.8 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 | International Standard, as other Recommendations | International Standards use it to mean "data value".
3.9 length octets: Part of a data value encoding following the identifier octets which is used to determine the end
of the encoding.
3.10 primitive encoding: A data value encoding in which the contents octets directly represent the value.
3.11 receiver: An implementation decoding the octets produced by a sender, in order to identify the data value
which was encoded.
3.12 sender: An implementation encoding a data value for transfer.
3.13 static conformance: A statement of the requirement for support by an implementation of a valid set of
features from among the defined features.
3.14 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
For the purposes of this Recommendatrion | International Standard, the following abbreviations apply:
ASN.1 Abstract Syntax Notation One
BER Basic Encoding Rules of ASN.1
CER Canonical Encoding Rules of ASN.1
DER Distinguished Encoding Rules of ASN.1
ULA Upper Layer Architecture
5 Notation
This Recommendation | International Standard references the notation defined by ITU-T Rec. X.680 | ISO/IEC 8824-1.
6 Convention
6.1 This Recommendation | International Standard specifies the value of each octet in an encoding by use of the
terms "most significant bit" and "least significant bit".
2 ITU-T Rec. X.690 (07/2002)
---------------------- Page: 8 ----------------------
ISO/IEC 8825-1:2002 (E)
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.
6.2 For the purposes of this Recommendation | 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".
6.3 For the purpose of this Recommendation | 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, S , is
1
greater than another, S , if and only if either:
2
a) S and S have identical octets in every position up to and including the final octet in S , but S is longer;
1 2 2 1
or
b) S and S have different octets in one or more positions, and in the first such position, the octet in S is
1 2 1
n–1
greater than that in S , considering the octets as unsigned binary numbers whose bit n has weight 2 .
2
7 Conformance
7.1 Dynamic conformance is specified by clauses 8 to 12 inclusive.
7.2 Static conformance is specified by those standards which specify the application of one or more of these
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.
7.4 No alternative encodings are permitted by the Canonical Encoding Rules or Distinguished Encoding Rules.
8 Basic encoding rules
8.1 General rules for encoding
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);
c) contents octets (see 8.1.4);
d) end-of-contents octets (see 8.1.5).
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).
8.1.1.3 Figure 1 illustrates the structure of an encoding (primitive or constructed). Figure 2 illustrates an alternative
constructed encoding.
Identifier octets Length octets Contents octets
The number of octets
in the contents octets
(see 8.1.3.2) X.690_F1
Figure 1 – Structure of an encoding
ITU-T Rec. X.690 (07/2002) 3
---------------------- Page: 9 ----------------------
ISO/IEC 8825-1:2002 (E)
Identifier octets Length octets Contents octets End-of-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)
X.690_F2
Figure 2 – An alternative constructed encoding
8.1.1.4 Encodings specified in this Recommendation | International Standard are not affected by either the ASN.1
subtype notation or the ASN.1 type extensibility notation.
NOTE – This means that all constraint notation is ignored when determining encodings, and all extensibility markers in CHOICE,
SEQUENCE and SET are ignored, with the extensions treated as if they were in the extension root of the type.
8.1.2 Identifier octets
8.1.2.1 The identifier octets shall encode the ASN.1 tag (class and number) of the type of the data value.
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
Class Bit 8 Bit 7
Universal 0 0
Application 0 1
Context-specific 1 0
Private 1 1
8.1.2.3 Figure 3 illustrates the form of an identifier octet for a type with a tag whose number is in the range zero
to 30 (inclusive).
Identifier octet
87 65 4 3 2 1
Bits
Tag number
Class P/C
0 = Primitive
1 = Constructed
X.690_F3
Figure 3 – Identifier octet (low tag number)
8.1.2.4 For tags with a number greater than or equal to 31, 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 11111 .
2
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;
4 ITU-T Rec. X.690 (07/2002)
---------------------- Page: 10 ----------------------
ISO/IEC 8825-1:2002 (E)
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
1 1 111 1 1 1 0
Class P/C
+++ +
X.690_F4
= Number of tag
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 subclauses specify whether the encoding is primitive or constructed for each type.
8.1.2.6 ITU-T Rec. X.680 | ISO/IEC 8824-1 specifies that the tag of a type defined using the CHOICE keyword takes
the value of the tag o
...
NORME ISO/CEI
INTERNATIONALE 8825-1
Troisième édition
2002-12-15
Technologies de l'information — Règles
de codage 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:2002(F)
©
ISO/CEI 2002
---------------------- Page: 1 ----------------------
ISO/CEI 8825-1:2002(F)
PDF – Exonération de responsabilité
Le présent fichier PDF peut contenir des polices de caractères intégrées. Conformément aux conditions de licence d'Adobe, ce fichier
peut être imprimé ou visualisé, mais ne doit pas être modifié à moins que l'ordinateur employé à cet effet ne bénéficie d'une licence
autorisant l'utilisation de ces polices et que celles-ci y soient installées. Lors du téléchargement de ce fichier, les parties concernées
acceptent de fait la responsabilité de ne pas enfreindre les conditions de licence d'Adobe. Le Secrétariat central de l'ISO décline toute
responsabilité en la matière.
Adobe est une marque déposée d'Adobe Systems Incorporated.
Les détails relatifs aux produits logiciels utilisés pour la création du présent fichier PDF sont disponibles dans la rubrique General Info
du fichier; les paramètres de création PDF ont été optimisés pour l'impression. Toutes les mesures ont été prises pour garantir
l'exploitation de ce fichier par les comités membres de l'ISO. Dans le cas peu probable où surviendrait un problème d'utilisation,
veuillez en informer le Secrétariat central à l'adresse donnée ci-dessous.
© ISO/CEI 2002
Droits de reproduction réservés. Sauf prescription différente, aucune partie de cette publication ne peut être reproduite ni utilisée sous
quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et les microfilms, sans l'accord écrit
de l'ISO à l'adresse ci-après ou du comité membre de l'ISO dans le pays du demandeur.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax. + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Version française parue en 2006
Publié en Suisse
ii © ISO/CEI 2002 – Tous droits réservés
---------------------- Page: 2 ----------------------
ISO/CEI 8825-1:2002(F)
TABLE DES MATIÈRES
Page
1 Domaine d'application . 1
2 Références normatives. 1
2.1 Recommandations | Normes internationales identiques. 1
2.2 Autres références . 1
3 Définitions . 2
4 Abréviations. 2
5 Notation . 2
6 Conventions . 3
7 Conformité. 3
8 Règles de codage de base . 3
8.1 Règles générales de codage. 3
8.2 Codage d'une valeur booléenne (boolean value) . 6
8.3 Codage d'une valeur entière (integer value). 7
8.4 Codage d'une valeur énumérée (enumerated value). 7
8.5 Codage d'une valeur réelle (real value). 7
8.6 Codage d'une valeur de type chaîne binaire (bitstring value). 9
8.7 Codage d'une valeur de type chaîne d'octets (octetstring value) . 10
8.8 Codage d'une valeur du type néant (null value) . 10
8.9 Codage d'une valeur de type séquence (sequence value). 10
8.10 Codage d'une valeur de type séquence-de (sequence-of value). 11
8.11 Codage d'une valeur de type ensemble (set value). 11
8.12 Codage d'une valeur de type ensemble-de (set-of value). 11
8.13 Codage d'une valeur de type choix (choice value). 11
8.14 Codage d'une valeur étiquetée (tagged value) . 11
8.15 Codage d'une valeur de type ouvert (open type value). 12
8.16 Codage d'une valeur de type instance-de (instance-of value). 12
8.17 Codage d'une valeur de type valeur de donnée de présentation enchâssée
(embedded-pdv value). 13
8.18 Codage d'une valeur de type externe (external value) . 13
8.19 Codage d'une valeur d'identificateur d'objet (object identifier value). 14
8.20 Codage d'une valeur d'identificateur d'objet relatif . 15
8.21 Codage d'une valeur de type chaîne de caractères à alphabet restreint (restricted character
string type) . 15
8.22 Codage d'une valeur de type chaîne de caractères à alphabet non restreint (unrestricted
character string value). 17
9 Règles de codage canoniques. 18
9.1 Formes de longueur . 18
9.2 Formes de codage des chaînes . 18
9.3 Eléments d'ensemble. 18
10 Règles de codage distinctives. 18
10.1 Formes de longueur . 19
10.2 Formes de codage des chaînes . 19
10.3 Eléments d'ensemble. 19
11 Restrictions aux règles de codage de base applicables aux règles de codage canoniques et
distinctives . 19
11.1 Valeurs booléennes. 19
11.2 Bits inutilisés . 19
11.3 Valeurs réelles. 19
11.4 Valeurs du type chaîne générale. 20
11.5 Composants d'ensemble et composants de séquence avec valeur par défaut . 20
11.6 Composants d'ensemble-de . 20
© ISO/CEI 2002 – Tous droits réservés iii
---------------------- Page: 3 ----------------------
ISO/CEI 8825-1:2002(F)
Page
11.7 Temps généralisé . 20
11.8 Temps UTC . 20
12 Utilisation des règles de codage canoniques, distinctives et de base dans une définition de syntaxe de
transfert . 21
Annexe A – Exemples de codages. 22
A.1 Description ASN.1 de la structure de l'enregistrement . 22
A.2 Description ASN.1 d'une valeur d'enregistrement . 22
A.3 Représentation de la valeur de cet enregistrement. 22
Annexe B – Affectation des valeurs d'identificateur d'objet . 24
Annexe C – Illustration du codage d'une valeur réelle . 25
iv © ISO/CEI 2002– Tous droits réservés
---------------------- Page: 4 ----------------------
ISO/CEI 8825-1:2002(F)
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CEI (Commission électrotechnique internationale)
forment le système spécialisé de la normalisation mondiale. Les organismes nationaux membres de l'ISO ou
de la CEI participent au développement de Normes internationales par l'intermédiaire des comités techniques
créés par l'organisation concernée afin de s'occuper des domaines particuliers de l'activité technique. Les
comités techniques de l'ISO et de la CEI collaborent dans des domaines d'intérêt commun. D'autres
organisations internationales, gouvernementales et non gouvernementales, en liaison avec l'ISO et la CEI
participent également aux travaux. Dans le domaine des technologies de l'information, l'ISO et la CEI ont créé
un comité technique mixte, l'ISO/CEI JTC 1.
Les Normes internationales sont rédigées conformément aux règles données dans les Directives ISO/CEI,
Partie 2.
La tâche principale du comité technique mixte est d'élaborer les Normes internationales. Les projets de
Normes internationales adoptés par le comité technique mixte sont soumis aux organismes nationaux pour
vote. Leur publication comme Normes internationales requiert l'approbation de 75 % au moins des
organismes nationaux votants.
L'attention est appelée sur le fait que certains des éléments du présent document peuvent faire l'objet de
droits de propriété intellectuelle ou de droits analogues. L'ISO et la CEI ne sauraient être tenues pour
responsables de ne pas avoir identifié de tels droits de propriété et averti de leur existence.
L'ISO/CEI 8825-1 a été élaborée par le comité technique mixte ISO/CEI JTC 1, Technologies de l’information,
sous-comité SC 6, Téléinformatique, en collaboration avec l’UIT-T. Le texte identique est publié en tant que
Rec. UIT-T X.690.
Cette troisième édition annule et remplace la deuxième édition (ISO/CEI 8825-1:1998 ), qui a fait l'objet d'une
révision technique. Elle incorpore aussi l’Amendement ISO/CEI 8825-1:1998/Amd.1:2000 ainsi que les
Rectificatifs techniques ISO/CEI 8825-1:1998/Cor.1:1999 et ISO/CEI 8825-1:1998/Cor.2:2002.
L'ISO/CEI 8825 comprend les parties suivantes, présentées sous le titre général Technologies de
l'information — Règles de codage ASN.1:
⎯ 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 compact (PER)
⎯ Partie 3: Spécification de la notation de contrôle de codage (ECN)
⎯ Partie 4: Règles de codage XML (XER)
⎯ Partie 5: Mappage en ASN.1 des définitions de schéma XML du W3C
© ISO/CEI 2002 – Tous droits réservés v
---------------------- Page: 5 ----------------------
ISO/CEI 8825-1:2002(F)
Introduction
Les Recommandations UIT-T X.680 | ISO/CEI 8824-1, UIT-T X.681 | ISO/CEI 8824-2, UIT-T X.682 |
ISO/CEI 8824-3, UIT-T X.683 | ISO/CEI 8824-4 (Syntaxe abstraite numéro un ou ASN.1) spécifient une notation de
définition de syntaxes abstraites, permettant aux normes d'application de définir les types d'informations qui doivent
être transférées. Elles définissent également une notation pour la spécification des valeurs de chaque type défini.
La présente Recommandation | 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. Il 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 | 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 imbriqué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'aient 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 | Norme internationale.
L'Annexe B résume les affectations de valeurs d'identificateurs d'objets définis dans la présente Recommandation |
Norme internationale. Elle ne fait pas partie intégrante de la présente Recommandation | 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 | Norme internationale.
vi © ISO/CEI 2002 – Tous droits réservés
---------------------- Page: 6 ----------------------
ISO/CEI 8825-1:2002 (F)
NORME INTERNATIONALE
RECOMMANDATION UIT
Technologies de l'information – Règles de codage ASN.1: spécification
des règles de codage de base, des règles de codage canoniques
et des règles de codage distinctives
1 Domaine d'application
La présente Recommandation | 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 la Rec. UIT-T X.680 | ISO/CEI 8824-1, la Rec. UIT-T X.681 | ISO/CEI 8824-2, la Rec. UIT-T X.682 |
ISO/CEI 8824-3, et la Rec. UIT-T X.683 | ISO/CEI 8824-4, appelées collectivement syntaxe abstraite numéro un ou
ASN.1. Ces règles de codage de base s'appliquent également au décodage d'une telle syntaxe de transfert pour identifier
les valeurs de données transférées. La présente Recommandation | Norme internationale 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.
2 Références normatives
Les Recommandations et 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 | 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 | 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 CEI et de l'ISO possèdent le registre des Normes internationales en vigueur. Le Bureau de
la normalisation des télécommunications de l'UIT tient à jour une liste des Recommandations de l'UIT-T en vigueur.
2.1 Recommandations | Normes internationales identiques
– Recommandation UIT-T X.680 (2002) | ISO/CEI 8824-1:2002, Technologies de l'information – Notation
de syntaxe abstraite numéro un: spécification de la notation de base.
– Recommandation UIT-T X.681 (2002) | ISO/CEI 8824-2:2002, Technologies de l'information – Notation
de syntaxe abstraite numéro un: spécification des objets informationnels.
– Recommandation UIT-T X.682 (2002) | ISO/CEI 8824-3:2002, Technologies de l'information – Notation
de syntaxe abstraite numéro un: spécification des contraintes.
– Recommandation UIT-T X.683 (2002) | ISO/CEI 8824-4:2002, Technologies de l'information – Notation
de syntaxe abstraite numéro un: paramétrage des spécifications de la notation de syntaxe abstraite
numéro un.
2.2 Autres références
– ISO Registre international des jeux de caractères codés à utiliser avec une séquence d'échappement.
– ISO/CEI 2022:1994, Technologies de l'information – Structure de code de caractères et techniques
d'extension.
– ISO 2375:1985, Traitement de l'information – Procédure pour l'enregistrement des séquences
d'échappement.
– ISO 6093:1985, Traitement de l'information – Représentation des valeurs numériques dans les chaînes
de caractères pour l'échange d'information.
– ISO/CEI 6429:1992, Technologies de l'information – Fonctions de commande pour les jeux de
caractères codés.
– ISO/CEI 10646-1:2000, Technologies de l'information – Jeu universel de caractères codés à plusieurs
octets – Partie 1: Architecture et table multilingue.
Rec. UIT-T X.690 (07/2002) 1
---------------------- Page: 7 ----------------------
ISO/CEI 8825-1:2002 (F)
3 Définitions
Pour les besoins de la présente Recommandation | Norme internationale, les définitions données par la
Recommandation UIT-T X.200 | ISO/CEI 7498-1 et par la Rec. UIT-T X.680 | ISO/CEI 8824-1 sont utilisées et les
termes suivants sont définis.
3.1 codage canonique: codage complet d'une valeur abstraite obtenue par application de règles de codage ne
comportant pas d'options dépendant de l'application. De telles règles aboutissent à la définition d'un mappage 1-1 entre
les codages et les valeurs ambigus et uniques de la syntaxe abstraite.
3.2 codage structuré: codage d'une valeur de donnée dans lequel le champ de contenu est le codage complet
d'une ou plusieurs autres valeurs de donnée.
3.3 champ de contenu: partie du codage d'une valeur de donnée représentant une valeur particulière qui la
distingue des autres valeurs du même type.
3.4 valeur de donnée: information spécifiée comme valeur d'un type, le type et la valeur étant définis en ASN.1.
3.5 conformité dynamique: déclaration de la nécessité pour une implémentation de se conformer au
comportement prescrit au cours d'une instance de communication.
3.6 codage (d'une valeur de donnée): séquence d'octets complète utilisée pour représenter la valeur d'une
donnée.
3.7 champ de fin de contenu: partie du codage d'une valeur de donnée placée à la fin et servant à indiquer la fin
du codage.
NOTE – Les codages ne nécessitent pas tous des octets de fin de contenu.
3.8 champ d'identification: partie du codage d'une valeur de donnée servant à identifier le type de la valeur.
NOTE – Certaines Recommandations UIT-T utilisent l'expression "élément de donnée" pour désigner cette séquence; cette
expression n'est pas utilisée dans la présente Recommandation | Norme internationale, car d'autres Recommandations | Normes
internationales l'utilisent au sens de "valeur de donnée".
3.9 champ de longueur: partie du codage d'une valeur de donnée placée à la suite du champ d'identification, et
servant à déterminer la longueur du codage.
3.10 codage primitif: codage d'une valeur de donnée dans lequel le champ de contenu représente directement la
valeur.
3.11 destinataire: implémentation décodant la séquence constituée par un expéditeur pour déterminer la valeur de
donnée qui a été codée.
3.12 expéditeur: implémentation codant une valeur de donnée pour la transférer.
3.13 conformité statique: déclaration de la nécessité pour une réalisation de présenter un ensemble valide de
caractéristiques, parmi les caractéristiques définies.
3.14 bit de fin à 0: bit à 0 en dernière position d'une valeur de chaîne binaire.
NOTE – Le 0 d'une valeur de chaîne binaire constituée d'un bit unique de valeur nulle est un bit de fin à 0. Sa suppression
transforme la chaîne en une chaîne vide.
4 Abréviations
Pour les besoins de la présente Recommandation | Norme internationale, les abréviations suivantes sont utilisées:
ASN.1 Notation de syntaxe abstraite numéro un (abstract syntax notation one)
BER Règles de codage de base d'ASN.1 (basic encoding rules of ASN.1)
CER Règles de codage canoniques d'ASN.1 (canonical encoding rules of ASN.1)
DER Règles de codage distinctives d'ASN.1 (distinguished encoding rules of ASN.1)
ULA Architecture des couches supérieures (upper layer architecture)
5 Notation
La présente Recommandation | Norme internationale"reprend la notation définie par la Rec. UIT-T X.680 |
ISO/CEI 8824-1.
2 Rec. UIT-T X.690 (07/2002)
---------------------- Page: 8 ----------------------
ISO/CEI 8825-1:2002 (F)
6 Conventions
6.1 La présente Recommandation | Norme internationale spécifie les bits de chaque octet codé en utilisant les
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 | Norme internationale, les bits d'un octet sont numérotés de 8 à 1, le
bit 8 étant "le plus significatif" et le bit 1 "le moins significatif".
6.3 Il est possible aux fins de la présente Recommandation | 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 S est supérieure à une chaîne S si et seulement si:
1 2
a) soit S et S ont tous leurs octets de même rang égaux jusqu'à l'octet final de S inclusivement, mais S
1 2 2 1
est plus longue que S
2
;
b) soit S et S diffèrent par un ou plusieurs octets de même rang, l'octet de S de la première position pour
1 2 1
laquelle les chaînes diffèrent étant supérieur à son homologue de S , les octets étant considérés comme
2
n–1
des nombres binaires non signés dont le bit n est de poids 2 .
7 Conformité
7.1 La conformité dynamique est spécifiée par les § 8 à 12 inclusivement.
7.2 La conformité statique est définie par les normes qui spécifient l'application d'une ou plusieurs de ces règles
de codage.
7.3 Les règles de base autorisent des variantes de codage sur option de l'expéditeur. Les destinataires déclarant
être 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 d'une valeur de donnée comporte quatre composantes apparaissant dans l'ordre suivant:
a) champ d'identification (voir § 8.1.2);
b) champ de longueur (voir § 8.1.3);
c) champ de contenu (voir § 8.1.4);
d) champ de fin de contenu (voir § 8.1.5).
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).
8.1.1.3 La Figure 1 présente la structure d'un codage (primitif ou structuré). La Figure 2 présente une variante de
codage structuré.
Figure 1 – Structure d'un codage
Rec. UIT-T X.690 (07/2002) 3
---------------------- Page: 9 ----------------------
ISO/CEI 8825-1:2002 (F)
Figure 2 – Variante de codage structuré
8.1.1.4 Les codages spécifiés dans la présente Recommandation | Norme internationale ne sont pas affectés par la
notation de sous-type ASN.1 ni par la notation d'extension de type ASN.1.
NOTE – Il résulte de ce qui précède qu'il n'est pas tenu compte de la notation de contrainte dans la formulation des codages, et
que tous les marqueurs d'extensibilité des champs CHOICE, SEQUENCE et SET sont ignorés, les extensions étant traitées comme si
elles figuraient dans la racine d'extension du type.
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ée.
8.1.2.2 Pour les étiquettes ayant un numéro entre 0 et 30 (inclusivement), le champ d'identification comprendra un
seul octet codé comme suit:
a) les bits 8 et 7 représentent la classe de l'étiquette conformément au Tableau 1;
b) le bit 6 prend la valeur 0 ou 1, conformément aux règles du § 8.1.2.5;
c) les bits 5 à 1 représentent la valeur binaire du numéro de l'étiquette, le bit 5 étant le bit le plus
significatif.
Tableau 1 – Codage de la classe de l'étiquette
Classe Bit 8 Bit 7
Universelle 0 0
Propre à une application 0 1
Spécifique au contexte 1 0
A usage privé 1 1
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 0
et 30.
Figure 3 – Champ d'identification à 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é d'un octet de tête, suivi d'un
ou de plusieurs autres octets.
8.1.2.4.1 L'octet de tête est codé comme suit:
a) les bits 8 et 7 représentent la classe de l'étiquette conformément au Tableau 1;
b) le bit 6 prend la valeur 0 ou 1, conformément aux règles du § 8.1.2.5;
c) les bits 5 à 1 reçoivent la valeur 11111 .
2
4 Rec. UIT-T X.690 (07/2002)
---------------------- Page: 10 ----------------------
ISO/CEI 8825-1:2002 (F)
8.1.2.4.2 Les octets suivants représenteront le numéro de l'étiquette codé comme suit:
a) le bit 8 de chaque octet prendra la valeur 1, sauf s'il s'agit du dernier octet de l'identificateur;
b) les bits 7 à 1 du premier de ces octets, suivis des bits 7 à 1 du deuxième de ces octets, suivis à leur tour
des bits 7 à 1 de chacun des octets suivants, jusques et y compris le dernier octet de l'identificateur,
constitueront 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;
c) les bits 7 à 1 du premier octet ne doivent pas tous être à zéro.
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.
Figure 4 – Champ d'identification à plusieurs octets (étiquette de numéro élevé)
8.1.2.5 Le bit 6 sera mis à 0 si le codage est de type primitif, et à 1 s'il est de type structuré.
NOTE – Les paragraphes suivants précisent pour chaque type si le codage est primitif ou structuré.
8.1.2.6 La Rec. UIT-T X.680 | ISO/CEI 8824-1 spécifie que l'étiquette d'un type défini au moyen du mot clé 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. UIT-T X.681 | ISO/CEI 8824-2 spécifient que l'étiquette d'un type
défini au moyen du type ouvert "ObjectClassFieldType" (type champ de classe d'objets) est indéterminée s'il s'agit d'un
champ de type, d'un champ de valeur de type variable, ou d'un champ d'ensemble de vale
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.