1、设计原则
文件描述块的设计原则如下。
* 格式尽量整齐,减少系统解释和用户认识的复杂度。
* 相同的字段保留,和类型相关的字段复用同一段空间。
* 考虑将来的扩展性,要预留充分的保留字段和保留位。
* 在充分预留的基础上要昼节约空间的使用。
2、设计示例
如下图1所示给出一个DF和EF一起的文件属性描述例子,一共使用了16Byte。
图1:文件属性描述块设计示例
DF和EF文件对前8个字段(11Byte)的含义基本相同,称为公共字段;对于后5个字段DF和不同的EF都有不同的含义,称为私有字段。
3、共同字段解释
(1)文件标识符FID
文件标识符,DF和EF文件共有,共2Byte。其含义分别为:
* 对DF来说,在同一父DF下唯一,通常定义为0xXX00格式;
* 对EF来说,在同一父DF下唯一,通常定义为0xXXYY格式,其中XX和父DF的FID高字节相同,YY表示EF的SFI,YY的低5字节表示EF的eSFI。
系统保留一些FID作为特殊用途。例如0x3F00用于MF的FID,小于0x3F00的值作为系统文件区等等,可以根据COS实际实现的情况定义。另外对于一些由系统维护和建立的EF文件,可以保留一些SFI。
实现提示:FID的值由应用建立文件时指定,如果是建立MF,需要检查FID是否为0x3F00,如果建立的是一般文件,需要检查给定的FID是否满足预定的规则。
(2)文件类型描述符FDB
文件类型描述符,DF和EF共有,1Byte,定义了对应文件的类型和结构。
将FDB从高位到低位分别用b8-b1表示,如下所示,给定一个编码格式的例子。
FDB编码格式示例1:(b8、b7位)
b8 b7 含义 0 0 其它值保留
FDB编码格式示例2:(b6、b5、b4位)-文件类型
b6 b5 b4 含义 0 0 0 应用EF
0 0 1 COS系统EF
0 1 0 PIN文件
0 1 1 对称密钥文件
1 0 0 非对称密钥文件
1 0 1 电子钱包文件
1 1 0 电子存折文件
1 1 1 DF文件
FDB编码格式示例3:(b3、b2、b1位)-文件类型
b3 b2 b1 含义 0 0 0 不确定的EF结构
0 0 1 透明二进制文件
0 1 0 定长记录文件
1 0 0 变长记录文件
1 1 1 环形记录文件
其它值 保留
对于b3到b1位,只对应用EF文件有效,其他类型文件为0。
所以,对应不同的类型文件的FDB如下所示:
不同类型文件的FDB:
文件类型 FDB(十六进制表示) DF 38
应用透明二进制文件 01
应用定长记录文件 02
应用变长记录文件 04
应用环形记录文件 06
PIN文件 10
对称密钥文件 18
非对称密钥文件 20
电子钱包文件 28
电子存折文件 30
(3)文件状态符STAT
文件状态符,DF和EF共有,1Byte,表示当前文件的生命周期状态。
一般的,由于应用和DF文件相关,所以这个字节也只对DF文件有效,对EF文件可以作为保留字节。如果卡片对文件生命周期定义比较简单,甚至没有的话,这个字节可以省略。
(4)文件长度标识符FSize
文件长度标识符,DF和EF共有,2Byte,表示文件的字节长度。
通过文件头的地址指针、文件头的长度加上文件长度,可以检索到物理上下一个文件的起始指针。
(5)文件自由区长度FFree
文件自由区长度,DF和EF共有,2Byte,在不同类型的文件中解释为不同的含义。
* 对DF文件来说,表示当前文件体中自由区的长度,也就是剩余空间的大小。
* 对于变长记录文件来说,表示当前文件体的剩余记录空间。
* 对于其他文件来说,这个字节可以保留作为其他用途。
(6)安全控制字节SCI
文件操作安全控制标识符1,DF和EF共有,1Byte。其含义为:
* 对DF文件来说,表示的是在DF文件下创建新的子文件的安全控制。
* 对普通EF文件来说,表示的是对EF文件读取数据的安全控制。
* 对电子钱包和电子存折文件来说,表示进行圈存交易的安全控制。
(7)安全控制字节SC2
文件操作安全控制标识符2,DF和EF共有,1Byte。其含义为:
* 对DF文件来说,表示的是在DF文件下删除子文件的安全控制。
* 对EF文件来说,表示的是对EF文件写数据的安全控制。
* 对电子钱包和电子存折文件来说,表示进行圈提交易的安全控制。
(8)安全控制托管标识符ScInd
文件安全控制托管标识符,DF和EF共有,1Byte。
文章评论(0条评论)
登录后参与讨论