Object identifier
把 OID的每一個數值轉成 binary 格式,有兩個規則
- OID 前兩碼混在一起算 X.Y. ... X,Y編成 (X*40)+Y. oid 前2碼範圍 X:0~2, Y:0~39
- 因為值有可能超過 1 byte,所以把 bit 8 (MSB)拿來當 flag(每一個byte的bit8都是) , bit8 == 1 表示這個值還有下一個 byte,一直串下去到足夠表示這個值為止,最後的 byte的 bit8 為 0.
Example :
Value (OID): 1.3.6.1.4.1.311.1.1.3.1.1
06 0C 2b 06 01 04 01 82 37 01 01 03 01 01
Type +長度 OID
0x2b = 1 x40 + 3 --> 1.3
0x82 37 -> 0x02 37
0000 0010 0011 0111
(把flag拿掉)
000 0010 011 0111
(合併 , 前面補0)
0000 0001 0011 0111 => 0x137 = 311
Example 2 :
Value (OID): 1.3.6.1.4.1.4491
06 07 2B 06 01 04 01 A3 0B
參考 ref - http://jianiau.blogspot.tw/2014/06/asn1-der-encoding-decoding.html
沒有留言:
張貼留言