ASN.1 Abstract Syntax Notation One ASN.1 is a standard way to describe a message(a unit application data) that can be sent or received in a network. PKI2001 (TIFR, Mumbai) ASN.1 is divided into two parts: 1. The rules of syntax for describing the contents of a message in terms of data type and content sequence or structure. 2. How you actually encode each data item in a message. Jump to first page Why Care about Technical Architecture & Standards? If you want Application Portability You must standardize APIs Implementation Interoperability Protocols Implementation Replaceability All PKI2001 (TIFR, Mumbai) Jump to first page ASN.1 Encoding PKI2001 (TIFR, Mumbai) Given any ASN.1 description of a message, a representation can be derived mechanically by applying a set of encoding rules. Initially only a single set, the Basic Encoding Rules(BER), were standardized. Later Canonical and Distinguished Encoding Rules were standardized Jump to first page Encoding Abstract Values When any (correct) set of encoding rules are applied to the abstract values in any given ASN.1 type, they will produce bit-patterns (actually octet strings) for each value such that any given octet string corresponds to precisely one abstract value. The reverse is not necessarily true. PKI2001 (TIFR, Mumbai) Jump to first page ASN.1 data types PKI2001 (TIFR, Mumbai) ASN.1 notation is recognizable as a high level definition language. It is constructed in modules with unique identifiers. There are over 20 built-in identifiers e.g. BOOLEAN, INTEGER, ENUMERATED, REAL, BIT STRING, UTCTime, EXTERNAL, OCTET STRING, NULL etc. Jump to first page Arbitrarily complex structures can be built up from these data types using constructors such as : SET{ } - order not significant SEQUENCE { } -fixed order one example, PKI2001 (TIFR, Mumbai) WeatherReport { stationNumber timeOfReport pressure temperature humidity windVelocity windDirection } ::=SEQUENCE INTEGER(1..99999) UTCTime INTEGER(850..1100) INTEGER(-100..60) INTEGER(0..100) INTEGER(0..500) INTEGER(0..48) Jump to first page TLV PKI2001 (TIFR, Mumbai) (type-length-value) , ILC (identifier - length - contents) BER generate encodings which are of a class known as type length - value. Now in ASN.1 they are called as identifier - length - contents. The structure is therefore recursive such that the contents can be a series of ILCs This bottoms out with genuine contents such as a text string or an integer. Jump to first page Basic Encoding Rules A Schematic Representation PKI2001 (TIFR, Mumbai) Jump to first page The use of ASN.1 Compilers PKI2001 (TIFR, Mumbai) Jump to first page