ASN.1

advertisement
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
Download