OID's it seems are a way to represent a tree like structure.
Eg 1.3.6.1 being iso(1).org(3).did(6).internet(1)
The encoding scheme used most commonly seems to be BER and I am confused about the encoding of the first two digits. Why are the first two digits encoded into a single byte and why is it like this:
int first_digit = first_byte / 40;
int second_byte = first_byte % 40;
Is it assumed that the first two bytes are always small numbers and hence can be 'stored' easily in one byte? If so I can understand that.
But why the use of the magic number 40? Why 40?
eg. the first byte in above 1.3.xxx case would be encoded as 43.