• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            TLV格式是什么格式

            Posted on 2009-05-25 15:44 Prayer 閱讀(2873) 評論(1)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX

            一種可變格式,TLV的意思就是:Type類型, Lenght長度,Value值;
            Type和Length的長度固定,一般那是2、4個字節;
            Value的長度有Length指定;
            解析方法:
                  1.讀取type 轉換為ntohl、ntohs轉換為主機字節序得到類型;指針偏移+2或4
                  2.讀取lenght,轉換為ntohl、ntohs轉換為主機字節序得到長度;指針偏移+2或4
                  3.根據得到的長度讀取value,指針偏移+Length;
                  。。。。
                  繼續處理后面的tlv;

             

             

            標簽(Tag)字段是關于標簽和編碼格式的信息;
            長度 (Length)字段定義數值的長度;
            內容(Value)字段表示實際的數值。
            因此,一個編碼值又稱TLV(Tag,Length,Value)三元組。編碼可以是基本型或結構型,如果它表示一個簡單類型的、完整的顯式值,那么編碼就是基本型 (primitive);如果它表示的值具有嵌套結構,那么編碼就是結構型 (constructed)。

            TLV編碼就是指先對Tag編碼,再對Length編碼,最后對Value編碼。BER編碼的長度確定的編碼方式就是這樣的。
            BER編碼有兩種方式:
            一種是長度確定的編碼方式。這由3部分組成Identifier octets、Length octets和Contents octets(可以和TLV對應)。另一種是長度不確定的編碼方式。這由4部分組成Identifier octets、Length octets、Contents octets、End-of-contents octets。其中Length octets為0x80,End-of-contents octets為0x00 00。每種類型都能夠編碼成長度確定的編碼方式,但是有的類型不能夠編碼成長度不確定的編碼方式。DER編碼只能使用長度確定的編碼方式。
            Identifier octets由3部分組成Class、P/C和Tag number。Identifier octets的第一個字節的高2位為Class,接下來一位為P/C,其他位表示Tag number。Class有4中類型Universal(00)、Application(01)、Context-specific(10)和Private(11)。P/C位如果為1則表示是Constructed的,為0表示是Primitive。如果0<=Tag number<=30,則整個Identifier octets只有一個字節,否則第一個字節的后5位前為1,接下來找第一個最高位為0的字節,該字節就是Identifier octets的最后一個字節。從第二個字節到最后一個字節去掉最高位的值拼起來就是Tag number的值。
            長度確定的編碼方式的Length octets有兩種方法編碼長度,一種是只用一個字節表示長度,其最高位為0,后7位表示長度值,顯然這樣只能表示0-127。另一種是第一個字節的最高位為1,其他位表示后面還有多少個字節屬于Length octets。后面的那些字節組成的就是長度值。長度值表示的是Contents octets所占的字節數。DER要求如果長度為0-127則要使用第一種方式,如果大于127則使用后一種方式。

            Feedback

            # re: TLV格式是什么格式  回復  更多評論   

            2009-08-11 11:11 by alin
            T是TAG,標識
            精品久久久久久国产三级| 人妻无码αv中文字幕久久| 国产精品久久久久影院嫩草| 久久丫精品国产亚洲av不卡| 久久久一本精品99久久精品66| 人妻无码αv中文字幕久久琪琪布| 狠狠狠色丁香婷婷综合久久俺| 久久美女网站免费| 亚洲国产综合久久天堂| 久久久久亚洲AV片无码下载蜜桃| 久久综合狠狠综合久久激情 | 人人狠狠综合久久亚洲| 久久国产劲爆AV内射—百度| 精品一区二区久久久久久久网站| 亚洲精品国产综合久久一线| 99久久超碰中文字幕伊人| 亚洲AV伊人久久青青草原| 久久精品夜夜夜夜夜久久| 香港aa三级久久三级老师2021国产三级精品三级在 | 久久青青草原精品影院| 久久婷婷是五月综合色狠狠| 丁香五月综合久久激情| 久久国产免费观看精品3| 狠狠色丁香婷婷久久综合| 久久久国产精品| 国产精品久久网| 精品久久人妻av中文字幕| 色欲综合久久躁天天躁蜜桃| 一级做a爰片久久毛片看看| 久久精品国产清自在天天线| 久久精品国产久精国产| 国产成人久久精品一区二区三区 | 亚洲国产一成人久久精品| 久久久久亚洲av成人无码电影| 亚洲成色999久久网站| 精品无码久久久久久午夜| 无码人妻少妇久久中文字幕蜜桃| 久久久久久久97| 久久综合亚洲欧美成人| 久久夜色精品国产噜噜麻豆| 婷婷综合久久中文字幕蜜桃三电影|