Basic Encoding Rules
Introduzione
Basic Encoding Rules, abbreviata BER è una codifica rappresentante una serie di regole per la conversione di dati eterogenei in flussi di bytes.
La codifica BER è associata allo standard ASN.1 ed è utilizzata per le comunicazioni SNMP e LDAP.
Il sistema di codifica è basato sul concetto di tripla <T,L,V> (Type o Tag, Length, Value) dove:
- Type o Tag : indica il tipo del dato codificato
- Length : indica la lunghezza in byte di "Value"
- Value : E' il dato codificato vero e proprio
Quindi ad esempio per codificare il dato 7 come INTERO occorreranno 3 bytes:
- il primo che indica il tipo (INTERO = 0x02)
- il secondo che indica la lunghezza di v (in questo caso = 0x01)
- il terzo è la codifica di un dato intero secondo BER (in questo caso 0x07)
In definitiva INTEGER 7 in BER diviene 0x020107 dove si distinguono chiaramente T,L e V
BER e ASN.1
BER è strettamente legata ad ASN.1 soprattutto per quanto riguarda i tipi di dati. Come si puo' immaginare la codifica di V dipende dal tipo T. Ci sono alcuni tipi predefiniti in ASN.1 (si dice che sono Tag appartenenti alla Class UNIVERSAL). Per maggiori info a tal proposito vedere collegamenti esterni 1 e 2
Codifica BER
In generale quando si deve effettuare la codifica BER di un dato si procede ne seguente modo:
- si codifica T
- si codifica V
- dalla lunghezza di V si passa alla codifica di L
Vediamo ora la codifica di ogni campo.
Codifica di T
La codifica del campo T di solito chiede un unico Byte. La codifica dipende dai seguenti fattori:
- la classe di appartenenza del Tag
- il tipo è PRIMITIVE o CONSTRUCTED
- l'identificativo del Tag nella classe di appartenenza
Codifica di L
Codifica di V
Collegamenti esterni
- (EN) Olivier Dubuisson - ASN.1: Communication Between Heterogeneous Systems - Free PDF book