ASN.1 (Abstract Syntax Notation One) est un standard international spécifiant une notation destinée à décrire des structures de données dans le secteur des télécommunications et des réseaux informatiques. La description en ASN.1 d'une structure de données a pour but d'obtenir une spécification de la structure qui est indépendante d'un encodage lié à un matériel particulier et sans ambiguïté. L'ASN.1 est un standard défini conjointement par l'organisation internationale de normalisation, la commission électrotechnique internationale et l'union internationale des télécommunications. La notation est décrite dans la série X.680 et les encodages dans la série X.690. ASN.1 est une notation pour déclarer des types de données. Cette notation ne décrit pas comment manipuler une variable basée sur un type ASN.1. Certains langages supportent nativement ASN.1 comme le langage de modélisation exécutable SDL (Specification and Description Language) ou comme la notation de test de conformité TTCN-3 (Testing and Test Control Notation). Dans ces deux langages il suffit d'importer un module ASN.1 et on peut alors déclarer une variable basée sur un des types déclarés dans le module ASN.1. Si le langage que l'on souhaite utiliser ne supporte pas nativement l'ASN.1, on peut utiliser des outils qui transforment la déclaration ASN.1 dans une déclaration d'un langage de programmation comme un header C. Il existe plusieurs règles d'encodage standards pour les données décrites par l'ASN.1. Le standard propose les règles suivantes : Basic Encoding Rules (BER) Distinguished Encoding Rules (DER) (CER) Packed Encoding Rules (PER, unaligned: UPER, canonical: CPER, canonical unaligned: CUPER) (ECN) (XER) Canonical XML Encoding Rules (CXER) Extended XML Encoding Rules (E-XER) Octet Encoding Rules (OER, canonical: COER) JSON Encoding Rules (JER) Generic String Encoding Rules (GSER) L'Encoding Control Notation permet à l'utilisateur de définir son propre encodage de manière standard. Client ::= SEQUENCE { nom PrintableString (SIZE (1..
Martin Alois Rohrmeier, Johannes Hentschel
Martin Odersky, Eugene Burmako, Dmytro Petrashko
Giovanni De Micheli, Yusuf Leblebici, Alessandro Cevrero, Kiarash Gharibdoust, Giulia Beanato