分类: 嵌入式
2012-12-06 16:16:09
数据元
数据元和文件IC卡的一个应用包括一组信息项。终端在成功地选择了一个应用后,就可以读写这些信息项。
信息中的一项被称为一个数据元。一个数据元是指可以通过一个名字、一段内容的逻辑描述、一种格式和一段编码来定义的最小信息单元。
数据对象一个数据对象包括一个标签部分、一个长度部分和一个数值部分。标签用来独一无二地标记应用中的一个数据对象。长度用来表示数据对象的数值部分的长度。一个数据对象的数值部分可以由一个数据元或一个或多个数据对象组成。只包含一个数据元的数据对象称为基本数据对象。包含一个以上数据对象的数据对象称为结构数据对象。
终端接收到信息后,需要按照附件B中定义的规则, 分析所有的数据单元。从数据单元中取出的数值必须在终端缓冲区中存储, 以便将来使用。
记录是包含一个或多个基本数据对象或结构数据对象的模板。
文件IC卡中的能够读/写的数据文件中的数据对象是以记录方式保存的。文件的结构和引用方法取决于该文件的用途。
应用基本文件
范围为1-10的AEF,包含一个基本数据对象或复合的BER-TLV数据对象(记录),复合数据对象是由多个基本编码规则——标签长度值(BER-TLV)的数据对象按附录C的方式组成的。一旦选定之后,范围为1-10的 AEF 只能如I-1.3.2所述通过它的短文件标识符( SFI )来引用。
文件引用根据文件的种类,文件可以通过文件名或SFI引用。
1.3.2.1 通过文件名引用卡片中的任何ADF或DDF都可以通过它的DF名引用。ADF的DF 名与它的AID对应或以AID作为DF名的开头。一张卡片中的每个 DF 名字必须在该卡内是唯一的。
通过SFI引用SFI用于选择AEF。在一个给定的应用中可以通过SFI来引用任何一个AEF。这个SFI使用5个位(bit)来编码,其值在1~30的范围内。SFI 编码将在使用它的各命令中描述。
SFI的结构如表I- 1所示:
数值 | 意义 |
1~10 | 本规范定义 |
11~20 | 支付系统定义 |
21~30 | 发卡行定义 |
TABLE I-1 SFI结构
使用数据对象列表(DOL)的规则使用的DOL包括通过取处理选项(GET PROCESS OPTIONS)命令使用的PDOL,通过生成应用密文(GENERATE AC)命令使用的CDOL1和CDOL2,用来产生TC哈什值的TDOL和通过内部认证(INTERNAL AUTHENTICATE)命令使用的DDOL。
终端必须完成下列步骤以建立结构域:
1 . 从IC卡读取 DOL。
2 . 连接DOL中列出的所有数据单元。按照下列规则进行连接:
a) 如果DOL中指出的数据对象的标签无法被终端识别,或这个标签代表了一个结构数据对象,终端将提供一个长度为DOL指定长度的数据单元,并必须把该数据单元所有的数值部分设置为16进制的0。
b) 如果该列表中的一个数据对象在终端上可以识别,但表现为IC卡上不出现的可选静态数据必须用16进制的0来填满。
c) 如果在DOL条目中指出的长度小于实际数据对象的长度,则需要将实际的数据对象削减至DOL指出的长度。如果数据对象是数字格式(n)的,则从数据单元的的最左端开始削减字节。如果数据对象是其它格式的,则从数据单元的最右端开始削减字节。如果指出的长度比实际的数据长度大,需要把实际的数据填充至指定长度:
l 如果数据对象是数字格式(n)的, 则从数据单元头部开始填充16进制的0。
l 如果数据对象是压缩数字格式(cn)的, 则在数据单元的末尾填充16进制的FF。
l 如果数据对象是其它格式的, 则在数据单元的末尾填充16进制的00。
d )如果表上的一个数据对象在终端可以识别,但不代表在当前交易中适用的数据,代表该数据对象的命令域部分将填充16进制的0。
数据单元在表上的连接顺序应该与相应的数据对象在DOL中出现的顺序一一对应。