为 DESFire 创建值文件时出现“67 00”错误
I got '67 00' error when I create value file for DESFire
我正在使用 DESFire 卡片,现在我想在我的应用程序中创建一个 值文件(应用程序的 ID 00 00 01
).
我成功选择了具有给定 ID 的应用程序,然后将创建值文件的命令发送到 isodep.transceive
方法。
我的命令在这里:
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
};
我的 DESFire 应用程序有 6 个密钥,我想使用密钥 #4 进行 READ、WRITE、READ & WRITE 和更改访问权限.
我希望收到状态码91 00
,这意味着文件创建成功,但响应是67 00
,这意味着长度错误。
您正在混合使用 ISO 命令 (CLA INS P1 P2 LC DATA...) 和本机命令 (INS DATA)。您之前的命令是 ISO 命令,这就是为什么您的卡要求所有命令都是 ISO 命令的原因。
我正在使用 DESFire 卡片,现在我想在我的应用程序中创建一个 值文件(应用程序的 ID 00 00 01
).
我成功选择了具有给定 ID 的应用程序,然后将创建值文件的命令发送到 isodep.transceive
方法。
我的命令在这里:
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
};
我的 DESFire 应用程序有 6 个密钥,我想使用密钥 #4 进行 READ、WRITE、READ & WRITE 和更改访问权限.
我希望收到状态码91 00
,这意味着文件创建成功,但响应是67 00
,这意味着长度错误。
您正在混合使用 ISO 命令 (CLA INS P1 P2 LC DATA...) 和本机命令 (INS DATA)。您之前的命令是 ISO 命令,这就是为什么您的卡要求所有命令都是 ISO 命令的原因。