Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)

Technologies de l'information — Règles de codage de la notation de syntaxe abstraite numéro un (ASN.1): Spécification des règles de codage de base (BER), des règles de codage canoniques (CER) et des règles de codage distinctives (DER)

General Information

Status
Withdrawn
Publication Date
11-Oct-1995
Withdrawal Date
11-Oct-1995
Current Stage
9599 - Withdrawal of International Standard
Start Date
09-Dec-1999
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 8825-1:1995 - Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
English language
29 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 8825-1:1995 - Technologies de l'information -- Regles de codage de la notation de syntaxe abstraite numéro un (ASN.1): Spécification des regles de codage de base (BER), des regles de codage canoniques (CER) et des regles de codage distinctives (DER)
French language
30 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 8825-1:1995 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)". This standard covers: Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)

Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)

ISO/IEC 8825-1:1995 is classified under the following ICS (International Classification for Standards) categories: 35.100.60 - Presentation layer. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 8825-1:1995 has the following relationships with other standards: It is inter standard links to ISO/IEC 8825-1:1995/Cor 1:1996, ISO/IEC 8825-1:1998; is excused to ISO/IEC 8825-1:1995/Cor 1:1996. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

You can purchase ISO/IEC 8825-1:1995 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 8825-l
First edition
1995-l O-l 5
Information technology - ASN.1 encoding
rules: Specification of Basic Encoding Rules
(BER), Canonical Encoding Rules (CER) and
Distinguished Encoding Rules (DER)
Technologies de /‘information - R&g/es de codage ASN. I: Spkifica tions
pour /es r&g/es de base de codage (BER), /es r&g/es canoniques de codage
(CER) et /es r&g/es de distinction de codage (DER)
Reference number
lSO/IEC 8825-l :I 995(E)
ISO/IEC 8825-l: 1995(E)
CONTENTS
Page
1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Identical Recommendations I International Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
2.2 Additional references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .~.
4 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Basic encoding rules .
8.1 General rules for encoding .
Encoding of a boolean value .
8.2
..............................................................................................................
8.3 Encoding of an integer value
Encoding of an enumerated value .
8.4
8.5 Encoding of a real value .
..............................................................................................................
8.6 Encoding of a bitstring value
8.7 Encoding of an octetstring value .
.....................................................................................................................
8.8 Encoding of a null value
Encoding of a sequence value .
8.9
........................................................................................................
8.10 Encoding of a sequence-of value
Encoding of a set value .
8.11
8.12 Encoding of a set-of value .
8.13 Encoding of a choice value .
8.14 Encoding of a tagged value .
Encoding of an open type .
8.15
Encoding of an instance-of value .
8.16
..................................................................................
8.17 Encoding of a value of the embedded-pdv type
8.18 Encoding of a value of the external type .
................................................................................................
8.19 Encoding of an object identifier value
Encoding for values of the restricted character string types .
8.20
.............................................................
8.21 Encoding for values of the unrestricted character string type
o ISO/IEC 1995
All rights reserved. Unless otherwise specified, no part of this publication may be
reproduced or utilized in any form or by any means, electronic or mechanical, including
photocopying and microfilm, without permission in writing from the publisher.
ISO/IEC Copyright Office l Case postale 56 l CH-1211 Geneve 20 l Switzerland
Printed in Switzerland
ii
ISO/IEC 8825-l: 1995(E)
0 1s0/lEc
9 Canonical encoding rules . 19
91 Length forms .
String encoding forms . 19
9:2
93 . Set components .
......................................................................................................................... 19
10 Distinguished encoding rules
10.1 Length forms .
......................................................................................................................... 20
10.2 String encoding forms
10.3 Set components .
Restrictions on BER employed by both CER and DER . 20
11.1 Boolean values .
11.2 Unused bits .
11.3 Real values . 20
11.4 GeneralString values . 21
11.5 Set and sequence components with default value . 21
11.6 Set-of components .
11.7 GeneralizedTime .
12 Use of BER, CER and DER in transfer syntax definition .
Annex A - Example of encodings . 23
A. 1 ASN. 1 description of the record structure .
A.2 ASN. 1 description of a record value . 23
A.3 Representation of this record value . 23
.................................................................................................... 25
Annex B - Assignment of object identifier values
........................................................................................................... 26
Annex C - Illustration of real value encoding
.......................................................................... 28
Annex D - Use of the DER and CER in data origin authentication
D. 1 The problem to be solved .
D.2 The approach to a solution .
D.3 The implementation optimization . 29
. . .
ISO/IEC 8825-l: 1995(E)
Foreword
IS0 (the International Organization for Standardization) and IEC (the Inter-
national Electrotechnical Commission) form the specialized system for worldwide
standardization. National bodies that are members of IS0 or IEC participate in the
development of International Standards through technical committees established
by the respective organization to deal with particular fields of technical activity.
IS0 and IEC technical committees collaborate in fields of mutual interest. Other
international organizations, governmental and non-governmental, in liaison with
IS0 and IEC, also take part in the work.
In the field of information technology, IS0 and IEC have established a joint
technical committee, ISO/IEC JTC 1. Draft International Standards adopted by the
joint technical committee are circulated to national bodies for voting. Publication
as an International Standard requires approval by at least 75 % of the national
bodies casting a vote.
International Standard ISOKIEC 8825-l was prepared by Joint Technical
Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 21, Open
systems interconnection, data management and open distributed processing, in
collaboration with ITU-T. The identical text is published as ITU-T
Recommendation X.690.
This is a revision of ISO/IEC 8825:1990.
ISO/IEC 8825:1995 consists of the following parts, under the general title
Information technology - ASN. I encoding rules:
- Part I: Specification of Basic Encoding Rules (BER), Canonical Encoding
Rules (CER) and Distinguished Encoding Rules (DER)
- Part 2: Specification of Packed Encoding Rules
Annexes A to D of this part of ISO/IEC 8825: 1995 are for information only.
IV
ISO/IEC 8825=1:1995(E)
0 ISO/IEC
Introduction
\
ITU-T Rec. X.680 I ISO/IEC 8824-1, ITU-T Rec. X.681 I ISO/IEC 8824-2, ITU-T Rec. X.682 I ISOLIEC 8824-3,
ITU-T Rec. X.683 I ISO/IEC 8824-4 (Abstract Syntax Notation One or ASN. 1) together specify a notation for the
definition of abstract syntaxes, enabling application layer standards to define the types of information they need to
transfer using the presentation service. It also specifies a notation for the specification of values of a defined type.
This Recommendation I International Standard defines encoding rules that may be applied to values of types defined
using the ASN. 1 notation. Application of these encoding rules produces a transfer syntax for such values. It is implicit in
the specification of these encoding rules that they are also to be used for decoding.
There may be more than one set of encoding rules that can be applied to values of types that are defined using the ASN.l
notation. This Recommendation I International Standard defines three sets of encoding rules, called basic encoding
rules, canonical encoding rules and distinguished encoding rules. Whereas the basic encoding rules gives the sender
of an encoding various choices as to how data values may be encoded, the canonical and distinguished encoding rules
select just one encoding from those allowed by the basic encoding rules, eliminating all of the sender’s options. The
canonical and distinguished encoding rules differ from each other in the set of restrictions that they place on the basic
encoding rules.
The distinguished encoding rules is more suitable than the canonical encoding rules if the encoded value is small enough
to fit into the available memory and there is a need to rapidly skip over some nested values. The canonical encoding
rules is more suitable than the distinguished encoding rules if there is a need to encode values that are so large that they
cannot readily fit into the available memory or it is necessary to encode and transmit a part of a value before the entire
value is available. The basic encoding rules is more suitable than the canonical or distinguished encoding rules if the
encoding contains a set value or set-of value and there is no need for the restrictions that the canonical and distinguished
encoding rules impose. This is due to the memory and CPU overhead that the latter encoding rules exact in order to
guarantee that set values and set-of values have just one possible encoding.
A gi ves a n example of encoding rules. It does not form an integral
Annex the application of the basic part of this
Recom .mend .ation I International Standard.
Annex B summarizes the assignment of object identifier values made in this Recommendation International Standard. It
does not form an integral part of this Recommendation I International Standard.
encoding reals. It does not form an
Annex C gives ex .amples of applying the bas ic encoding rules for integral part of this
Recom mendation I International Standard.
Annex D provides a tutorial on the distinguished encoding rules to provide an integrity service for OS1
the use of
communications. It does not form an integral of this Recommendation I International Standard.
Pad
This page intentionally left blank

