CREATE命令——建立文件(ADF文件、EF文件、DDF文件)主要用于构建文件系统

1.命令报文格式






CLA

INS

P1

P2

LC

DATA

80

E0

00/01/02

00/01

数据体长度

数据体


如果建立的文件为DDF文件:P1=00


如果建立的文件为ADF文件:P1=01


如果建立的文件为EF文件:P1=02




当P1=00时,若P2设置为00,则只能创建根文件系统ROOTDF;若P2设置为01,既可以建根文件系统也可以建立其他DDF文件。


当P1=01/02时,P2=00


2.数据体结构

(1)建立DDF文件

P2=00时数据体结构为:


P2=00时,指定创建根文件系统ROOT DF,此时数据体个数如下


创建文件夹为resources create创建文件_标识符




数据体供13个字节,Lc=0D


按该数据体格式创建的文件,文件标识符=3F00,名称为:“1PAY.SYS.DDF01”,为系统固定,不能修改


P2=01时数据体结构为:


P2=01时,不仅可以创建ROOT DF ,也可以创建其他的DF文件,数据体格式为:




创建文件夹为resources create创建文件_二进制文件_02




建立文件为ROOT DF时,


文件标识符应设置为3F00


文件操作权限位表示文件创建和擦除权限


AID为1PAY.SYS.DDF01的十六进制数据31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 




建立文件为其他DF时,


文件操作权限位表示文件创建权限


文件标识符和AID根据实际需要自定义数值




由于AID为长度可变的字符串,在1到16个字节之间,因此LC数值为08~17




FCI配置=00表示使用配置区的配置


=其他值,表示使用独立配置


(2)建立ADF文件


此时P1=01,P2=00 ,创建出的文件的文件类型为ADF类型


数据体结构为


创建文件夹为resources create创建文件_创建文件夹为resources_03




(3)建立EF文件

创建文件为密钥文件时:


密钥文件用于存放密钥,在每一个目录中必须存在且只能存在一个密钥文件,P1=02,P2=00


创建密钥文件的数据体结构为:


创建文件夹为resources create创建文件_EF_04






预留数据字节一般使用00


创建文件为普通文件时:


创建文件夹为resources create创建文件_EF_05


创建普通EF文件时,P1=02,P2=00









   文件标识符:根据需要自定义


文件类型:不同数值表示创建不同类型的文件(如二进制文件、循环列表文件等)


读权限:读取该文件需要的安全权限(安全状态寄存器数值大于等于此数值)


写权限:修改该文件需要的安全权限(安全状态寄存器数值大于等于此数值)


长度1和长度2:表示该文件的大小,


建立二进制文件、变长记录文件、钱包文件、存折文件、公钥文件、私钥文件时,长度1和长度2两字节表示文件大小。


建立定长记录文件、循环定长记录文件、电子钱包交易明细文件、灰锁交易明细文件、密钥文件时,长度1表示记录个数, 长度2表示记录长度。


维护密钥ID:该文件采用的加密密钥(在同目录下的密钥文件中)


公私钥使用权限:该位只对创建公私钥文件有效



文件类型符号字节含义:


创建文件夹为resources create创建文件_EF_06






3.实例


1.创建密钥文件


80 E0 02 00 0A 0000 05 AF 00 06 00 00 00 00


CLA:80 INS:E0 02:P1 00:P2


0A:Lc 0000:文件标识符 05:文件类型 AF:添加密钥权限 06:密钥条数




2.创建二进制文件


80E002000A 0005 20 0F0F 001E 01 FFFF


  20: 该文件为二进制文件


001E:文件大小




3.创建定长记录文件


80E002000A 0006 21 0F0F 0417 FFFF


21:改文件为定长记录文件


0417:改文件能够储存4条记录,每条记录大小为0x17




4.创建ADF文件


80E002000B 0001 0F00 01 00 0031235467


  0001:文件标识符


0F:增加文件权限


01:维护密钥ID


31235467:AID