原创
操作卡片文件命令--创建文件(CREATE FILE)
2008-12-7 22:46
6420
9
9
分类:
软件与OS
1、命令功能描述
创建文件命令是在当前文件的空间内创建新的文件,包括MF文件、DF文件和EF文件,根据COS内文件结构实现的不同,创建文件命令的实现有很大的差异。
创建文件命令执行成功以后,如果创建的是DF文件,将DF文件作为当前文件,如果创建的是EF文件,当前文件不变。如果创建失败,当前文件保存不变。
这一命令的实现,实质上就是新文件描述块的建立和文件的注册。新文件描述块的部分内容由COS来维护填写,部分内容由外部给出。
创建MF在卡片传输密钥的安全控制下完成,其他文件的创建都必须在当前文件的安全控制下进行。
2、命令报文格式
命令的APDU内容如下所示。
代码 值
CLA 0x80
INS 0xE0
P1 0x00
P2 0x00
Lc Data域字节数
Data 文件描述符
Le 无
其中,Data域包含了那些需要用户输入的文件描述块的信息,例如长度、FID等等。由于对于不同的文件有不同的信息组合,为了统一接口的格式,一般选择要求用户输入全部文件描述块。
3、响应报文数据
响应报文数据为空。
4、响应报文状态码
此命令执行成功的状态码为0x9000。
对于异常情况,IC卡可能回送的错误码如下所示:
SW1 SW2 含义
0x65 0x81 内存错误
0x67 0x00 Lc错误
0x69 0x82 安全条件不满足
0x69 0x85 使用条件不满足
0x6A 0x80 数据域参数不正确
0x6A 0x84 文件空间不足
0x6A 0x86 P1、P2不正确
0x6A 0x89 文件已存在,或者文件名冲突
0x6D 0x00 INS错误
0x6E 0x00 CLA错误
5、命令实现的其他要求
根据COS文件结构的不同,创建文件操作的实现过程也不尽相同。例如,如果在创建文件过程中同时还进行了其他的存储区读写操作的话,为了保证数据的完整性,在创建文件阶段所有的写操作要求安全保护等。
6、命令实现说明
在DF创建时,必须在父DF(创建MF除外)的DIR文件中记录响应的信息。如果是创建DDF,可以同时在新的DDF下创建DIR文件,DIR文件的SFI在MF的文件描述块中已经给出。
7、命令使用示例
(1)预设环境
假设目前为白卡,进行卡片的初始化,建立MF、MF下的DIR文件和一个ADF。
(2)命令报文
创建MF的APDU:
80 E0 00 00 10 3F 00 38 00 40 00 00 00 56 78 00 01 00 00 00 00
其中:
* 80 表示CREATE FILE命令的CLA。
* E0 表示CREATE FILE命令的INS。
* 00 表示CREATE FILE命令的P1。
* 00 表示CREATE FILE命令的P2。
* 10 表示CREATE FILE命令数据域的长度。
* 3F00 表示MF的FID
* 38 表示文件类型,标识是DF。
* 00 表示文件目前状态,默认为00。
* 4000 表示MF文件的大小,通过取卡片EEPROM区所有剩余空间的大小。
* 0000 表示空间区指针,MF刚建立阶段,空闲指针为0。
* 56 表示在MF下建立新的文件的安全控制条件。
* 78 表示在MF下删除文件的安全控制条件。
* 00 表示安全托管控制设置为本级管理。
* 01 表示MF下DIR文件的SFI。
* 00 表示MF对应的应用类型,是一个普通应用卡。
* 00 表示MF是一个DDF。
* 00 00 是保留字节。
在MF下创建DIR文件的APDU:
80 E0 00 00 10 3F 01 04 00 02 00 00 00 0F F0 00 00 00 00 00 00
其中:
* 80 表示CREATE FILE命令的CLA。
* E0 表示CREATE FILE命令的INS。
* 00 表示CREATE FILE命令的P1。
* 00 表示CREATE FILE命令的P2。
* 10 表示CREATE FILE命令数据域的长度。
* 3F01 表示DIR的FID
* 04 表示DIR文件类型。
* 00 表示DIR文件目前状态,默认为0x00。
* 0200 表示DIR文件的大小。
* 0000 表示DIR文件的内部指针,起始值为0。
* 0F 表示DIR文件的读取权限,通常没有限制。
* F0 表示外部对DIR文件的修改权限,通常被禁止。
* 00 00 00 00 00 00 是保留字节。
在MF下创建ADF的APDU:
80 E0 00 00 10 4F 00 38 00 10 00 00 00 12 23 00 00 01 01 00 00
其中:
* 80 表示CREATE FILE命令的CLA。
* E0 表示CREATE FILE命令的INS。
* 00 表示CREATE FILE命令的P1。
* 00 表示CREATE FILE命令的P2。
* 10 表示CREATE FILE命令数据域的长度。
* 4F00 表示MF的FID
* 38 表示文件类型,标识是DF。
* 00 表示文件目前状态。
* 1000 表示ADF数据空间的大小。
* 0000 表示ADF内部空闲空间起始位置,刚建立时文件空闲起始位置为0。
* 12 表示在ADF下建立文件的安全控制。
* 23 表示在ADF下删除文件的安全控制。
* 00 表示ADF的安全控制全部由本级控制。
* 00 保留字节。
* 01 表示ADF对应的应用类型为金融应用。
* 01 表示该DF文件是ADF文件。
* 00 00 是保留字节。
(3)CREATE FILE响应报文
卡片处理以后,CREATE FILE的响应报文为空。常见的返回状态码参考第4、。
文章评论(0条评论)
登录后参与讨论