ISO/IEC 8825-l : 1995 (E)
INTERNATIONAL STANDARD
ITU-T RECOMMENDATION
INFORMATION TECHNOLOGY - ASN.l ENCODING RULES:
SPECIFICATION OF BASIC ENCODING RULES (BER),
CANONICAL ENCODING RULES (CER)
AND DISTINGUISHED ENCODING RULES (DER)
1 Scope
This Recommendation I International Standard specifies a set of basic encoding rules that may be used to derive the
specification of a transfer syntax for values of types defined using the notation specified in ITU-T Rec. X.680 (1994) I
ISOLIEC 8824-1:1995, ITU-T Rec. X.681 (1994) I ISO/IEC 8824-2:1995, ITU-T Rec. X.682 (1994) I
ISOLIEC 8824 3: 1995, and ITU-T Rec. X.683 (1994) I ISO/IEC 8824-4: 1995, collectively referred to as Abstract Syntax
Notation One or ASN.1. These basic encoding rules are also to be applied for decoding such a transfer syntax in order to
identify the data values being transferred. It also specifies a set of canonical and distinguished encoding rules that restrict
the encoding of values to just one of the alternatives provided by the basic encoding rules.
These encoding rules are used at the time of communication (by the presentation service provider when required by a
presentation context).
Normative references
The following Recommendations and International Standards contain provisions which, through reference in this text,
constitute provisions of this Recommendation I International Standard. At the time of publication, the editions indicated
were valid. All Recommendations and Standards are subject to revision, and parties to agreements based on this
Recommendation I International Standard are encouraged to investigate the possibility of applying the most recent
editions of the Recommendations and Standards listed below. Members of IEC and IS0 maintain registers of currently
valid International Standards. The Telecommunications Standardization Bureau of the ITU maintains a list of currently
valid ITU-T Recommendations.
Identical Recommendations I International Standards
21 .
-
ITU-T Recommendation X.200 (1994) I ISO/IEC 7498-l : 1994, Information technology - Open Systems
Interconnection - Basic Reference Model: The basic model.
-
ITU-T Recommendation X.226 (1994) I ISO/IEC 8823-1:1994, Information technology - Open Systems
- Connection-oriented presentation protocol: Protocol specification.
Interconnection
-
ITU-T Recommendation X.680 (1994) I ISO/IEC 8824-l : 1995, Information technology - Abstract Syntax
Notation One (ASN.1): Specification of basic notation.
-
ITU-T Recommendation X.68 1 (1994) I ISO/IEC 8824-2: 1995, Information technology - Abstract Syntax
Notation One (ASN. 1): Information object specification.
-
ITU-T Recommendation X.682 (1994) I ISO/IEC 8824-3: 1995, Information technology - Abstract Syntax
Notation One (ASN. 1): Constraint specification.
-
ITU-T Recommendation X.683 (1994) I ISO/IEC 8824-4: 1995, Information technology - Abstract Syntax
Notation One (ASN. 1): Parameterization of ASN. 1 specifications.
22 0 Additional references
-
IS0 International Register of Coded Character Sets to be used with Escape Sequence.
-
ISO/IEC 2022: 1994, Information technology - Character code structure and extension techniques.
-
IS0 6093: 1985, Information processing - Representation of numerical values in character strings for
information interchange.
ITU-T Rec. X.690 (1994 E) 1
ISO/IEC 8825-l : 1995 (E)
-
ISO/IEC 6429: 1992, Information technology - Control functions for coded character sets.
-
CCITT Recommendation X.208 (1988), Specification of Abstract Syntax Notation One (ASN. 1).
-
ISOIIEC 8824-l to 8824: 1990, Information technology - Open Systems Interconnection - Specification of
Abstract Syntax Notation One (ASN.1).
-
ISOIIEC 10646-l: 1993, Information technology - Universal Multiple-Octet Coded Character Set (KS) -
Part 1: Architecture and Basic Multilingual Plane.
Definitions
For the purposes of this Recommendation I International Standard the definitions of ISO/IEC 7498-l and ITU-T Rec. X.680 I
ISO/IEC 8824-l and the following definitions apply.
31 dynamic conformance: A statement of the requirem Lent for an implementation to adhere to the behavior
communication.
piescri bed by this Recommendation I Internation al Standard in an instance of
static conformance: A statement of the requirement for support by an implementation of a valid set of
features from among those defined by this Recommendation I International Standard.
33 . data value: Information specified as the value of a type; the type and the value are defined using ASN. 1.
. encoding (of a data value): The complete sequence of octets used to represent the data value.
35 . identifier octets: Part of a data value encoding which is used to identify the type of the value.
NOTE - Some ITU-T Recommendations use the term “data element” for this sequence of octets, but the term is not used in
this Recommendation I International Standard, as other Recommendations I International Standards use it to mean “data value”.
36 . length octets: Part of a data value encoding following the identifier octets which is used to determine the end
of the encoding.
37 . contents octets: That part of a data value encoding which represents a particular value, to distinguish it from
other values of the same type.
38 . end-of-contents octets: Part of a data value encoding, occurring at its end, which is used to determine the end
of the encoding.
NOTE - Not all encodings require end-of-contents octets.
39 . primitive encoding: A data value encoding in which the contents octets directly represent the value.
encoding in which the contents octets are the complete encoding of one
3.10 constructed encoding: A data value
or more data values.
3.11 receiver: An implementation decoding the octets produced sender, in order to identify the data value
by a
which was encoded.
3.12 sender: An implementation encoding a data value for transfer.
3.13 trailing 0 bit: A 0 in the last position of a bitstring value.
NOTE - The 0 in a bitstring value consisting of a single 0 bit is a trailing 0 bit. Its removal produces an empty bitstring.
4 Abbreviations
ASN.l Abstract Syntax Notation One
Basic Encoding Rules of ASN.l
BER
CER Canonical Encoding Rules of ASN.l
DER Distinguished Encoding Rules of ASN. 1
ULA Upper Layer Architecture
Notation
This Recommendation I International Standard references the notation defined by ITU-T Rec. X.680 I ISO/IEC 8824-l.
2 IT&T Rec. X.690 (1994 E)
ISO/IEC 8825-l : 1995 (E)
6 Convention
61 This Recommendation I International Standard specifies the value of each octet in an encoding by use of the
tkms “most significant bit” and “least significant bit”.
NOTE - Lower layer specifications use the same notation to define the order of bit transmission on a serial line, or the
assignment of bits to parallel channels.
62 For the purposes of this Recommendation I International Standard only, the bits of an octet are numbered from
8’to 1, where bit 8 is the “most significant bit”, and bit 1 is the “least significant bit”.
63 . For the purpose of this Recommendation I International Standard, two octet strings can be compared. One octet
string is equal to another if they are of the same length and are the same at each octet position. An octet string, Sl, is
greater than another, S2, if and only if either:
a) S1 and S2 have identical octets in every position up to and including the final octet in S2, but S1 is longer;
or
S1 and S2 have different octets in one or more positions, and in the first such position, the octet in Sl is
b)
greater than that in S2, considering the octets as unsigned binary numbers whose bit n has weight 2”-
Conformance
7.1 Dynamic conformance is specified by clause to clause inclusive.
Static conformance is specified by those standards which specify the application of one or more of these
7.2
encoding rules.
7.3 Alternative encodings are permitted by the basic encoding rules as a sender’s option. Receivers who claim
conformance to the basic encoding rules shall support all alternatives.
NOTE - Examples of such alternative encodings appear in 8.1.3.2 b) and Table 3.
No alternative encodings are permitted by the Canonical Encoding Rules or Distinguished Encoding Rules.
7.4
8 Basic encoding rules
General rules for encoding
81 .
8.1.1 Structure of an encoding
8.1.1.1 The encoding of a data value shall consist of four components which shall appear in the following order:
a) identifier octets (see 8.1.2);
b) length octets (see 8.1.3);
contents octets (see 8.1.4);
C>
end-of-contents octets (see 8.1.5).
d)
8.1.1.2 The end-of-contents octets shall not be present unless the value of the length octets requires them to be present
(see 8.1.3).
Figure 1 illustrates the structure of an encoding (primitive or constructed). Figure 2 illustrates an alternative
8.1.1.3
constructed encoding.
Identifier octets
8.1.2
The identifier octets shall encode the ASN.l tag (class and number) of the type of the data value.
8.1.2.1
ITU-T Rec. X.690 (1994 E) 3
ISO/IEC 8825-l : 1995 (E)
Identifier octets Length octets Contents octets
I
The number of octets
in the contents octets
(see 8.1.3.2)
TIS04830-94/dO 1
Figure 1 - Structure of an encoding
End of contents octets
ldentif ier octets Length octets contents octets
Indicates that the contents Indicates that there are
octets are terminated by no further encodings
end of contents octets in the contents octets
(see 8.1.3.6)
TIS0484@94/dO2
Figure 2 - An alternative constructed encoding
8.1.2.2 For tags with a number ranging from zero to 30 (inclusive), the identifier octets shall comprise a single octet
encoded as follows:
a) bits 8 and 7 shall be encoded to represent the class of the tag as specified in Table 1;
b) bit 6 shall be a zero or a one according to the rules of 8.1.2.5;
c) bits 5 to 1 shall encode the number of the tag as a binary integer with bit 5 as the most significant bit.
Table 1 - Encoding of class of tag
Bit 7
Class
Universal
Application
Context-specific
Private
Figure 3 illustrates the form of an identifier octet for a type with a tag whose number is in the range zero to
8.1.2.3
30 (inclusive).
ITU-T Rec. X.690 (1994 E)
ISO/IEC 8825-l : 1995 (E)
ldentif ier octet
8 7 6 5 4 3 2 1
Bits
Class P/C Number of tag
- 0 = Primitive
- 1 = Constructed
TlSO4850-94/dO3
Figure 3 - Identifier octet (low tag number)
8.1.2.4 For tags with a number greater than or equal to 3 1, the identifier shall comprise a leading octet followed by
one or more subsequent octets.
8.1.2.4.1 The leading octet shall be encoded as follows:
a) bits 8 and 7 shall be encoded to represent the class of the tag as listed in Table 1;
b) bit 6 shall be a zero or a one according to the rules of 8.1.2.5;
c) bits 5 to 1 shall be encoded as 111112.
8.1.2.4.2 The subsequent octets shall encode the number of the tag as follows:
a) bit 8 of each octet shall be set to one unless it is the last octet of the identifier octets;
b) bits 7 to 1 of the first subsequent octet, followed by bits 7 to 1 of the second subsequent octet, followed in
turn by bits 7 to 1 of each further octet, up to and including the last subsequent octet in the identifier
octets shall be the encoding of an unsigned binary integer equal to the tag number, with bit 7 of the first
subsequent octet as the most significant bit;
c) bits 7 to 1 of the first subsequent octet shall not all be zero.
8.1.2.4.3 Figure 4 illustrates the form of the identifier octets for a type with a tag whose number is greater than 30.
Subsequent octets
Leading octet 2nd octet Last octet
Class P/C 1 1 1 1 1
= Number of tag
*
A
TIS04860-94/dO4
Figure 4 - Identifier octets (high tag number)
8.1.2.5 Bit 6 shall be set to zero if the encoding is primitive, and shall be set to one if the encoding is constructed.
NOTE - Subsequent clauses specify whether the encoding is primitive or constructed for each type.
8.1.2.6 ITU-T Rec. X.680 I ISOLIEC 8824-l specifies that the tag of a type defined using the “CHOICE” keyword
takes the value of the tag of the type from which the chosen data value is taken.
ITU-T Rec. X.690 (1994 E) 5
ISO/IEC 8825-l : 1995 (E)
8.1.2.7 ITU-T Rec. X.681 I ISO/IEC 8824-2, subclauses 14.2 and 14.4 specifies that the tag of a type defined using
“ObjectClassFieldType” is indeterminate if it is a type field, a variable-type value field, or a variable-type value set field.
This type is subsequently defined to be an ASN.l type, and the complete encoding is then identical to that of a value of
the assigned type (including the identifier octets).
8.1.3 Length octets
8.1.3.1 Two forms of length octets are specified. These are:
a) the definite form (see 8.1.3.3); and
b) the indefinite form (see 8.1.3.6).
8.1.3.2 A sender shall:
use the definite form (see 8.1.3.3) if the encoding is primitive;
a)
b) use either the definite form (see 8.1.3.3) or the indefinite form (see 8.1.3.6), a sender’s option, if the
encoding is constructed and all immediately available;
use the indefinite form (see 8.1.3.6) if the encoding is constructed and is not all immediately available.
Cl
8.1.3.3 For the definite form, the length octets shall consist of one or more octets, and shall represent the number of
octets in the contents octets using either the short form (see 8.1.3.4) or the long form (see 8.1.3.5) as a sender’s option.
NOTE - The short form can only be used if the number of octets in the contents octets is less than or equal to 127.
8.1.3.4 In the short form, the length octets shall consist of a single octet in which bit 8 is zero and bits 7 to 1 encode
the number of octets in the contents octets (which may be zero), as an unsigned binary integer with bit 7 as the most
significant bit.
L = 38 can be encoded as 00100110~.
8.1.3.5 In the long form, the length octets shall consist of an initial octet and one or more subsequent octets. The initial
octet shall be encoded as follows:
a) bit 8 shall be one;
b) bits 7 to 1 shall encode the number of subsequent octets in the length octets, as an unsigned binary integer
with bit 7 as the most significant bit;
the value 11111111~ shall not be used.
C>
NOTE 1 - This restriction is introduced for possible future extension.
Bits 8 to 1 of the first subsequent octet, followed by bits 8 to 1 of the second subsequent octet, followed in turn by bits 8
to 1 of each further octet up to and including the last subsequent octet, shall be the encoding of an unsigned binary
integer equal to the number of octets in the contents octets, with bit 8 of the first subsequent octet as the most
significant bit.
L = 201 can be encoded as:
NOTE 2 - In the long form, it is a sender’s option whether to use more length octets than the minimum necessary.
8.1.3.6 For the indefinite form, the length octets indicate that the contents octets are terminated by end-of-contents
octets (see 8.1 S), and shall consist of a single octet.
8.1.3.6.1 The single octet shall have bit 8 set to one, and bits 7 to 1 set to zero.
8.1.3.6.2 If this form of length is used, then end-of-contents octets (see 8.1 S) shall be present in the encoding following
the contents octets.
8.1.4 Contents octets
The contents octets shall consist of zero, one or more octets, and shall encode the data value as specified in subsequent
clauses.
NOTE - The contents octets depend on the type of the data value; subsequent clauses follow the same sequence as the
definition of types in ASN.l.
6 ITU-T Rec. X.690 (1994 E)
ISO/IEC 8825-l : 1995 (E)
End-of-contents octets
8.1.5
The end-of-contents octets shall be present if the length is encoded as specified in 8.1.3.6, otherwise they shall not be
present.
The end-of-contents octets shall consist of two zero octets.
NOTE - The end-of-contents octets can be considered as the encoding of a value whose tag is universal class, whose form
is primitive, whose number of the tag is zero, and whose contents are absent, thus:
End-of-contents Length Contents
I
I
Absent
O”16 046
82 . Encoding of a boolean value
The encoding of a boolean value shall be primitive. The contents octets shall consist of a single octet.
8.2.1
If the boolean value is
8.2.2
FALSE
the octet shall be zero.
If the boolean value is
TRUE
the octet shall have any non-zero value, as a sender’s option.
Example - If of type BOOLEAN, the value TRUE can be encoded as:
Boolean Length Contents
Oh6 0116 FF16
. Encoding of an integer value
The encoding of an integer value shall be primitive. The contents octets shall consist of one or more octets.
8.3.1
8.3.2 If the contents octets of an integer value encoding consist of more than one octet, then the bits of the first octet
and bit 8 of the second octet
shall not all be ones; and
a>
b) shall not all be zero.
NOTE - These rules ensure that an integer value is always encoded in the smallest possible number of octets.
8.3.3 The contents octets shall be a two’s complement binary number equal to the integer value, and consisting of
bits 8 to 1 of the first octet, followed by bits 8 to 1 of the second octet, followed by bits 8 to 1 of each octet in turn up to
and including the last octet of the contents octets.
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 value
of 2N, where N is its position in the above numbering sequence. The value of the two’s complement binary number is obtained by
summing the numerical values assigned to each bit for those bits which are set to one, excluding bit 8 of the first octet, and then
reducing this value by the numerical value assigned to bit 8 of the first octet if that bit is set to one.
84 . Encoding of an enumerated value
The encoding of an enumerated value shall be that of the integer value with which it is associated.
NOTE - It is primitive.
ITU-T Rec. X.690 (1994 E) 7
ISO/IEC 8825-l : 1995 (E)
85 . Encoding of a real value
8.5.1 The encoding of a real value shall be primitive.
8.5.2 If the real value is the value zero, there shall be no contents octets in the encoding.
8.5.3 If the real value is non-zero, then the base used for the encoding shall be B’, chosen by the sender. If B’ is 2, 8
or 16, a binary encoding, specified in 8.5.5, shall be used. If B’ is 10, a character encoding, specified in 8.5.6, shall be
used.
NOTE - The form of storage, generation, or processing by senders and receivers, and the form used in the ASN. 1 value
notation are all independent of the base used for transfer.
8.5.4 Bit 8 of the first contents octet shall be set as follows:
if bit 8 = 1, then the binary encoding specified in 8.5.5 applies;
a>
b) if bit 8 = 0 and bit 7 = 0, then the decimal encoding specified in 8.5.6 applies;
if bit 8 = 0 and bit 7 = 1, then a “SpecialRealValue” (see ITU-T Rec. X.680 I ISO/IEC 8824-l) is encoded
Cl
as specified in 8.5.7.
8.5.5 When binary encoding is used (bit 8 = l), then if the mantissa, M is non-zero, it shall be represented by a
sign S, a non-negative integer value N and a binary scaling factor F, such that
M=SXNX~~
OIF<4
S=+l or-l
NOTE - The binary scaling factor F is required under certain circumstances in order to align the implied point of the
mantissa to the position required by the encoding rules of this clause. This alignment can not always be achieved by modification of
the exponent E. If the base B’ used for encoding is 8 or 16, the implied point can only be moved in steps of 3 or 4 bits, respectively,
by changing the component E. Therefore, values of the binary scaling factor F other than zero may be required in order to move the
implied point to the required position.
8.5.5.1 Bit 7 of the first contents octets shall be 1 if S is -1 and 0 otherwise.
8.5.5.2 Bits 6 to 5 of the first contents octets shall encode the value of the base B’ as follows:
Bits 6 to 5 Base
00 base 2
01 base 8
10 base 16
11 Reserved for further editions of this Recommendation I International Standard.
8.5.5.3 Bits 4 to 3 of the first contents octet shall encode the value of the binary scaling factor F as an unsigned binary
integer.
8.5.5.4 Bits 2 to 1 of the first contents octet shall encode the format of the exponent as follows:
contents octet encodes the value of the exponent as a two’s
if bits 2 to 1 are 00, then the second
a)
complement binary number;
b) if bits 2 to 1 are 01, then the second and third contents octets encode the value of the exponent as a two’s
complement binary number;
exponent as a
if bits 2 to 1 are 10, then the second, third and fourth contents octets encode the value of the
d
two’ s complement binary number;
d) if bits 2 to 1 are 11, then the second contents octet encodes the number of octets, X say, (as an unsigned
binary number) used to encode the value of the exponent, and the third up to the (X plus 3)th (inclusive)
contents octets encode the value of the exponent as a two’s complement binary number; the value of X
shall be at least one; the first nine bits of the transmitted exponent shall not be all zeros or all ones.
8.5.5.5 The remaining contents octets encode the value of the integer N (see 8.5.5) as an unsigned binary number.
NOTES
1 For non-canonical BER there is no requirement for floating point normalization of the mantissa. This allows an
implementor to transmit octets containing the mantissa without performing shift functions on the mantissa in memory. In the
Canonical Encoding Rules and the Distinguished Encoding Rules normalization is specified and the mantissa (unless it is 0) needs to
be repeatedly shifted until the least significant bit is a 1.
This representation of real is very different from the formats ly used in floating point hardware, but
2 numbers
be easily converted to and from such formats (see annex C).
has been designed to
8 ITU-T Rec. X.690 (1994 E)
ISO/IEC 8825-l : 1995 (E)
When decimal encoding is used (bits 8 to 7 = 00), all the contents octets following the first contents octet form
8.5.6
a field, as the term is used in IS0 6093, of a length chosen by the sender, and encoded according to IS0 6093. The
choice of IS0 6093 number representation is specified by bits 6 to 1 of the first contents octet as follows:
Number representation
Bits 6 to I
00 0001 IS0 6093 NRl form
00 0010 IS0 6093 NR2 form
000011 IS0 6093 NR3 form
The remaining values of bits 6 to 1 are reserved for to this Recommendation I International Standard.
There shall be no use of scaling factors specified in accompanying documentation (see IS0 6093).
NOTES
1 The recommendations in IS0 6093 concerning the use of at least one digit to the left of the decimal mark are also
recommended in this Recommendation I International Standard, but are not mandatory.
2 Use of the normalized form (see IS0 6093) is a sender’s option, and has no significance.
8.5.7 When “SpecialRealValues” are to be encoded (bits 8 to 7 = 01), there shall be only one contents octet, with
values as follows:
01000000 Value is PLUS-INFINITY
01000001 Value is MINUS-INFINITY
All other values having bits 8 and 7 equal to 0 and 1 respectively are reserved for addenda to this Recommendation I
International Standard.
86 . Encoding of a bitstring value
8.6.1 The encoding of a bitstring value shall be either primitive or constructed at the option of the sender.
NOTE - Where it is necessary to transfer part of a bit string before the entire bitstring is available, the constructed
encoding is used.
The contents octets for the primitive encoding shall contain an initial octet followed by zero, one or more
8.6.2
subsequent octets.
8.6.2.1 The bits in the bitstring, commencing with the first bit and proceeding to the last bit, shall be placed in bits 8
to 1 of the first subsequent octet, 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 terms “first bit” and “trailing bit” are defined in ITU-T Rec. X.680 I ISO/IEC 8824-l.
8.6.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 shall be in the range zero to seven.
8.6.2.3 If the bitstring is empty, there shall be no subsequent octets, and the initial octet shall be zero.
8.6.2.4 Where ITU-T Rec. X.680 I ISO/IEC 8824-1, subclause 19.7 applies, a BER encoder/decoder can add or
remove trailing 0 bits from the value.
NOTE - If a bitstring value has no 1 bits then an encoder (as a sender’s option) may encode the value with an initial octet
set to 0 or may encode it as a bit string with one or more 0 bits following the initial octet.
8.6.3 The contents octets for the constructed encoding shall consist of zero, one, or more nested encodings.
NOTE - Each such encoding includes identifier, length, and contents octets, and may include end-of-contents octets if it is
constructed.
8.6.4 To encode a bitstring value in this way, it is segmented. Each segment shall consist of a series of consecutive
bits of the value, and with the possible exception of the last, shall contain a number of bits which is a multiple of eight.
Each bit in the overall value shall be in precisely one segment, but there shall be no significance placed on the segment
boundaries.
NOTE - A segment may be of size zero, i.e. contain no bits.
8.6.4.1 Each encoding in the contents octets shall represent a segment of the overall bitstring, the encoding arising
from a recursive application of this clause. In this recursive application, each segment is treated as if it were a bitstring
value. The encodings of the segments shall appear in the contents octets in the order in which their bits appear in the
overall value.
ITU-T Rec. X.690 (1994 E) 9
ISO/IEC 8825-l : 1995 (E)
NOTES
1 As a consequence of this recursion, each encoding in the contents octets may itself be primitive or constructed.
However, such encodings will usually be primitive.
2 In particular, the tags in the contents octets are always universal class, number 3.
- If of type BIT STRING, the value ‘OA3B5F291CD’H can be encoded as shown below. In this
8.6.4.2 Example
example, the Bit String is represented as a primitive:
BitString Length Contents
o~0A3B5F~~KDo16
0316 0716
The value shown above can also be encoded as shown below. In this example, the Bit String is represented as a
constructor:
BitString Length Contents
2316 8o16
BitString Length Contents
oooA3B16
0316 0316
045F29lcDo16
0316 0516
EOC Length
O”16 O”16
87 . Encoding of an octetstring value
The encoding of an octetstring value shall be either primitive or constructed at the option of the sender.
8.7.1
NOTE - Where it is necessary to transfer part of an octet string before the entire octetstring is available, the constructed
encoding is used.
8.7.2 The primitive encoding contains zero, one or more contents octets equal in value to the octets in the data value,
in the order they appear in the data value, and with the most significant bit of an octet of the data value aligned with the
most significant bit of an octet of the contents octets.
8.7.3 The contents octets for the constructed encoding shall consist of zero, one, or more encodings.
NOTE - Each such encoding includes identifier, length, and contents octets, and may include end-of-contents octets if it is
constructed.
8.7.3.1 To encode an octetstring value in this way, it is segmented. Each segment shall consist of a series of
consecutive octets of the value. There shall be no significance placed on the segment boundaries.
NOTE - A segment may be of size zero, i.e. contain no octets.
8.7.3.2 Each encoding in the contents octets shall represent a segment of the overall octetstring, the encoding arising
from a recursive application of this subclause. In this recursive application, each segment is treated as if it were a
octetstring value. The encodings of the segments shall appear in the contents octets in
...


