previous parent next

2. Notation de syntaxe abstraite

2.1. Introduction

La notation de syntaxe abstraite ASN.1 est une langage formel :

Normalisé par le CCITT X.208 et ISO IS 8824.

La notation ASN.1 est basée sur la notion de type :

La notation de syntaxe abstraite ASN.1 est décrite sous la forme BNF ("Backus-Naur form")

2.2. La notation

    2.2.1 Présentation

Pour chaque objet échangé, on distingue :

Il existe des types simples et des types composés.

La norme ASN.1 définit des types prédéfinis :

De nouveaux types (simples ou composés) peuvent être construits à partir d'autres types :

À chaque type est associé une étiquette (Tag) qui l'identifie :

 

On distingue quatre classes d'étiquettes (Tag class) :

Deux rôles d'ASN-1 :

2.3. Un exemple

    2.3.1 La description informelle d'objets

L'enregistrement d'un employé :

Nom : Paul Durand

Emploi : professeur

Numéro d'employé : 51

Date d'embauche : 14 Juillet 1789

Nom de l'épouse : Anne-marie Martin

Nombre d'enfants : 2

de son premier enfant :

Nom : Marc Durand

Date de naissance : 11 Novembre 1914

de son deuxième enfant :

Nom : Paulette Dupont

Date de naissance : 8 Mai 1945

    2.3.2 La description en ASN-1 de ces objets (leur valeur)

L'enregistrement :

{ nom { prenom "Paul", nom "Durand" },

emploi "professeur",

numéroDemploye 51,

dateDembauche 17890714090000.0,

nomDeLepouse { prenom "Anne-marie", nom "Martin"},

enfants {

{ nom { prenom "Marc", nom "Durand" },

dateDeNaissance 1811110800Z,

}

{ nom {prenom "Paulette", nom "Dupont" },

dateDeNaissance 450508070001Z, }

}

}

}

 

Automatic Tagging on !

    2.3.3 La description en ASN.1 du type de ces objets

Employe DEFINITIONS ::= BEGIN

EnregistrementDemploye ::= [APPLICATION 0] SET

{ nom Nom,

emploi VisibleString,

numeroDemploye NumeroDemploye,

dateDembauche GeneralizedTime,

nomDeLepouse Nom,

enfants SEQUENCE OF Enfant DEFAULT {}

}

 

Enfant ::= SET

{ nom Nom,

dateDenaissance UTCTime

}

 

Nom ::= [APPLICATION 1] SEQUENCE

{ prenom VisibleString,

nom VisibleString

}

 

NumeroDemploye ::= [APPLICATION 2] INTEGER

 

END -- du module Employe

 

 

2.4. La syntaxe

Les commentaires :

Le module

La description de type :

La description de champ des types composés :

Type/nom : syntaxiquement les types commencent par une majuscule, les noms non !

Les type prédéfinis :

Les types construits :

La classe des étiquettes (entre crochets) :

Les constructeurs :

Autres

 

2.5 - Les types universels de ASN.1

 

UNIVERSAL Type

Code

Commentaire (constructeur)

BOOLEAN

1

 

INTEGER

2

 

BIT STRING

3

(O/N)

OCTET STRING

4

 

NULL

5

donnée sans valeur

OBJECT IDENTIFIER

6

 

ObjectDescriptor

7

 

EXTERNAL

8

signale un changement de contexte (O)

REAL

9

 

ENUMERATED

10

 

SEQUENCE (OF)

16

2 versions (O)

SET (OF)

17

2 versions (O)

NumericString

18

 

PrintableString

19

 

TeletexString

20

 

VideotexString

21

 

IA5String

22

codage ASCII

UTCTime

23

 

GeneralizedTime

24

 

GraphicString

25

 

VisibleString

26

 

GeneralString

27

 

 

previous parent next