我正在使用 DESFire 卡,现在我想在我的应用程序中创建一个值文件(应用有ID {1}})。
我成功选择了具有给定ID的应用,然后将我的命令发送到00 00 01
方法创建值文件。
我的命令在这里:
isodep.transceive
我的DESFire应用程序有6个密钥,我想使用密钥#4 来 READ,WRITE,READ&写,并更改访问权限。
我希望收到状态代码byte[] cmdCreateValueFile = new byte[]{
//cmd
(byte)0xCC,
//file no
(byte)0x01,
//com.sett.
(byte)0x00 ,
//access rights
(byte)0x44 , (byte)0x44,
//lower limit
(byte)0x00 ,(byte)0x00 ,(byte)0x00 ,(byte)0x00 ,
//upper limit
(byte)0x00 ,(byte)0x0F ,(byte)0x42 ,(byte)0x40 ,
//initial value
(byte)0x00 ,(byte)0x00 ,(byte)0x00 ,(byte)0x00 ,
//limited credit enabled
(byte)0x00
};
,这意味着成功创建文件,但响应为91 00
,这意味着错误的长度。
答案 0 :(得分:1)
您正在混合ISO命令(CLA INS P1 P2 LC DATA ...)和本机命令(INS DATA)。您之前的命令是ISO命令,这就是您的卡要求所有命令都是ISO命令的原因。