ISO/CEI --
NORME I-
8825-1
INTERNATIONALE
Première édition
1995-1 0-1 5
Technologies de l'information - Règles de
codage de la notation de syntaxe abstraite
numéro un (ASN.1): Spécification des
règles de codage de base (BER), des règles
de codage canoniques (CER) et des règles
de codage distinctives (DER)
Information technology - ASN. 1 encoding rules: Specification of Basic
Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished
Encoding Rules (DER)
Numéro de référence
ISO/CEI 8825-1 11 995(F)
ISOKEI 8825-1:1995(F)
Sommaire
Page
1 Domaine d'application .
2 Références normatives .
2.1 Recommandations et Normes internationales identiques . 1
2.2 Autres références .
3 Définitions . 2
4 Abréviations .
5 Notation .
6 Conventions . 3
7 Conformité .
8 Règles de codage de base . 3
8.1 Règles générales de codage . 3
Codage dune valeur booléenne .
8.2 7
Codage dune valeur entière .
8.3 8
8.4 Codage dune valeur énumérée . 8
Codage d'une valeur réelle .
8.5 8
8.6 Codage dune valeur de type chaîne binaire . 10
Codage dune valeur de type chaîne d'octets .
8.7 11
Codage dune valeur vide .
8.8 11
8.9 Codage dune valeur de type séquence . 12
Codage dune valeur de type séquence-de .
8.10 12
8.11 Codage dune valeur de type ensemble . 12
Codage dune valeur de type ensemble-de .
8.12 12
8.13 Codage dune valeur de type choix .
Codage dune valeur étiquetée .
8.14 13
8.15 Codage dune valeur de type ouvert .
8.16 Codage dune valeur de type instance-de . 14
Codage dune valeur de type valeur de donnée de présentation encapsulée .
8.17 14
O ISO/CEI 1995
Droits de reproduction réservés . Sauf prescription différente. aucune partie de cette publi-
cation ne peut être reproduite ni utilisée sous quelque forme que ce soit et par aucun pro-
y compris la photocopie et les microfilms. sans l'accord
cédé. électronique ou mécanique.
écrit de l'éditeur .
ISO/CEI Copyright Office Case Postale 56 CH-121 1 Genève 20 Suisse
Version française tirée en 1996
Imprimé en Suisse
..
O ISO/CEI ISOKEI 8825-1:1995(F)
Codage dune valeur de type externe .
8.18 15
Codage dune valeur d'identificateur d'objet .
8.19 16
Codage d'une valeur de type chaîne de caractères avec restnction . 17
8.20
8.21 Codage dune valeur de type chaîne de caractères sans restriction . 19
Règles de codage canoniques .
9.1 Formes de longueur .
9.2 Formes de codage des chaînes . 20
9.3 Eléments d'ensemble .
Règles de codage distinctives .
10.1 Formes de longueur .
10.2 Formes de codage des chaînes . 21
10.3 Eléments d'ensemble . 21
11 Restrictions aux règles de codage de base applicables aux règles de codage canoniques et distinctives . 21
11.1 Valeurs booléennes .
11.2 Bits inutilisés .
1 1.3 Valeurs réelles .
11.4 Valeurs du type chaîne générale Generalstring . 22
Eléments d'ensemble et éléments de séquence avec valeur par défaut . 22
11.5
11.6 Eléments d'ensemble-de . 22
1 1.7 Temps généralisé .
12 Utilisation des règles de codage canoniques, distinctives et de base dans une définition de syntaxe de
transfert .
Annexe A . Exemples de codages . 24
A.l Description ASN.1 de la structure de l'enregistrement . 24
A.2 Description ASN.l dune valeur d'enregistrement . 24
A.3 Représentation de la valeur de cet enregistrement . 24
Annexe B - Affectation des valeurs d'identificateur d'objet .
Annexe C - Illustration du codage dune valeur réelle . 27
Annexe D - Utilisation des règles de codage distinctives (DER) et canoniques (CER) en authentification
d'origine des données .
D.l Problème à résoudre . 29
D.2 Approche de la solution . 30
D.3 Optimisation du produit . 30
iii
0 ISO/CEI
ISOKEI 8825-1:1995(F)
Avant-propos
LIS0 (Organisation internationale de normalisation) et la CE1 (Commission élec-
trotechnique internationale) forment ensemble un système consacré à la normali-
sation internationale considérée comme un tout. Les organismes nationaux
membres de 1'ISO ou de la CE1 participent au développement de Normes interna-
tionales par l'intermédiaire des comités techniques créés par l'organisation concer-
née afin de s'occuper des différents domaines particuliers de l'activité technique.
Les comités techniques de I'ISO et de la CE1 collaborent dans des domaines d'inté-
rêt commun. D'autres organisations internationales, gouvernementales ou non
gouvernementales, en liaison avec I'ISO et la CE1 participent également aux tra-
vaux.
Dans le domaine des technologies de l'information, I'ISO et la CE1 ont créé un
comité technique mixte, l'ISO/CEI JTC 1. Les projets de Normes internationales
adoptés par le comité technique mixte sont soumis aux organismes nationaux pour
approbation, avant leur acceptation comme Normes internationales. Les Normes
internationales sont approuvées conformément aux procédures qui requièrent l'ap-
probation de 75 % au moins des organismes nationaux votants.
La Norme internationale ISO/CEI 8825-1 a été élaborée par le comité technique
mixte ISO/CEI JTC 1, Technologies de l'information, sous-comité SC 21, Znter-
ou-
connexion des systèmes ouverts, gestion des données et traitement distribué
vert, en collaboration avec WIT-T. Le texte identique est publié en tant que
Recommandation UIT-T X.690.
C'est une révision de l'ISO/CEI 8825: 1990.
L'ISO/CEI 8825: 1995 comprend les parties suivantes, présentées sous le titre gé-
néral Technologies de l'information - Règles de codage de la notation de syntaxe
un (ASN.1):
abstraite numéro
-
Partie 1: Spécification des règles de codage de base (BER), des règles de
codage canoniques (CER) et des règles de codage distinctives (DER)
-
Partie 2: Spécification des règles de codage condensées
Les annexes A à D de la présente partie de l'ISO/CEI 8825:1995 sont données
uniquement à titre d'information.
iv
0 ISOKEI ISO/CEI 8825-1: 1995(F)
Introduction
Les Rec. UIT-T X.680 I ISO/CEI 8824-1, UIT-T X.681 I ISO/CEI 8824-2, UIT-T X.682 I ISO/CEI 8824-3,
I ISO/CEI 8824-4, (Syntaxe abstraite numéro un ou ASN.l) spécifient une notation de définition de
UIT-TX.683
syntaxes abstraites, permettant aux normes de la couche application de définir les types d'informations nécessaires au
transfert des données au moyen du service de présentation. Elles définissent également une notation pour la spécification
des valeurs de chaque type défini.
La présente Recommandation I Norme internationale définit les règles de codage applicables aux valeurs des types
définis au moyen de la notation ASN. 1. L'application de ces règles de codage produit une syntaxe de transfert pour ces
valeurs. I1 est implicitement entendu que la spécification de ces règles de codage s'applique également au décodage.
Plusieurs ensembles de règles de codage peuvent être appliqués aux valeurs des types définis au moyen de la notation
ASN. 1. La présente Recommandation I Norme internationale définit trois ensembles de règles de codage, appelés règles
de codage de base, règles de codage canoniques et règles de codage distinctives. Alors que les règles de codage de
base offrent au codeur différentes possibilités de codage pour les valeurs, les règles de codage canoniques et distinctives
sélectionnent pour chaque valeur un seul codage parmi les possibilités offertes par les règles de codage de base en
éliminant toutes les options laissées par celles-ci au codeur. Les règles distinctives et les règles canoniques diffèrent par
la nature des restrictions qu'elles imposent aux règles de codage de base.
Les règles distinctives conviennent mieux que les règles canoniques lorsque la valeur codée est suffisamment petite pour
tenir dans la mémoire disponible et lorsqu'il est nécessaire de passer rapidement certaines valeurs encapsulées. Les règles
canoniques sont mieux adaptées que les règles distinctives lorsqu'il est besoin de coder des valeurs si grandes qu'elles
dépassent la capacité mémoire disponible ou lorsqu'il est nécessaire de coder et de transmettre une partie d'une valeur
avant que celle-ci soit disponible dans sa totalité. Les règles de codage de base sont mieux adaptées que les règles de
codage canoniques ou distinctives s'il s'agit de coder une valeur du type ensemble ou ensemble-de sans s'astreindre aux
restrictions que les règles canoniques et distinctives imposent. Ceci est dû au surcroît de mémoire et de calculs que ces
dernières exigent afin de garantir que les valeurs de type ensemble ou ensemble-de n'ont qu'un seul codage possible.
L'Annexe A donne des exemples d'application des règles de codage de base. Elle ne fait pas partie intégrante de la
présente Recommandation I Norme internationale.
L'Annexe B résume les affectations de valeurs d'identificateurs d'objets stipulées dans la présente Recommandation I
Norme internationale. Elle ne fait pas partie intégrante de la présente Recommandation I Norme internationale.
L'Annexe C donne des exemples de l'application des règles de base au codage des réels. Elle ne fait pas partie intégrante
de la présente Recommandation I Norme internationale.
L'Annexe D montre comment utiliser les règles de codage distinctives pour assurer un service d'intégrité pour les
I Norme internationale.
communications OSI. Elle ne fait pas partie intégrante de la présente Recommandation
V
ISOKEI 8825-1 : 1995 (F)
NORME INTERNATIONALE
RECOMMANDATION UIT-T
TECHNOLOGIES DE L'INFORMATION - RÈGLES DE CODAGE
DE LA NOTATION DE SYNTAXE ABSTRAITE NUMÉRO UN (ASN.l):
SPÉCIFICATION DES RÈGLES DE CODAGE DE BASE (BER),
DES RÈGLES DE CODAGE CANONIQUES (CER)
ET DES RÈGLES DE CODAGE DISTINCTIVES (DER)
1 Domaine d'application
La présente Recommandation I Norme internationale spécifie un ensemble de règles de codage de base qui peuvent être
utilisées pour spécifier une syntaxe de transfert pour des valeurs appartenant à des types définis au moyen de la notation
spécifiée dans les Rec. UIT-T X.680 (1994) I ISO/CEI 8824-1:1995, UIT-T X.681 (1994) I ISO/CEI 8824-2:1995,
UIT-T X.682 (1994) I ISO/CEI 8824-3:1995, et UIT-T X.683 (1994) I ISO/CEI 8824-4:1995, appelées collectivement
syntaxe abstraite numéro un ou ASN.l. Ces règles de codage de base s'appliquent également au décodage dune telle
syntaxe de transfert pour identifier les valeurs de données transférées. La Recommandation spécifie également un
ensemble de règles canoniques et distinctives qui restreignent le codage des valeurs à une seule des possibilités
autorisées par les règles de codage de base.
Ces règles de codage sont utilisées au moment de la communication (par le fournisseur du service de présentation,
lorsque le contexte de présentation le requiert).
2 Références normatives
Les Recommandations et les Normes internationales suivantes contiennent des dispositions qui, par suite de la référence
qui y est faite, constituent des dispositions valables pour la présente Recommandation I Norme internationale. Au
moment de la publication, les éditions indiquées étaient en vigueur. Toutes Recommandations et Normes sont sujettes à
révision et les parties prenantes aux accords fondés sur la présente Recommandation I Norme internationale sont invitées
à rechercher la possibilité d'appliquer les éditions les plus récentes des Recommandations et Normes indiquées ci-après.
Les membres de la CE1 et de l'IS0 possèdent le registre des Normes internationales en vigueur. Le Bureau de la
normalisation des télécommunications de l'UT tient à jour une liste des Recommandations de I'UIT-T en vigueur.
Recommandations et Normes internationales identiques
2.1
- Recommandation UIT-T X.200 (1994) I ISO/CEI 7498-1:1994, Technologie de l'information -
Interconnexion des systèmes ouverts - Modèle de référence de base: Le modèle de référence de base.
- Recommandation UIT-T X.226 (1994) I ISO/CEI 8823-1:1994, Technologie de l'information -
Interconnexion des systèmes ouverts - Protocole de présentation en mode connexion: Spécification du
protocole.
-
Recommandation UIT-T X.680 (1994) I ISO/CEI 8824-1: 1995, Technologie de l'information - Notation
de syntaxe abstraite numéro un: Spécification de la notation de base.
-
Recommandation UIT-T X.681 (1994) I ISO/CEI 8824-2: 1995, Technologies de I'infomtion - Notation
de syntaxe abstraite numéro un: Spéci@cation des objets informationnels.
-
Recommandation UIT-T X.682 (1994) I ISOICEI 8824-3:1995, Technologies de l'information - Notation
de syntaxe abstraite numéro un: Spécification des contraintes.
-
Recommandation UIT-T X.683 (1994) I ISO/CEI 8824-4: 1995, Technologie de l'information - Notation
de syntaxe abstraite numéro un: Paramétrage des spécifications de la notation de syntaxe abstraite
numéro un.
Rec. UIT-T X.690 (1994 F)
ISOKEI 8825-1 : 1995 (F)
2.2 Autres références
IS0 Registre international des jeux de caractères codés à utiliser avec la séquence d'échappement.
ISOKEI 2022: 1994, Technologies de l'information - Structure de code de caractères et techniques
d'extension.
IS0 6093: 1985, Traitement de l'information - Représentation des valeurs numériques dans les chaînes de
caractères pour l'échange d'information.
ISOKEI 6429: 1992, Technologies de l'information - Fonctions de commande pour les jeux de caractères
codés.
Recommandation X.208 du CCITT (1988), Spécification de la syntaxe abstraite numéro un (ASN.1).
ISOKEI 8824-1 à 8824-4: 1990, Technologies de l'information - Interconnexion de systèmes ouverts -
Spécification de la notation de syntaxe abstraite numéro un.
ISOKEI 10646-1: 1993, Technologies de l'information - Jeu universel de caractères codés à plusieurs
octets - Partie I: Architecture et table multilingue.
3 Définitions
Pour les besoins de la présente Recommandation I Norme internationale, les définitions données par IS0 7498 et par la
Rec. UIT-T X.680 I ISOKEI 8824-1 sont utilisées et les termes suivants sont définis.
conformité dynamique: Déclaration de la nécessité pour une réalisation de se conformer au comportement
3.1
prescrit par la présente Recommandation I Norme internationale au cours dune instance de communication.
3.2 conformité statique: Déclaration de la nécessité pour une réalisation de présenter un ensemble valide de
caractéristiques, parmi celles définies par la présente Recommandation I Norme internationale.
3.3 valeur de données: Information spécifiée comme valeur dun type, le type et la valeur étant définis en ASN. 1.
3.4 codage (d'une valeur de données): Séquence d'octets complète utilisée pour représenter la valeur de données.
champ d'identification: Partie du codage dune valeur de données servant à identifier le type de la valeur.
3.5
NOTE - Certaines Recommandations UIT-T utilisent l'expression "élément de données" pour désigner cette séquence;
cette expression n'est pas utilisée dans la présente Recommandation I Norme internationale, car d'autres Recommandations I Normes
internationales l'utilisent au sens de "valeur de données".
3.6 champ de longueur: Partie du codage dune valeur de données placée à la suite du champ d'identification, et
servant à déterminer la longueur du codage.
champ de contenu: Partie du codage dune valeur de données représentant une valeur particulière qui la
3.7
distingue des autres valeurs du même type.
champ de fin de contenu: Partie du codage dune valeur de données placée à sa fin et servant à indiquer la fin
3.8
du codage.
NOTE - Les codages ne nécessitent pas tous des octets de fin de contenu.
3.9 codage primitif: Codage dune valeur de donnée dans lequel le champ de contenu représente directement la
valeur.
3.10 codage structuré: Codage dune valeur de donnée dans lequel le champ de contenu est le codage complet
d'une ou plusieurs autres valeurs de données.
3.11 destinataire: Réalisation décodant la séquence générée par un expéditeur pour déterminer la valeur de données
qui a été codée.
3.12
expéditeur: Réalisation codant une valeur de donnée pour la transférer.
2 R~c. UIT-T X.690 (1994 F)
ISOKEI 8825-1 : 1995 (F)
bit de fin à O: Bit à O en dernière position dune valeur de chaîne binaire.
3.13
NOTE - Le O dune valeur de chaîne binaire constituée dun bit unique de valeur nulle est un bit de fin à O. Sa suppression
transforme la chaîne en une chaîne vide.
4 Abréviations
ASN. 1 Notation de syntaxe abstraite numéro un (abstract syntax notation one)
BER Règles de codage de base (de 1'ASN. 1) (basic encoding rules)
CER Règles de codage canoniques (de I'ASN. 1) (canonical encoding rules)
Règles de codage distinctives (de I'ASN. 1) (distinguished encoding rules)
DER
ULA Architecture des couches supérieures (upper layer architecture)
Notation
l5
La présente Recommandation I Norme internationale reprend la notation définie par la Rec. UIT-T X.680 I
ISOKEI 8824- 1.
6 Conventions
La présente Recommandation I Norme internationale spécifie les bits de chaque octet codé en utilisant les
6.1
expressions "bit le plus significatif' et "bit le moins significatif '.
NOTE - Les spécifications des couches inférieures utilisent la même notation pour définir l'ordre de transmission des bits
sur une ligne série ou l'affectation des bits sur des voies parallèles.
6.2 Aux fins de la présente Recommandation I Norme internationale, les bits dun octet sont numérotés de 8 à 1, le
bit 8 étant "le plus significatif' et le bit 1 "le moins significatif'.
6.3 I1 est possible aux fins de la présente Recommandation I Norme internationale de comparer deux chaînes
d'octets. Deux chaînes d'octets sont égales si elles ont la même longueur et si les octets de même rang sont identiques.
Une chaîne d'octets SI est supérieure à une chaîne S2 si et seulement si:
soit S1 et S2 ont tous leurs octets de même rang égaux jusqu'à l'octet final de S2 inclusivement, mais S1 est
a)
plus longue que S2;
soit S1 et S2 diffèrent par un ou plusieurs octets de même rang, l'octet de S1 de la première position de
b)
différence étant supérieur à son homologue de S2, les octets étant considérés comme des nombres binaires
non signés dont le bit n est de poids 2"-'.
Conformité
e'
à 12 inclusivement.
7.1 La conformité dynamique est spécifiée par les articles 8
La conformité statique est définie par les normes qui spécifient l'application dune ou plusieurs de ces règles de
7.2
codage.
Les règles de base autorisent des variantes de codage sur option de l'expéditeur. Les destinataires déclarant être
7.3
conformes aux règles de codage de base prendront en charge toutes les variantes possibles.
NOTE - Des exemples de ces variantes de codage figurent au 8.1.3.2 b) et au Tableau 3.
7.4 Aucune variante de codage n'est autorisée par les règles de codage canoniques et les règles de codage
distinctives.
Règles de codage de base
8.1 Règles générales de codage
8.1.1 Structure d'un codage
8.1.1.1 Le codage dune valeur de données comporte quatre composantes apparaissant dans l'ordre suivant:
a) champ d'identification (voir 8.1.2);
Rec. UIT-T X.690 (1994 F) 3
ISOKEI 8825-1 1995 (F)
champ de longueur (voir 8.1.3);
b)
champ de contenu (voir 8.1.4);
c)
champ de fin de contenu (voir 8.1.5).
d)
8.1.1.2 Le champ de fin de contenu ne figurera que lorsque la valeur du champ de longueur en exige la présence
(voir 8.1.3).
1 présente la structure d'un codage (primitif ou structuré). La Figure 2 présente une variante de
8.1.1.3 La Figure
codage structuré.
8.1.2 Champ d'identification
8.1.2.1 Le champ d'identification code l'étiquette ASN. 1 (classe et numéro) du type de la valeur de données.
Champ
Champ de contenu
Champ de longueur
d'identification
Nombre d'octets
dans le champ de contenu
(voir 8.1.3.2)
I
llS04830-94/dOl
Figure 1 - Structure d'un codage
Champ
Champ de longueur Champ de contenu Séquence de fin de contenu
dldentificaiion
Indique que le champ Indique qu'il n'y a plus
se termine d'autres codages dans le
de contenu
champ de canimu
par une séquence de
fin decontenu
(vdr 8.1.3.6)
Figure 2 - Variante de codage structuré
8.1.2.2 Pour les étiquettes ayant un numéro entre O et 30 (inclusivement), le champ d'identification comprendra un
seul octet codé comme suit:
les bits 8 et 7 représentent la classe de l'étiquette conformément au Tableau 1;
a)
le bit 6 prend la valeur O ou 1, conformément aux règles du 8.1.2.5;
b)
les bits 5 à 1 représentent la valeur binaire du numéro de l'étiquette, le bit 5 étant le bit le plus significatif.
c)
Rec. UIT-T X.690 (1994 F)
ISWCEI 8825-1 : 1995 (F)
Tableau 1 - Codage de la classe de l'étiquette
Classe Bit 8 Bit 7
Universelle O O
Propre à une application O 1
Spécifique au contexte 1 O
1 1
A usage privé
8.1.2.3 La Figure 3 présente la forme du champ d'identification d'un type dont l'étiquette a un numéro compris entre O
et 30.
I
Octet d'identification
Bits
Numéro d'étiquette
O = Type primitif
1 =Type structuré
I1
I'
TIS04850-94ldi
Figure 3 - Champ d'identification 2i un octet (étiquette de petit numéro)
8.1.2.4 Pour les étiquettes de numéro supérieur ou égal à 31, l'identificateur est composé dun octet de tête, suivi dun
ou de plusieurs autres octets.
8.1.2.4.1 L'octet de tête est codé comme suit:
les bits 8 et 7 représentent la classe de l'étiquette conformément au Tableau 1;
a)
le bit 6 prend la valeur O ou 1, conformément aux règles du 8.1.2.5;
b)
les bits 5 à 1 reçoivent la valeur 11 11 12.
c)
8.1.2.4.2 Les octets suivants représenteront le numéro de l'étiquette codé comme suit:
le bit 8 de chaque octet prendra la valeur 1, sauf s'il s'agit du dernier octet de l'identificateur;
a)
les bits 7 à 1 du premier octet suivant, suivis des bits 7 à 1 du deuxième octet à la suite, suivis à leur tour
b)
des bits 7 à 1 de chacun des octets suivants, jusques et y compris le dernier octet de l'identificateur,
recevront un entier binaire non signé égal au numéro de l'étiquette, le bit 7 du premier octet étant le bit de
plus fort poids;
les bits 7 à 1 du premier octet ne doivent pas tous être à zéro.
c)
8.1.2.4.3 La Figure 4 présente la structure du champ d'identification pour un type portant une étiquette de numéro
supérieur à 30.
Rec. UIT-T X.690 (1994 F) 5
ISOKEI 8825-1 : 1995 (F)
Octets suivants
4 b
Dernier octet
Octet de tête 2e octet
4 b4 t----+
P/C 1 1 1 1 1
Classe
n+nioo = Numéro d'étiquette
TIS04860-94/404
Le bit 6 sera mis à O si le codage est de type primitif; et à 1 s'il est de type structuré.
8.1.2.5
NOTE - Les articles suivants précisent pour chaque type si le codage est primitif ou structuré.
La Rec. UIT-T X.680 I ISOKEI 8824-1 spécifie que l'étiquette dun type défini au moyen du mot clé
8.1.2.6
"CHOICE" prend la valeur de l'étiquette du type auquel appartient la valeur de donnée choisie.
8.1.2.7 Les paragraphes 14.2 et 14.4 de la Rec. UT-T X.681 I ISO/CEI 8824-2 spécifient que l'étiquette dun type
défini au moyen du type ouvert "ObjectClassFieldType" (type champ de classe d'objets) est indéterminée s'il s'agit dun
champ de type, dun champ de valeur de type variable, ou dun champ densemble de valeurs de type variable. Ce type est
par conséquent défini comme un type ASN. 1, et le codage complet est alors identique à celui dune valeur du type affecté
(y compris le champ de l'identificateur).
8.1.3 Champ de longueur
8.1.3.1 Deux formes de champs de longueur sont spécifiées:
la forme définie (voir 8.1.3.3);
a)
la forme indéfinie (voir 8.1.3.6).
b)
8.1.3.2 Un expéditeur utilisera:
la forme définie (voir 8.1.3.3) si le codage est primitif;
a)
au choix la forme définie (voir 8.1.3.3) ou la forme indéfinie (voir 8.1.3.6) si le codage est structuré et
b)
immédiatement disponible dans son entier;
la forme indéfinie (voir 8.1.3.6) si le codage est structuré et pas immédiatement disponible dans son
c)
entier.
8.1.3.3 Pour la forme définie, le champ de longueur comportera un ou plusieurs octets, et représentera le nombre
d'octets du champ de contenu, en utilisant au choix de l'expéditeur la forme courte (voir 8.1.3.4) ou la forme longue
(voir 8.1.3.5).
NOTE - La forme courte ne peut être utilisée que si le nombre des octets du champ de contenu est inférieur ou égal à 127.
8.1.3.4 Dans la forme courte, le champ de longueur comporte un seul octet dans lequel le bit 8 a la valeur zéro et les
bits 7 à 1 représentent le nombre d'octets du champ de contenu (éventuellement zéro) sous forme dun entier binaire non
signé, le bit 7 ayant le poids le plus fort.
Exemple
L = 38 peut être codé 001001 102.
8.1.3.5 Dans la forme longue, le champ de longueur comprend un octet initial suivi dun ou plusieurs octets. L'octet
initial est codé comme suit:
le bit 8 est à un;
a)
6 RN. UIT-T X.690 (1994 F)
ISOKEI 8825-1 : 1995 (F)
les bits 7 à 1 représentent le nombre des octets suivants du champ de longueur, sous forme dun entier
b)
binaire non signé, le bit 7 ayant le poids le plus fort;
la valeur 11 11 11 112 ne sera pas utilisée.
c)
NOTE 1 - Cette restriction est introduite en vue dune future extension possible.
Les bits 8 à 1 du premier octet suivant, suivis des bits 8 à 1 du deuxième octet suivant, suivis ainsi de suite des bits 8 à 1
de chacun des octets suivants jusques et y compris le dernier octet suivant, représentent sous forme d'un entier binaire
non signé le nombre d'octets du champ de contenu, le bit 8 du premier octet suivant ayant le poids le plus fort.
Exemple
L = 201 sera codé:
10000001~ 11001001~
NOTE 2 - Dans la forme longue, l'expéditeur peut choisir d'utiliser plus d'octets pour le champ de longueur que le
minimum nécessaire.
Dans la forme indéfinie, le champ de longueur, qui ne comporte alors qu'un seul octet, indique que le champ
8.1.3.6
de contenu est terminé par une séquence de fin de contenu (voir 8.1.5).
8.1.3.6.1 Cet octet aura son bit 8 à un et ses bits 7 à 1 à zéro.
8.1.3.6.2 Si la forme longue est utilisée, la séquence de fin de contenu (voir 8.1.5) figurera dans le codage à la suite du
champ de contenu.
8.1.4 Champ de contenu
Le champ de contenu comportera zéro, un ou plusieurs octets et représentera la valeur de données conformément au
codage spécifié dans les articles suivants.
NOTE - Le champ de contenu dépend du type de la valeur de données; les articles ci-dessous suivent l'ordre des
définitions des types dans l'ASN.l.
8.1.5 Séquence de fin de contenu
La séquence de fin de contenu figurera dans le codage si la longueur est codée conformément au 8.1.3.6; sinon, elle n'y
figurera pas.
La séquence de fin de contenu sera constituée de deux octets mis à zéro.
NOTE - La séquence de fin de contenu peut être considérée comme le codage dune valeur dont l'étiquette est de classe
à zéro et le contenu absent:
universelle, la forme primitive, le numéro d'étiquette égal
Identificateur
Contenu
Longueur
= fin de contenu
0016 Néant
8.2 Codage d'une valeur booléenne
8.2.1 Le codage dune valeur booléenne sera de forme primitive. Le champ de contenu comportera un seul octet.
8.2.2 Si la valeur booléenne est égale à "Faux", l'octet prendra la valeur zéro.
Si la valeur booléenne est égale ", l'octet prendra n'importe quelle valeur différente de zéro, au choix de
l'expéditeur.
Rec. UIT-T X.690 (1994 F) 7
ISOKEI 8825-1 : 1995 (F)
Exemple - Si elle est de type BOOLEAN, la valeur "Vrai" peut être codée:
Identificateur
Longueur Contenu
I = booléen
I I I
o1 16 0116
8.3 Codage d'une valeur entière
Le codage dune valeur entière est de forme primitive. Le champ de contenu comportera un ou plusieurs octets.
8.3.1
Si le champ de contenu du codage dun entier comporte plus dun octet, les bits du premier octet et le bit 8 du
8.3.2
deuxième octet:
ne seront pas tous des 1;
a)
ne seront pas tous des O.
b)
NOTE - Ces règles assurent le codage dune valeur entière sur le plus petit nombre d'octets.
8.3.3 Le champ de contenu sera la représentation binaire en complément à deux de l'entier, et sera composé des bits
8 à 1 du premier octet, suivis des bits 8 à 1 du deuxième octet, et ainsi de suite jusques et y compris le dernier des octets
du champ de contenu.
NOTE - La valeur dun nombre représenté en notation binaire en complément à deux est obtenue en numérotant les bits des
octets du champ de contenu à partir du bit 1 du dernier octet (bit O) jusqu'au bit 8 du premier octet. A chaque bit est affecté un poids
de 2N correspondant à son rang N. La valeur du nombre est obtenue en faisant la somme des valeurs numériques affectées à chacun
des bits mis à un (sauf le bit 8 du premier octet), de laquelle on retranche la valeur affectée au bit 8 du premier octet si celui-ci est à
un.
8.4 Codage d'une valeur énumérée
Le codage dune valeur énumérée est celui de l'entier auquel elle est associée.
NOTE - I1 s'agit dune forme primitive.
8.5 Codage d'une valeur réelle
8.5.1 Le codage dune valeur réelle est de forme primitive.
8.5.2 Si le réel a la valeur zéro, le codage ne comportera pas de champ de contenu.
8.5.3 Si le réel est différent de zéro, il sera représenté dans une base IB' choisie par l'expéditeur. Si B' est égal à 2, 8
ou 16, le codage binaire spécifié au 8.5.5 sera utilisé. Si B' est égal à 10, le codage caractère spécifié au 8.5.6 sera utilisé.
NOTE - La forme utilisée pour l'enregistrement, la génération ou le traitement par les expéditeurs ou les destinataires et la
forme utilisée dans la notation de valeur ASN. 1, sont toutes indépendantes de la base utilisée en transfert.
8.5.4 Le bit 8 du premier octet du champ de contenu sera codé comme suit:
bit 8 = 1: le codage binaire spécifié au 8.5.5 s'applique;
a)
bit 8 = O et bit 7 = O: le codage décimal spécifié au 8.5.6 s'applique;
b)
bit 8 = O et bit 7 = 1: une valeur réelle spéciale "SpecialRealValue" (voir la Rec. UIT-T X.680 I
c)
ISOKEI 8824-1) est codée conformément au 8.5.7.
8.5.5 Lorsqu'un codage binaire est utilisé (bit 8 = 1) et que la mantisse M est différente de zéro, la valeur sera
représentée par un signe S, un entier non négatif N et un facteur déchelle F:
M = S x N x 2F
avec: OIF<4,
et s =fl
8 Ra. UIT-T X.690 (1994 F)
ISO/CEI 8825-1 1995 (F)
NOTE - Le facteur d'khelle binaire F est nécessaire dans certaines circonstances pour aligner le point implicite de la
mantisse sur la position imposée par les règles de codage. Cet alignement ne peut pas toujours être assuré par l'exposant E. En effet, si
la base B' utilisée dans le codage est égale à 8 ou à 16, le point implicite ne peut être déplacé respectivement que par pas de 3 ou
4 bits par modification de la composante E. I1 sera donc parfois nécessaire d'utiliser un facteur d'échelle binaire F différent de O pour
déplacer le point implicite jusqu'à la position requise.
8.5.5.1 Le bit 7 du premier octet du champ de contenu sera mis à 1 si S = -1, et à O sinon.
8.5.5.2 Les bits 6 et 5 du premier octet du champ de contenu représenteront la valeur de la base B' codée comme suit:
Bits 6 et 5 Base
O0 base 2
O1 base 8
10 base 16
11 Réservé aux versions ultérieures de la présente Recommandation I Norme internationale
8.5.5.3 Les bits 4 et 3 du premier octet du champ de contenu représentent la valeur du facteur d'échelle F sous la forme
dun entier binaire non signé.
Les bits 2 et 1 du premier octet du champ de contenu représentent le format de l'exposant codé comme suit:
8.5.5.4
si les bits (2, 1) valent 00, le deuxième octet du champ de contenu contient la valeur de l'exposant en
a)
représentation binaire en complément à deux;
si les bits (2, 1) valent 01, le deuxième et le troisième octet du champ de contenu contiennent la valeur de
b)
l'exposant en représentation binaire en complément à deux;
si les bits (2, 1) valent 10, le deuxième, le troisième et le quatrième octet du champ de contenu
c)
contiennent la valeur de l'exposant en représentation binaire en complément à deux;
si les bits (2, 1) valent 11, le deuxième octet de contenu représente le nombre d'octets, disons X, (sous
d)
forme dun entier binaire non signé) utilisé pour coder la valeur de l'exposant, et les troisièmes à (X + 3)e
(compris) octets de contenu représentent la valeur de l'exposant sous la forme d'un entier binaire en
complément à deux, la valeur de X étant au moins égale à un; les neuf premiers bits de l'exposant transmis
ne doivent pas être tous à O ni tous à 1.
8.5.5.5 Les octets restants du champ de contenu représentent la valeur de l'entier N (voir 8.5.5) sous la forme dun
entier binaire non signé.
NOTES
1 Dans les règles de codage de base (BER) non canoniques, il n'est pas prescrit de normaliser la virgule flottante de la
mantisse. Ceci permet au concepteur de transmettre le champ de la mantisse sans avoir à en déplacer préalablement les octets en
mémoire. Quant aux règles de codage canoniques et aux règles de codage distinctives, la position de la virgule flottante y est
normalisée, et il faut déplacer itérativement les octets de la mantisse (à moins que celle-ci soit nulle) jusqu'à ce que le bit le moins
significatif soit égal à 1.
2 Cette représentation des nombres réels est très différente des formats normalement utilisés dans les calculateurs à
virgule flottante, mais elle est conçue pour faciliter la conversion vers ou depuis de tels formats (voir Annexe C).
8.5.6 Quand le codage décimal est utilisé (bits 8 et 7 = 00), tous les octets du champ de contenu venant à la suite du
premier octet de ce champ constituent un champ, au sens de IS0 6093, de longueur choisie par l'expéditeur et codé
conformément à cette norme. Le type de représentation IS0 6093 utilisé est indiqué par les bits 6 à 1 du premier octet du
champ de contenu:
Bits 6 à I Représentation des nombres
O0 O001 Forme NR1 IS0 6093
O0 O010 Forme NR2 IS0 6093
O0 O01 1 Forme NR3 IS0 6093
Les valeurs restantes des bits 6 à 1 sont réservées à l'usage des versions ultérieures de la présente Recommandation
Norme internationale.
La documentation associée ne doit pas spécifier de facteur dechelle (voir IS0 6093).
NOTES
1 Comme IS0 6093, la présente Recommandation I Norme internationale préconise de garder au moins un chiffre à
gauche de la virgule décimale sans que ceci soit obligatoire.
L'utilisation de la forme normalisée (voir IS0 6093) est au choix de l'expéditeur et n'a pas de signification
particulière.
Rec. UIT-T X.690 (1994 F) 9
ISO/CEI 8825-1 : 1995 (F)
8.5.7 S'il faut coder une valeur réelle spéciale "SpecialRealValues" (bits 8 à 7 = Ol), le champ de contenu
comportera un seul octet pouvant prendre les valeurs suivantes:
01OOOOOO la valeur est PLUS-INFINITY (+CO)
01OOOOOl la valeur est MINUS-INFINITY (-CO)
Toutes les autres valeurs avec les bits 8 et 7 égaux à O1 sont réservées aux versions ultérieures de la présente
Recommandation I Norme internationale.
8.6 Codage d'une valeur de type chaîne binaire
8.6.1 La représentation dune valeur de type chaîne binaire est un codage primitif ou structuré, au choix de
l'expéditeur.
NOTE - S'il faut transférer une partie dune chaîne binaire avant que la chaîne complète ne soit disponible, il faut utiliser le
codage structuré.
8.6.2 Le champ de contenu du codage primitif contient un octet initial suivi de zéro, un ou plusieurs octets.
8.6.2.1 La chaîne binaire, depuis le premier bit jusqu'au dernier, doit être placée dans les bits 8 à 1 du premier octet
suivant, suivis des bits 8 à 1 de l'octet d'après, puis des bits 8 à 1 de chacun des octets suivants, suivis d'autant de bits que
nécessaire dans le dernier octet, en commençant par le bit 8.
NOTE - Les termes "premier bit" et "dernier bit" sont définis dans la Rec. UIT-T X.680 I ISO/CEI 8824-1.
8.6.2.2 Le premier octet indiquera le nombre de bits non utilisés dans l'octet final sous la forme d'un entier binaire
avec le bit de plus faible poids en position 1. Ce nombre appartient à l'intervalle [0.7].
8.6.2.3 Si la chaîne binaire est vide, l'octet initial sera mis à O et ne sera suivi d'aucun octet.
8.6.2.4 Lorsque les dispositions du paragraphe 19.7 de la Rec. UIT-T X.680 I ISOKEI 8824-1 s'appliquent, un
codeur/décodeur conforme aux règles BER peut ajouter ou supprimer des bits de fin à O de la valeur transmise.
NOTE - Si une valeur de chaîne binaire ne comporte pas de bits à 1, le codeur peut (au choix de l'expéditeur) coder la
valeur sur une longueur nulle sans champ de contenu, ou la coder sous la forme d'une chaîne binaire comportant un ou plusieurs bits
nuls.
8.6.3 Le champ de contenu du codage structuré comporte zéro, une ou plusieurs valeurs codées encapsulées.
NOTE - Chacune de ces valeurs codées comprend des champs d'identification, de longueur, de contenu, et éventuellement
de fin de contenu.
8.6.4 Pour coder une valeur de chaîne binaire de cette façon, il faut la segmenter. Chaque segment est constitué
d'une série de bits consécutifs de la valeur et contient (sauf éventuellement le dernier segment) un nombre de bits
multiple de huit. Chaque bit de la valeur globale se trouve dans un et un seul segment, mais aucune signification ne doit
être accordée aux limites des segments.
NOTE -Un segment peut être de taille nulle, c'est-à-dire qu'il peut ne contenir aucun octet.
8.6.4.1 Dans le champ de contenu, chaque codage représente un segment de la chaîne binaire totale, le codage
résultant dune application récursive du présent point. Dans cette application récursive, chaque segment est traité comme
s'il s'agissait dune chaîne binaire. Les segments codés figureront dans le champ de contenu dans l'ordre dans lequel leurs
bits apparaissent dans la valeur globale.
NOTES
1 Par suite de cette récursivité, chaque codage de champ de contenu peut être lui-même de type primitif ou structuré.
Toutefois, les codages de ce genre seront généralement de type primitif.
2 En particulier, les étiquettes de champ de contenu seront toujours de classe universelle, numéro 3.
10 Rw. UIT-T X.690 (1994 F)
ISOKEI 8825-1 : 1995 (F)
8.6.4.2 Exemple - Si elle est du type chaîne binaire, la valeur 'OA3B5F291CD" peut être codée co
...

Questions, Comments and Discussion

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

Loading comments...