ISO 8825:1987
(Main)Information processing systems — Open Systems Interconnection — Specification of Basic Encoding Rules for Abstract Syntax Notation ONE (ASN.1)
Information processing systems — Open Systems Interconnection — Specification of Basic Encoding Rules for Abstract Syntax Notation ONE (ASN.1)
Systèmes de traitement de l'information — Interconnexion de systèmes ouverts — Spécification des règles de codage de base pour la notation de syntaxe abstraite numéro 1 (ASN.1)
General Information
Relations
Buy Standard
Standards Content (Sample)
IS0
INTERNATIONAL STANDARD
8825
First edition
1987-1 1-15
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION
ORGANISATION INTERNATIONALE DE NORMALISATION
MEXAYHAPOfiHAR OPrAHM3AuMR il0 CTAHAAPTM3AUMM
Information processing systems - Open Systems
Interconnection - Specification of Basic Encoding
Rules for Abstract Syntax Notation One (ASN.1)
Reference number
IS0 8825 : 1987 (E)
---------------------- Page: 1 ----------------------
IS0 8825:1987(E)
IS0 (the International Organization for Standardization) is a worldwide federation of
national standards bodies (IS0 member bodies). The work of preparing International
Standards is normally carried out through IS0 technical committees. Each member
body interested in a subject for which a technical committee has been established has
the right to be represented on that committee. International organizations, govern-
mental and non-governmental, in liaison with ISO, also take part in the work.
Draft International Standards adopted by the technical committees are circulated to
the member bodies for approval before their acceptance as International Standards by
the IS0 Council. They are approved in accordance with IS0 procedures requiring at
least 75 YO approval by the member bodies voting.
International Standard IS0 8825 was prepared by Technical Committee ISO/TC 97,
fnformation processing systems.
Users should note that all International Standards undergo revision from time to time
and that any reference made herein to any other International Standard implies its
latest edition, unless otherwise stated.
@ International Organization for Standardization, 1987 0
Printed in Switzerland
ii
---------------------- Page: 2 ----------------------
IS0 8825:1987(E)
Contents
O Introduction . I
1 Scope and field of application .
1
2 References . 1
3 Definitions . 2
....................................
4 Abbreviations and notation 2
..........................................
4.1 Abbreviations 2
..............................................
4.2 Notation 2
5 Conformance . 2
6 General rules for encoding . 2
6.1 Structure of an encoding . 2
........................................
6.2 Identifier octets 3
..........................................
6.3 Lengthoctets 4
6.4 Contentsoctets . 6
6.5 End-of-contents octets . 6
7 Encoding of a boolean value
...................................
6
8 Encoding of an integer value . 6
9 Encoding of a bitstring value .
6
10 Encoding of an octetstring value
............................ 7
I1 Encoding of a null value . 8
12 Encodingofasequencevalue . 8
13 Encoding of a sequence-of value . 8
14 Encodingofasetvalue . 8
15 Encoding of a set-of value .
8
16 Encoding of a choice value
.................................. 8
I7 Encoding of a selection value . 9
18 Encoding of a tagged value
................................... 9
19 Encoding of a value of the ANY type . 9
20 Encoding of an object identifier value . 9
21 Encoding for values of the character string types . 10
22 Encoding for values of the ASN.l useful types
................ ... 11
23 Use in transfer syntax definition . 12
iii
---------------------- Page: 3 ----------------------
Annexes
A Exampleofencodings . 13
A.l ASN.l description of the record structure . 13
A.2 ASN.l description of a record value . 13
A.3 Representation of this record value . 14
B Assignment of object identifier values . 16
Figures
1 Structure of an encoding . 3
2 An alternative constructed encoding . 3
<
3 Identifier octet (low tag number) . 5
4 Identifier octets (high tag number) . 5
Tables
1 Encoding of class of tag . 3
2 Use of escape sequences . 11
iv
---------------------- Page: 4 ----------------------
~- ~-
IS0 8825 : 1987 (E)
I NTE R NAT1 O N AL STAN DAR D
Information processing systems - Open Systems
Interconnection - Specification of Basic Encoding Rules
for Abstract Syntax Notation One (ASN.1)
1 Scope and field of application
O Introduction
IS0 8824 (Specification of Abstract Syntax Notation This International Standard specifies a set of basic
One) specifies a notation for the definition of encoding rules that may be used to derive the
abstract syntaxes, enabling application layer specification of a transfer syntax for values of types
standards to define the types of information they defined using the notation specified in IS0 8824.
need to transfer using the presentation service. It These basic encoding rules are also to be applied
also specifies a notation for the specification of for decoding such a transfer syntax in order to
values of a defined type. identify the data values being transferred.
These basic encoding rules are used at the time of
This International Standard defines a set of
encoding rules that may be applied, to values of communication (by the presentation service
types defined using the notation specified in IS0 provider when required by a presentation context).
8824. Application of these encoding rules
produces a transfer syntax for such values. It is
implicit in the specification of these encoding rules 2 References
that they are also to be used for decoding.
IS0 2022, Information processing - IS0 7-bit and
There may be more than one set of encoding rules &bit coded character sets - Code extension
that can be applied to values of types that are techniques.
defined using the notation of ISû 8824. This
International Standard defines one set of encoding IS0 2375, Data processing - Procedure for
rules, called basic encoding rules. registration of escape sequences.
This International Standard is technically aligned IS0 7498, lnformation processing systems - Open
with the relevant parts of CCITT Recommendation Systenis Interconnection - Basic Reference Model.
X.409 (1984).
IS0 8823, Information processing systems - Open
Annex A gives examples of the application of the Systems Interconnection - Connection-oriented
encoding rules. It is not part of this International presentation protocol specification.
Standard.
IS0 8824, Information processing systems - Open
Annex B summarises the assignment of object Systenis Interconnection - Specification of Abstract
identifier values made in this International Syntax Notation One (ASN. 1).
Standard and is not pari of this International
Standard, CCITT X.409 (1984), Message handling systems:
presentation transfer syntax and notation.
1
---------------------- Page: 5 ----------------------
IS0 8825:1987(E)
3 Definitions 4 Abbreviations and notation
The definitions of IS0 8824 are used in this 4.1 Abbreviations
International Standard.
ASN.l Abstract Syntax Notation One
3.1 dynamic conformance: A statement of the
requirement for an implementation to adhere to the
4.2 Notation
behaviour prescribed by this International Standard
in an instance of communication. 4.2.1 This International Standard references the
notation defined by IS0 8824.
3.2 static conformance: A statement of the
requirement for support by an implementation of a
4.2.2 This International Standard specifies the value
valid set of features from among those defined by of each octet in an encoding b
this International Standard. “most significant bit” and “least
NOTE - Lower layer standards use the same notation to
3.3 data value: Information specified as the
define the order of bit transmission on a serlal line, or the
value of a type; the type and the value are defined
assignment of bits to parallel channels.
using ASN.l.
4.2.3 For the purposes of this International
3.4 encoding (of a data value): The complete
E
Standard only, the bits of an octet are numbered
sequence of octets used to represent the data
from 8 to 1, where bit 8 is the “most significant bit”,
value.
and bit 1 is the “least significant bit”.
NOTE - Some CCITT Recommendations use the term “data
element” for this sequence of octets, but the term is not used in
this International Standard, as other International Standards use 5 Conformance
it to mean “data value”.
5.1 Dynamic conformance is specified by clause 6
3.5 identifier octets: Part of a data value
to clause 21 inclusive.
encoding which is used to identify the type of the
value.
5.2 Static conformance is specified by those
standards which specify the application of these
3.6 length octets: Part of a data value
basic encoding rules.
encoding following the identifier octets which is
used to determine the end of the encoding.
5.3 Alternative encodings are permitted by this
International Standard as a sender’s option.
3.7 end-of-contents octets: Part of a data value
Conforming receivers shall support all alternatives.
encoding, occurring at its end, which is used to
determine the end of the encoding. NOTE - Examples of such aiternative encodings appear in
6.3.2 b) and table 2.
NOTE - Not ail encodings require end-of-contents octets.
3.8 contents octets: That part of a data value 6 General rules for encoding
encoding which represents a particular value, to
6.1 Structure of an encoding
distinguish it from other values of the same type.
3.9 primitive encoding: A data value encoding 6.1.1 The encoding of a data value shall consist of
in which the contents octets directly represent the four components which shall appear in the
value. following order:
3.10 constructed encoding: A data value a) identifier octets (see 6.2);
encoding in which the contents octets are the
complete encoding of one or more other data b) length octets (see 6.3);
values.
c) contents octets (see 6.4);
3.11 sender: An implementation encoding a
data value for transfer. d) end-of-contents octets (see 6.5).
3.12 receiver: An implementation decoding the
octets produced by a sender, in order to identify
the datavalue which was encoded.
2
---------------------- Page: 6 ----------------------
IS0 8825:198?(E)
il I I
IDENTIFIER LENGTH OCTETS CONTENTS OCTETS
OCTETS
T
The number of octets
inthe contents octets
(see 6.3.2)
Figure 1 - Structure of an encoding
I I I I 1
IDENTIFIER LENGTH OCTETS CONTENTS OCTETS END OF
CONTENTS OCTETS
OCTETS
Figure 2 - An alternative constructed encoding
6.1.2 The end-of-contents octets shall not be
present unless the value of the length octets
Table 1 - Encoding of class of tag
requires them to be present (see 6.3).
6.1.3 Figure 1 illustrates the structure of an Bit 8 Bit 7
Class
encoding (primitive or constructed). Figure 2
Universal
illustrates an alternative constructed encoding.
Application
6.2 Identifier octets
Context -specific
Private
6.2.1 The identifier octets shall encode the ASN.l
tag (class and number) of the type of the data
value.
6.2.2 For tags with a number ranging from zero to b) bit 6 shall be a zero or a one according to the
rules of 6.2.5;
30 (inclusive), the identifier octets shall comprise a
single octet encoded as follows:
c) bits 5 to 1 shall encode the number of the tag
as a binary integer with bit 5 as the most
a) bits 8 and 7 shall be encoded to represent the
significant bit.
class of the tag as specified in table 1.
6.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).
3
---------------------- Page: 7 ----------------------
IS0 8825:1987(E)
6.2.4 For tags with a number greater than or equal
6.3 Length octets
to 31, the identifier shall comprise a leading octet
followed by one or more subsequent octets. 6.3.1 Two forms of length octets are specified.
These are
6.2.4.1 The leading octet shall be encoded as
follows:
a) the definite form (see 6.3.3); and
a) bits 8 and 7 shall be encoded to represent the
b) the indefinite form (see 6.3.4).
class of the tag as listed in table 1;
6.3.2 A sender shall
b) bit 6 shall be a zero or a one according to the
rules of 6.2.5;
a) use the definite form (6.3.3) if the encoding is
primitive;
bits 5 to 1 shall be encoded as 11111,
c)
b) use either the definite form (6.3.3) or the
6.2.4.2 The subsequent octets shall encode the indefinite form (6.3.4), a sender‘s option, if the
number of the tag as follows: encoding is constructed and all immediately
available;
a) bit 8 of each octet shall be set to one unless it
is the last octet of the identifier octets; c) use the indefinite form (6.3.4) if the encoding is
constructed and is not all immediately
available.
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 6.3.3 For the definite form, the length octets shall
octet, up to and including the last subsequent consist of one or more octets, and shall represent
octet in the identifier octets shall be the the number of octets in the contents octets using
encoding of an unsigned binary integer equal either the short form (6.3.3.1) or the long form
to the tag number, with bit 7 of the first (6.3.3.2) as a sender’s option.
subsequent octet as the most significant bit;
NOTE - The short form can only be used If the number of
octets in the contents octets is less than or equal to 127.
c) bits 7 to 1 of the first subsequent octet shall not
all be zero.
6.3.3.1 In the short form, the length octets shall
consist of a single octet in which bit 8 is zero and
6.2.4.3 Figure 4 illustrates the form, of the identifier
bits 7 to 1 encode the number of octets in the
octets for a type with a tag whose number is
contents octets (which may be zero), as an
greater than 30.
unsigned binary integer with bit 7 as the most
significant bit.
6.2.5 Bit 6 shall be set to zero if the encoding is
primitive, and shall be set to one if the encoding is
EXAMPLE
constructed.
L = 38 can be encoded as 00100110,~
NOTE - Subsequent clauses specify whether the encoding Is
primitive or constructed for each type.
6.2.6 IS0 8824 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.
6.2.7 IS0 8824 specifies that the tag of a type
defined using “ANY” is indeterminate. The “ANY”
type is subsequently defined to be an ASN.1 type,
and the complete encoding is then identical to that
of a value of the assigned type (including the
identifier octets).
4
---------------------- Page: 8 ----------------------
IS0 8825:1987(E)
CLASS P/C NUMBER OFTAG
Figure 3 - Identifier octet (low tag number)
4-, subsequent octets
leading octet 2nd octet last octet
-* +-+
CLASS P/C 11 11 1
+I <.
= number of tag
Figure 4 - Identifier octets (high tag number)
of the first subsequent octet as the most significant
6.3.3.2 In the long form, the length octets shall
bit.
consist of an initial octet and one or more
subsequent octets. The initial octet shall be
encoded as follows: EXAMPLE
L=201 can be encoded as: 10000001~
a) bit 8 shall be one;
110010012
b) bits 7 to 1 shall encode the number of
NOTE - in the long form, it IS a sender’s option whether to
subsequent octets in the length octets, as an
use more length octets than the minimum necessary.
unsigned binary integer with bit 7 as the most
significant bit;
6.3.4 For the indefinite form, the length octets
indicate that the contents octets are terminated by
c) the value 11111111, shall not be used
end-of-contents octets (see 6.5), and shall consist
of a single octet.
NOTE - This restriction is introduced for compatibility
with CCiTT Recommendation X.409 and possible future
extension.
6.3.4.1 The single octet shall have bit 8 set to one,
and bits 7 to 1 set to zero.
Bits 8 to 1 of the first subsequent octet, followed by
bits 8 to 1 of the second subsequent octet, followed
6.3.4.2 If this form of length is used, then end-of-
in turn by bits 8 to 1 of each further octet up to and
contents octets (see 6.5) shall be present in the
including the last subsequent octet, shall be the
encoding following the contents octets.
encoding of an unsigned binary integer equal to the
number of octets in the contents octets, with bit 8
5
---------------------- Page: 9 ----------------------
IS0 8825:1987(E)
6.4 Contents octets
8 Encoding of an integer value
The contents octets shall consist of zero, one or
8.1 The encoding of an integer value shall be
more octets, and shall encode the data value as primitive. The contents octets shall consist of one
specified in subsequent clauses. or more octets.
NOTE - The contents octets depend on the type of the data
8.2 If the contents octets of an integer value
value: subsequent clauses follow the same sequence as the
encoding consist of more than one octet, then the
definition of types In ASN.l.
bits of the first octet and bit 8 of the second octet
6.5 End-of-contents octets
a) shall not all be ones; and
The end-of-contents octets shall be present if the
b) shall not all be zero.
length is encoded as specified in 6.3.4, otherwise
they shall not be present.
NOTE - These rules ensure that an integer value is always
encoded in the smallest possible number of octets.
The end-of-contents octets shall consist of two zero
octets.
8.3 The contents octets shall be a twos-complement
binary number equal to the integer value, and
NOTE - The end-of-contents octets can be considered as the
consisting of bits 8 to 1 of the first octet, followed
~
encoding of a value whose tag is universal class, whose form is c
by bits 8 to 1 of the second octet, followed by bits 8
primitive, whose number of the tag is zero, and whose contents
is absent, thus: to 1 of each octet in turn up to and including the
last octet of the contents octets.
End-of-contents Length Contents
Oh6 0016 Absent
NOTE - The value of a two’s complement binary number IS
derived by numbering the bits in the contents octets, starting
with bit 1 of the last octet as bit zero and ending the numbering
with bit 8 of the first octet. Each bit is assigned a numerical
7 Encoding of a boolean value
N
value of 2 , where N is its position in the above numbering
sequence. The value of the two’s complement binary number is
7.1 The encoding of a boolean value shall be
obtained by summing the numerical values assigned to each bit
primitive. The contents octets shall consist of a
for those bits which are set to one, excluding bit 8 of the first
single octet. octet, and theri reducing this value by the numerical value
assigned to bit 8 of the first octet if that bit is set to one.
7.2 If the boolean value is
9 Encoding of a bitstring value
FALSE
9.1 The encoding of a bitstring value shall be either
the octet shall be zero.
primitive or constructed at the option of the sender.
7.2.1 If the boolean value is
NOTE - Where it is necessary to transfer part of a bit string
’
before the entlre bitstring is available, the constructed encoding
TRUE
is used.
the octet shall have any non-zero value, as a
9.2 The contents octets for the primitive encoding
sender‘s option.
shall contain an initial octeî followed by zero, one
or more subsequent octets.
EXAMPLE - If of type BOOLEAN, the value TRUE
can be encoded as:
9.2.1 The bits in the bitstring, commencing with the
first bit and proceeding to the trailing bit, shall be
Boolean Length Contents
placed in bits 8 to 1 of the first subsequent octet,
O116 0116 FFl6
followed by bits 8 to 1 of the second subsequent
octet, followed by bits 8 to 1 of each octet in turn.
followed by as many bits as are needed of the final
subsequent octet, commencing with bit 8.
NOTE - The notation ‘‘first bit’’ and “trailing bit” is specified
in IS0 8824.
9.2.2 The initial octet shall encode, as an unsigned
binary integer with bit 1 as the least significant bit,
the number of unused bits in the final subsequent
octet. The number
...
IS0
NORME INTERNATIONALE
8825
Première édition
1987-11-15
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION
ORGANISATION INTERNATIONALE DE NORMALISATION
MEXAYHAPOAHAR OPrAHM3A!$iR il0 CTAHAAPTbl3AL(MM
e
Systèmes de traitement de l'information -
Interconnexion de systèmes ouverts - Spécification
des règles de codage de base pour la notation
de syntaxe abstraite numéro 1 (ASN.l)
Information processing systems - Open Systems Interconnection - Specification of Basic
Encoding Rules for Abstract Syntax Notation One (ASN. I)
Numéro de référence
IS0 8825 : 1987 (F)
---------------------- Page: 1 ----------------------
IS0 8825:1987(F)
Avant- propos
L‘ISO (Organisation internationale de normalisation) est une fédération mondiale
d’organismes nationaux de normalisation (comités membres de I‘ISO). L’élaboration
des Normes internationales est normalement confiée aux comités techniques de I‘ISO.
Chaque comité membre intéressé par une étude a le droit de faire partie du cornité
technique créé à cet effet. Les organisations internationales, gouvernementales et non
gouvernementales, en liaison avec I’ISO participent également aux travaux.
Les projets de Normes internationales adoptés par les comités techniques sont soumis
aux comités membres pour approbation, avant leur acceptation comme Normes inter-
nationales par le Conseil de I’ISO. Les Normes internationales sont approuvées confor-
mément aux procédures de I’ISO qui requièrent l’approbation de 75 % au moins des
comités membres votants.
La Norme internationale IS0 8825 a été élaborée par le comité technique ISO/TC 97,
Systèmes de traitement de l’information.
L‘attention des utilisateurs est attirée sur le fait que toutes les Normes internationales
sont de temps en temps soumises à révision et que toute référence faite à une autre
Norme internationale dans le présent document implique qu’il s’agit, sauf indication
contraire, de la dernière édition.
O Organisation internationale de normalisation, 1987 O
Version française tirée en 1988
Imprimé en Suisse
ii
---------------------- Page: 2 ----------------------
IS0 8825:1987(F)
Sommaire
O Introduction . I
1 Objet et domaine d’application . 1
2 Références . 1
3 Définitions . 2
4 Abréviations et notation . 2
4.1 Abréviations . 2
4.2 Notation . 2
5 Conformité . 2
................................... 3
6 Règles générales de codage
6.1 Structure d’un codage . 3
6.2 Octets de l’identificateur . 3
6.3 Octets de longueur . 5
6.4 Octets de contenu . 6
6.5 Octets de fin-de-contenu . 6
................................ 6
7 Codage d’une valeur de booléen
8 Codage d’une valeur d’entier . 6
9 Codage d’une valeur de chaîne binaire . 7
......................... 7
10 Codage d‘une valeur de chaîne d’octets
11 Codage d‘une valeur vide . 8
12 Codage d’une valeur de séquence . 8
13 Codage d‘une valeur de séquence-de . 8
14 Codage d’une valeur d’ensemble . 8
15 Codage d‘une valeur d‘ensemble-de . 9
16 Codage d’une valeur de choix . 9
17 Codage d‘une valeur de sélection . 9
18 Codage d‘une valeur d’étiqueté . 9
19 Codage d’une valeur de type quelconque . 10
20 Codage d‘une valeur d‘identificateur d’objet . 10
21 Codage des valeurs des types chaîne de jeu de caractères . 10
22 Codage des valeurs des types utiles ASN.l . 12
23 Utilisation dans la définition de la syntaxe de transfert . 12
iiî
---------------------- Page: 3 ----------------------
IS0 8825:1987(F)
Annexes
A Exemplesdecodage . 14
A.l Description ASN.l de la structure de l‘enregistrement . 14
A.2 DescriPtion en ASN.l de la valeur d’un enregistrement en
.
notation ASN.? . . 14
........... 15
A.3 Représentation de la valeur de cet enregistrement
B Affectation des valeurs d’identificateur d’objet . . 17
Figures
Structure d‘un codage . . 3
Autre codage structuré possible . . 3
0
............ 4
Octets d’identificateur (numéro d’étiquette inférieur) . .
............ 5
Octets d’identificateur (numéro d’étiquette supérieur) .
Tableaux
............ 4
1 Codage de la classe d‘étiquette .
........... 12
2 Emploi des séquences d‘échappement .
iv
---------------------- Page: 4 ----------------------
NORME INTERNATIONALE IS0 8825 : 1987 (FI
Systèmes de traitement de l’information -
lnterconnexion de systèmes ouverts - Spécification
des règles de codage de base pour la notation
de syntaxe abstraite numéro 1 (ASN.1)
O Introduction internationale; elle ne fait pas partie de la présente
Norme internationale.
L’ISO 8824 (Spécification de la notation de syntaxe
abstraite numéro 1 (ASN.1) spécifie une notation
pour la définition des syntaxes abstraites, permet- 1 Objet et domaine d’application
tant aux normes de la Couche Application de défi-
nir les types d‘information qui sont nécessaires La présente Norme internationale spécifie un
pour faire un transfert en utilisant le service de ensemble de règles de codage de base qui
présentation. Elle fournit également une notation peuvent être utilisées pour obtenir la spécification
permettant de specifier les valeurs d‘un type défini. d’une syntaxe de transfert pour les valeurs de
types définis avec la notation spécifiée dans la
La présente Norme internationale définit un I’ISO 8824. Ces règles de codage de base doivent
ensemble de règles de codage qui peuvent Tttre aussi être appliquées pour décoder une telle
appliquées aux valeurs de types définis en utilisant syntaxe de transfert afin d’identifier les valeurs de
la notation spécifiée dans I’ISO 8824. L’application données qui sont transférées.
de ces règles de codage produit une syntaxe de
transfert pour ces valeurs. II est implicite dans la Ces règles de codage de base sont utilisées au
0 moment de la communication (par le fournisseur
spécification de ces règles de codage qu’elles sont
dii service de présentation lorsque cela est exigé
aussi employées pour le décodage.
par un contexte de présentation).
Il est possible d’appliquer plus d’un ensemble de
règles de codage aux valeurs des types qui sont
définis à l‘aide de la notation de l’lS0 8824. La 2 Références
présente Norme internationale définit un ensemble
de règles de codage appelées règles de codage de IS0 2022, Traitement de l‘information - Jeux IS0
base. de caractères codés à 7 et à 8 éléments - Tech-
niques d‘extension de code.
La présente Norme internationale est en accord
technique avec les parties correspondantes de la IS0 2375, Traitement de l‘information - Procédure
Recommandation CCITT X.409 (1984). pour l’enregistrement des séquences déchappe-
ment.
L’annexe A donne des exemples d’application des
règles de codage. Elle ne fait pas partie de la IS0 7498, Systèmes de traitement de /’information
présente Norme internationale. - lnterconnexion de systèmes ouverts - Modèle de
référence de base.
L’annexe E3 résume l’affectation des valeurs d’iden-
tificateur d’objet réalisée dans la présente Norme
1
---------------------- Page: 5 ----------------------
IS0 8825:1987(F)
3.8 octets de contenu: La partie de codage
IS0 8823, Systèmes de traitement de l‘information
d‘une valeur de donnée qui représente une valeur
- lnterconnexion de systèmes ouverts - Spécifica-
particulière pour la distinguer des autres valeurs
tion du protocole de présentation en mode
du même type.
connexion.
3.9 codage élémentaire: Le codage d’une
IS0 8824, Systèmes de traitement de l’information
valeur de donnée dans lequel les octets de conte-
- lnterconnexion de systèmes ouverts - Spécifica-
tion de la notation de syntaxe abstraite numéro I nu représentent directement la valeur.
(ASN. 1)
3.10 codage structuré: Le codage d’une valeur
de donnée dans lequel les octets de contenu sont
CCITT X.409, (1984), Systémes de messagerie:
le codage complet d’une ou de plusieurs valeurs
syntaxe de transfert de la présentation et notation.
de données.
3.11 émetteur: Une réalisation codant une
3 Définitions
valeur de donnée afin de la transférer.
Les définitions de I’ISO 8824 ainsi que les termes
3.12 destinataire: Une réalisation décodant les
suivants sont utilisés dans la présente Norme inter-
octets produits par l’émetteur, afin d’identifier la
nationale.
valeur de donnée qui était codée.
3.1 conformité dynamique: Un énoncé exigeant
d’une réalisation qu’elle respecte le comportement
prescrit par la présente Norme internationale au 4 Abréviations et notation
cours d’une corn munication.
4.1 Abréviations
3.2 conformité statique: Un énoncé exigeant
d’une réalisation qu’elle mette en œuvre un ASN.l Notation de syntaxe abstraite numéro un
ensemble correct de caractéristiques figurant (Abstract Syntaxe Notation One)
parmi celles qui sont définies dans la présente
4.2 Notation
Norme internationale.
4.2.1 La présente Norme internationale concerne la
3.3 valeur de donnée: Une information spéci-
notation définie par I’ISO 8824.
fiée comme valeur d’un type; le type et la valeur
sont définis en utilisant ASN.l.
4.2.2 La présente Norme internationale spécifie la
3.4 codage (d’une valeur de donnée): La valeur de chaque octet d’un codage au moyen des
séquence complète d’octets utilisée pour représen- expressions “bit le plus significatif” et “bit le moins
ter la valeur de la donnée. significatif”.
NOTE - Certaines Recommandations du CCiTT utilisent i’ex- NOTE - Les normes des couches inférieures utilisent la même
pression “élément de donnée” pour désigner cette sequence notation pour définir i’ordre de transmission des bits sur une
d’octets mais cette expression n’est pas utilisée dans la ligne série, ou les affectations de bits aux canaux paralleles.
présente Norme internationale car d’autres Normes internatio-
nales en font usage pour désigner une “valeur de donnée”.
4.2.3 En ce qui concerne la présente Norme inter-
nationale uniquement, les bits d’un octet sont
3.5 octets de l’identificateur: Partie du codage
numérotés de 8 à 1, le bit 8 étant le “bit le plus
d’une valeur de donnée qui sert à identifier le type
significatif” et le bit 1 étant le “bit le moins signifi-
de la valeur.
cat if”.
3.6 octets de l’indicateur de longueur: Partie
du codage d’une valeur de donnée, placée à la
5 Conformité
suite des octets de l’identificateur, et qui sert à
déterminer la fin du codage.
5.1 La conformité dynamique est spécifiée dans les
articles 6 à 21 compris.
3.7 octets de fin-de-contenu: Partie du codage
d’une valeur de donnée apparaissant à sa fin et qui
5.2 La conformité statique est spécifiée par les
sert à déterminer la fin du codage.
normes qui précisent l’application de ces règles de
codage de base.
NOTE - Tous les codages n‘exigent pas d’octets de fin-de-
contenu.
2
---------------------- Page: 6 ----------------------
IS0 8825:1987(F)
f
Nombre.d'octets
du composent
"octets de contenu''
(voir 6.3.2)
1 1
Figure 1 -- Structure d'un codage
OCMS bE OCTITS DE LONGUEUR OCfFtS DE CONTENU OCms DE
FIN-M-CQNTLNU
L'K)(ENT1ACATEUA
t
Indique qu'il n'y 8
IndiqueWb
COmpOOant ''Octm de plus d'4Ihma codés
contm" re termine Clans le COlYXWlYtt
par un compocuint "octets de contenu"
"octets de fin-de-
contenu"
(voir 6.3.4)
Figure 2 - Autre codage structuré possible
6.1.2 Les octets de fin-de-contenu ne doivent être
5.3 La présente Norme internationale autorise que
présents que lorsque la valeur des octets de
d'autres régles de codage soient fournies en option
longueur exige leur présence (voir 6.3).
par l'émetteur; le destinataire, pour être conforme,
doit accepter toutes les alternatives.
6.1.3 La figure 1 illustre la structure d'un codage
NOTE -- Des exernpies de ces alternatives sont donnks en
(élémentaire ou structuré). La figure 2 montre un
6.3.2 b) et au tableau 2.
autre codage structuré possible.
6.2 Octets de l'identificateur
6 Règles générales de codage
6.2.1 Les octets de l'identificateur doivent coder
6.1 Structure d'un codage
l'étiquette ASN.l (classe et numéro) du type de la
valeur de donnée.
6.1.1 Le codage d'une valeur de donnée doit être
constitué de quatre composants qui doivent appa-
6.2.2 Pour les étiquettes désignées par un numéro
raître dans l'ordre suivant:
compris dans l'intervalle O à 30 (inclus), les octets
de l'identificateur doivent être composés d'un seul
a) octets de l'identificateur (voir 6.2);
octet codé comme suit :
b) octets de longueur (voir 6.3);
a) les bits 8 et 7 doivent être codés pour repré-
senter la classe de l'étiquette, tel que l'indique
c) octets de contenu (voir 6.4);
le tableau 1;
d) octets de fin-de-contenu (voir 6.5).
3
---------------------- Page: 7 ----------------------
IS0 8825:1987(F)
Octets de l’identificateur
4
NUMERO OETIOUEITE
t
o = ~LCMENTAIRE
1 = STRUCTUR~
Figure 3 - Octets d’identificateur (numéro d’étiquette inférieur)
a) le bit 8 de chaque octet doit être mis à un, sauf
s’il est le dernier octet de l’identificateur;
Tableau 1 - Codage de la classe d’étiquette
b) les bits 7 à 1 du premier octet suivant, suivis
Classe Bit 8 Bit 7 par les bits 7 à 1 du deuxième octet suivant,
suivis à leur tour par les bits 7 à 1 de chacun
des octets suivants, jusques et y compris le
Universal O O
dernier octet des octets de l’identificateur,
Application O 1
doivent être le codage d’un entier binaire non
Context 1 O
signé égal au numéro de l’étiquette, le bit 7 du
Private 1 1
premier octet suivant étant le bit le plus signifi-
catif;
b) le bit 6 doit être zéro ou un, conformément aux
I
règles de 6.2.5;
c) les bits 7 à 1 du premier octet suivant doivent
tous être à zéro.
c) les bits 5 à 1 doivent coder le numéro de I’éti-
quette sous forme d’un entier binaire dont le 6.2.4.3 La figure 4 montre la structure des octets
bit 5 est le plus significatif. d’identificateur pour un type ayant une étiquette
dont le numéro est supérieur a 30.
6.2.3 La figure 3 montre la structure d’un octet
6.2.5 Le bit 6 doit être mis à zéro si le codage est
d’identificateur pour un type ayant une étiquette
élémentaire; il doit être mis à un si le code est
dont le numéro est compris dans l’intervalle O à 30
structuré.
(inclus) .
NOTE - Les articles suivants précisent si le codage de
6.2.4 Pour les étiquettes ayant un numéro supér-
chaque type est élémentaire ou structuré.
ieur ou égal à 31, l’identificateur doit être composé
d’un octet de début suivi d’un ou de plusieurs
6.2.6 L‘ISO 8824 spécifie que l’étiquette d’un type
autres octets.
défini à l’aide du mot-clé “CHOICE” prend la valeur
de l’étiquette du type auquel appartient la valeur
6.2.4.1 L’octet de début doit être codé comme suit:
de donnée choisie.
a) les bits 8 et 7 doivent étre codés pour repré-
6.2.7 L’ISO 8824 spécifie que l’étiquette d’un type
senter la classe de l’étiquette comme indiqué
défini à l’aide de “ANY” est indéterminée. Le type
au tableau 1:
quelconque est ensuite défini comme un type
ASN.1 et le codage complet est alors identique à
b) le bit 6 doit être zéro ou un, conformément aux
celui d’une valeur du type affecté (y compris les
règles de 6.2.5;
octets de l’identificateur).
c) les bits de 5 à 1 doivent être codés 11111,.
6.2.4.2 Les octets suivants doivent coder le numéro
de l‘étiquette comme suit:
4
---------------------- Page: 8 ----------------------
IS0 8825:1987(F)
dernier =tot
octet de début second octet
-c-., 1
..........
+ +I .I 4-
= numéro d’étiquette
Figure 4 - Octets d’identificateur (numéro d’étiquette supérieur)
6.3.3.2 Dans la forme longue, les octets de
6.3 Octets de longueur
longueur doivent être composés d’un octet initial et
6.3.1 Deux formes de longueur d’octets sont spéci- d’un ou de plusieurs octets suivants. L’octet initial
fiées: doit être codé comme suit:
a) la forme définie (voir 6.3.3); et a) le bit 8 doit être un;
b) les bits 7 à 1 doivent représenter le nombre
b) la forme indéfinie (voir 6.3.4).
d’octets suivants des octets de longueur, sous
6.3.2 Un émetteur doit: forme d’un entier binaire non signé d,ont le bit
7 est le plus significatif;
a) utiliser la forme définie (6.3.3) si le codage est
élémentai re: c) la valeur 11111111, est interdite.
NOTE - Cette limitation a été introduite pour des raisons
b) utiliser soit la forme définie (6.3.3), soit la forme
de compatibilité avec la Recommandation CCITT X.409 et
indéfinie (6.3.4), à son choix, si le codage est
pour permettre d’éventuelles extensions futures.
structuré et entièrement disponible immédiate-
ment:
Les bits 8 à 1 du premier octet suivant, suivis des
bits 8 à 1 du second octet suivant, suivis également
c) utiliser la forme indéfinie (6.3.4) si le codage
des bits 8 à 1 de chacun des octets suivants,
est structuré et n’est pas entièrement dispo-
jusques et y compris le dernier octet suivant,
nible immédiatement.
doivent être le codage d’un entier binaire non
signé égal au nombre d’octets des octets de conte-
6.3.3 Pour la forme définie, les octets de longueur
nu, le bit 8 du premier octet suivant étant le plus
doivent être composés d’un 011 de plusieurs octets
significatif.
et doivent représenter le nombre d’octets des
octets de contenu utilisant, au choix de l’émetteur,
EXEMPLE
soit la forme courte (voir 6.3.3.1), soit la forme
L = 201 peut être codé 10000001~
longue (6.3.3.2).
1 I O0 1 O0 1.2
NOTE - La forme courte ne peut être utilisée que si ie
NOTE - Dans la forme longue, i’émetteur peut choisir d’utili-
nombre d’octets des octets de contenu est Inférieur ou égal A
ser plus d’octets de longueur que le minimum nécessaire.
127.
6.3.4 Pour la forme indéfinie, les octets de longueur
6.3.3.1 Dans la forme courte, les octets de longueur
indiquent que les octets de contenu sont terminés
doivent être composés d’un seul octet dans lequel
par des octets de fin-de-contenu (voir 6.5) et
le bit 8 a la valeur zéro et les bits 7 à 1 codent le
doivent être composés d‘un seul octet.
nombre d’octets des octets de contenu (qui peut
être O), sous forme d’un entier binaire non signé
6.3.4.1 Ce seul octet doit avoir son bit 8 à un et ses
dont le bit 7 est le plus significatif.
bits 7 à 1 à zéro.
EXEMPLE
L = 38 peut être codé 00100110~
5
---------------------- Page: 9 ----------------------
IS0 8825:1987(F)
8 Codage d’une valeur d’entier
Si cette forme de longueur est utilisée, les
6.3.4.2
octets de fin-de-contenu doivent être présents dans
8.1 Le codage d’une valeur d’entier doit être
le codage après les octets de contenu.
élémentaire. Les octets de contenu doivent être
constitués d’un ou de plusieurs octets.
6.4 Octets de contenu
8.2 Si les octets de contenu du codage d’une
Les octets de contenu doivent être composés de
valeur d’entier sont composés de plus d’un octet,
zéro, d‘un ou de plusieurs octets et doivent coder
les neuf premier bits
la valeur de donnée comme indiqué dans les
articles suivants.
a) ne doivent pas être tous des un; et
NOTE - Les octets de contenu dépendent du type de la valeur
de donnée; les articles suivants sont placés dans le même ordre
b) ne doivent pas être tous des zéro
que la définition des types dans ASN.l.
NOTE - Ces règles garantissent qu’une valeur d’entier est
6.5 Octets de fin-de-contenu
toujours codée avec un nombre d’octets le plus petit possible.
Les octets de fin-de-contenu doivent être présents
8.3 Les octets de contenu doivent être un nombre
si la longueur est codée comme indiqué en 6.3.4;
binaire en complément à deux, égal à la valeur
autrement, ils doivent être omis.
d’entier et être composés des bits 8 à 1 du premier
octet, suivis des bits 8 à 1 du deuxième octet,
Les octets de fin-de-contenu doivent être composés
suivis des bits 8 à 1 de chaque octet suivant,
de deux octets zéro.
jusques et y compris le dernier octet des octets de
contenu.
NOTE - Les octets de fin-de-contenu peuvent être considérés
comme le codage d’une valeur dont la classe d’étiquette est
NOTE - La valeur d’un nomore binaire en complément a deux
UNIVERSAL, la forme élémentaire, le numéro d’étiquette zéro et
est obtenue en numérotant les bits des octets de contenu, en
ie contenu absent:
partant du blt 1 du dernler octet jusqu’au bit 8 du ler octet. Une
valeur numérique du 2N est assignée a chaque bit, N étant la
Fin-de-contenu Longueur Contenu
position du bit dans ia numérotation. La valeur du nombre
O016 Absent
O016
binaire en complement a deux est obtenue en faisant la somme
des valeurs numériques assignées a chacun des bits mis à 1
(sauf ie bit 8 du premier octet) de laquelle on déduit la valeur
assignée au bit du premier octet s‘il est a 1.
7 Codage d’une valeur de booléen
7.1 Le codage d’une valeur de booléen doit être
9 Codage d’une valeur de chaîne binaire
élémentaire. Les octets de contenu doivent être
composés d’un seul octet.
9.1 Le codage d’une valeur de chaîne binaire doit
être soit élémentaire soit structuré, au choix de
7.2 Si la valeur de booléen est
l’émetteur.
FALSE
NOTE - Lorsqu’ii est nécessaire de transférer une partie
d’une chaîne binaire avant que la chaîne complète soit dispo-
l’octet doit être zéro.
nible, on utilise le codage structuré.
7.2.1 Si la valeur de booléen est
9.2 Les octets de contenu, pour le codage élemen-
taire, doivent être composés d’un octet initial suivi
TRUE
de zéro, d’un ou de plusieurs autres octets.
l’octet doit avoir n’importe quelle valeur différente
9.2.1 Les bits de la chaîne binaire, en commençant
de zéro, au choix de l’émetteur.
par le premier bit et en progressant jusqu’au bit de
fin, doivent être mis dans les bits 8 à 1 du premier
EXEMPLE - Dans le cas d’un type booléen, la
octet suivant, suivis des bits 8 à 1 du deuxième
valeur TRUE peut être codée comme suit:
octet suivant, suivis des bits 8 à 1 de chaque octet
successif, suivis d’autant de bits de l’octet suivant
Booléen Longueur Contenu
final qu’il est nécessaire, en Commençant par le
0116 0116 FFl6
bit 8.
NOTE - La notation “premier bit” et “bit de fin” est spécifiée
dans 1’1S0 8824.
9.2.2 L’octet initial doit coder, sous forme d’un
entier binaire non signé dont le bit 1 est le bit le
6
---------------------- Page: 10 ----------------------
ISQ 8825:1987(F)
Dans cet exemple, la chaîne binaire est élémen-
moins significatif, le nombre de bits inutilisés du
taire. La valeur ci-dessus peut être encodée
dernier octet suivant. Ce nombre doit être compris
comme suit:
entre O et 7.
Chaîne binaire Longueur Contenu
9.2.3 Si la chaîne binaire est vide, il ne doit y avoir
aucun octet suivant et l’octet initial doit être zéro.
2316 8016
Chaîne binaire Longueur Contenu
0316 O316 000A3B 16
9.3 Les octets de contenu, pour le codage struc-
O316 0516 045 f 29 lCDO 16
turé, doivent être composés du codage complet de
EOC Longueur
zéro, d’une ou de plusieurs valeurs de données.
0016 0016
NOTE - Chacun de ces codages, s’il est structuré, comprend
des octets d’identificateur, de longueur et de contenu et peut
Dans cet exemple, la chaîne binaire est structurée.
comprendre des octets de fin-de-contenu.
9.3.1 Le codage de chaque valeur de donnée dans
10 Codage d’une valeur de chaîne
les octets de contenu doit être le codage d’une
d’octets
valeur de type BISTRING.
10.1 Le codage d’une valeur de chaîne d’octets
NOTE - En particulier, les étiquettes des octets de contenu
doit être soit élémentaire, soit structuré, au choix
sont toujours le numéro 3 de la classe universal.
de l’émetteur.
9.3.2 Les bits de la valeur de chaîne binaire qui est
NOTE - Lorsqu’il faut transferer une partie d‘une chaîne
codée, en cornmencant par le premier bit et en
d’octets avant que toute la chaîne soit disponible, on utilise le
continuant jusqu‘au bit de fin, doivent être placés
codage structuré.
dans le premier bit et jusqu’au bit de fin de la
première valeur de donnée codée dans les octets
10.2 Le codage élémentaire contient zéro, un ou
de contenu, suivis par le premier bit jusqu‘au bit
plusieurs octets de contenu dont la valeur est
de fin de la deuxième valeur de donnée codée
égale à celle des octets de la valeur de donnée,
dans les octets de contenu, suivis par le premier
dans l’ordre dans lequel ils apparaissent dans la
bit jusqu’au bit de fin de chaque valeur de donnée
valeur de donnée, le bit le plus significatif d’un
successive, suivis par le premier bit jusqu’au bit de
octet de la valeur de donnée étant aligné avec le
fin de la dernière valeur de donnée codée dans les
bit le plus significatif d’un octet des octets de
octets de contenu.
conte n u .
9.3.3 Chaque valeur de donnée codée dans les
10.3 Les octets de contenu pour le codage struc-
octets de contenu, à l’exception de la dernière, doit
turé doivent être composés du codage complet de
être composée d’un certain nombre de bits qui doit
zéro, une ou plusieurs valeurs de données.
être un multiple de huit.
NOTE - Chacun de ces codages, s’il est structuré, contient
NOTE - Une valeur de donnée codée dans les octets de
des octets d‘identificateur, de longueur et de contenu et peut
contenu peut être une chaîne binaire de longueur zero.
comprendre des octets de fin-de-contenu.
9.3.4 Si on utilise un codage structuré, aucune
10.3.1 Chaque codage de valeurs de données des
signification ne doit être accordée à la limite entre
octets de contenu doit être le codage d’une valeur
des valeurs de données codées dans les octets de
de type chaîne d’octets.
conte n u .
NOTE - En particulier, les étiquettes des octets de contenu
sont toujours le numéro 4 de la classe UNIVERSAL.
9.3.5 Le codage de chaque valeur de donnée codée
dans les octets de contenu peut être élémentaire
10.3.2 Les octets de la valeur chaîne d’octets
ou structuré.
codée, en commencant par le premier octet et en
continuant jusqu’à l’octet de fin, doivent être mis
NOTE - Habituellement, ce codage est élémentaire.
dans le premier octet jusqu’à l’octet de fin de la
première valeur de donnée codée dans les octets
EXEMPLE - Dans le cas d‘un type chaîne binaire,
la valeur ’OA3B5F291CD’H peut être codée comme de contenu, suivis par le premier jusqu‘au dernier
suit: octet de la deuxième valeur de donnée codée dans
les octets de contenu, suivis par le premier octet
jusqu’à l’octet de fin de chaque valeur de donnée
Chaîne
successive, suivis par le premier octet jusqu‘à I’oc-
binaire Longueur Contenu
Oh6 0716 040A3B5F291CD016 tet de fin de la dernière valeur de donnée codée
dans les octets de contenu.
7
---------------------- Page: 11 ----------------------
IS0 8825:1987(F)
NOTE - Une valeur de donnée codée dans les octets de
doit être codée comme suit:
contenu peut être une chaîne d’octets de longueur zéro.
Séquence Longueur Contenu
10.3.3 Si on utilise le codage structuré, aucune
3016 OAl6
signification ne doit être donnée à la limite entre
IA5chaîne Longueur Contenu
les valeurs de données codées dans les octets de
O616 “ Smith”
1616
con ten u .
Boo 1 &an Longueur Contenu
Oh6 0116 FFl6
10.3.4 Le codage de chaque valeur de donnée
codée dans les octets de contenu peut être
élémentaire ou structuré.
13 Codage d’une valeur de séquence-de
NOTE - Ce codage est habituellement élémentaire.
13.1 Le codage d’une valeur séquence-de doit être
structuré.
11 Codage d’une valeur vide
13.2 Les octets de contenu doivent être composés
de zéro, d’un ou de plusieurs codages complets de
11.1 Le codage d’une valeur vide doit être élémen-
valeurs de données du type listé dans la définition
taire.
ASN.l.
11.2 Les octets de contenu ne doivent pas contenir
13.3 L’ordre des codages des valeurs de données
d‘octets.
doit être le même que l’ordre de valeurs de
données dans la valeur séquence-de à coder.
.
NOTE - L‘octet de longueur est zéro.
EXEMPLE - Dans le cas d’un type vide, la valeur
14 Codage d’une valeur d’ensemble
peut être codée comme suit :
14.1 Le codage d’une valeur d‘ensemble doit être
Vide Longueur
structuré.
O516 0016
14.2 Les octets de contenu doivent être composés
du codage complet d’une valeur de donnée de
12 Codage d’une valeur de séquence
chacun des types listés dans la définition ASN.l du
type ensemble, dans l‘ordre choisi par l’émetteur,
12.1 Le codage d’une valeur de séquence doit être
sauf si le type a été cité par le mot-clé “OPTIO-
structuré.
NAL” ou par le mot-clé “DEFAULT”.
12.2 Les octets de contenu doivent être composés
14.3 Le codage d’une valeur de donnée peut, mais
du codage complet d’une valeur de donnée de
ne doit pas nécessairement, être présent pour un
chacun des types listés dans la définition ASN.l du
type qui a été cité par le mot-clé “OPTIONAL” ou
type de séquence, dans l’ordre de leur apparition
par le mot-clé “DEFAULT”.
dans la définition, sauf si le type a été cité par le
mot-clé “OPTIONAL” ou par le mot-clé “DEFAULT”.
NOTE - L‘ordre des valeurs de données dans une valeur
ensemble n’est pas significatif et n‘entraîne pas de contr
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.