2014年12月30日 星期二

Object identifier 表示方式



Object identifier


把 OID的每一個數值轉成 binary 格式,有兩個規則

  1. OID 前兩碼混在一起算 X.Y. ... X,Y編成 (X*40)+Y. oid 前2碼範圍 X:0~2, Y:0~39
  2. 因為值有可能超過 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

沒有留言:

張貼留言