數據單元
規範中常常談到數據元, 有時候用於最小基本數據單元,有時候用於一個TLV,有時候用於一個文件。
所以把數據元理解爲泛指所有數據單元,不管是最基本單元還是複雜的單元。
數據對象列表 DOL(data object list)
DOL 包含 PDOL CDOL 等等。
卡與終端傳送數據可以是用TLV方式,也可以是DOL方式。 GPO命令用DOL方式傳送。 (GPO命令不是一系列命令的總稱而是單個命令如SELECT命令)
TLV 是由 T+L+V組成,其中V 可以再包含TLV,可以迭代嵌套。
DOL是由 多個 T+L 組成。如 [ TL+TL+TL+。。。 ]DOL數據是IC卡給終端的。然後總段給IC卡發命令的數據段只給定V就可以了。
比如 V+V+V 而不需要每次重複傳送 【TLV+TVL+TVL+...】了。
DOLs currently used in this specification include the PDOL used with the
GET PROCESSING OPTIONS command, CDOL1 and CDOL2 used with the
GENERATE AC command, the TDOL used to generate a TC Hash Value, and the
DDOL used with the INTERNAL AUTHENTICATE command.
標籤
標籤就是指TLV中的T。
SIMPLE-TLV 由一個字節的T和一個或者三個字節的L和0個或者多個字節的V組成。
SIMPLE-TLV 中的T可以用作record identifier。 如果L中第一個字節是FF則後兩個字節表明長度,範圍是0到65535. 如果不是FF則說明L佔用一個字節並且範圍是0到254.
BER-TLV 由多個字節的T和多個字節的L和0或者多個自己的V組成,並且V可以嵌套。
T 中的第一個字節的b8b7位表示tag的等級,b6位表示V是原始數據類型還是結構化數據類型。b5到b1位表示T的number,如果b5到b1全部是0,表示後面的字節也表示T的number。後續的字節的第8位一直是1直到0的字節都算是T的部分。
BER-TLV中L的規則如下
模板
比如說FCI模板,就是指FCI的固定的TLV組成。