Abstract Syntax Notation One (ASN.1) is standard for describing data structures in telecommunication and computer networking world. ASN.1 provides a set of formal rules for describing the structure of objects. Specification describe abstract objects, that are independent of machine-specific encoding techniques.

ASN defined data can be encoded using on of encoding rules:

  • Basic Encoding Rules (BER)

  • Canonical Encoding Rules (CER)

  • Distinguished Encoding Rules (DER)

  • XML Encoding Rules (XER)

  • Packed Encoding Rules (PER)

  • Generic String Encoding Rules (GSER)

ASN.1 together with specific ASN.1 encoding rules facilitates the exchange of structured data especially between application programs over networks by describing data structures in a way that is independent of machine architecture and implementation language.

ASN encoded data looks logicaly as follows:

 Red Hat

Encoded data structure contains three elements:

  • Tag - unique value, which identifies type of data. Tag carries some additional info - like complexity indicator and context indicator. Actual tag value is unique for single ASN definition(aside some basic tag values which are defined in ASN specification)

  • Length - indicates length of current data structure

  • Payload - depending on definition this can be simple value - like integer or it can carry another ASN encoded data structure.

Mobicents ASN Library