2012-10-17 142 views
1

我有一个使用MIFARE DESFIRE EV1卡创建考勤系统的项目。在MIFARE DESFire EV1卡上创建应用程序

我需要为这个项目使用的读卡器品牌仅支持ISO 7816-x,所以我需要使用DESFIRE ISO7816-4 APDU Wrapping模式将命令发送到读卡器。

我也可以访问恩智浦文档资源。

到目前为止,我可以运行一些命令,如获取版本,获取应用程序ID,卡上的可用内存。 所有这些命令都可以在没有安全要求的情况下运行。但是,我无法在此卡上创建应用程序。

我敢肯定,我的命令创建应用程序是正确的,但它代码0x7E(长度错误)失败。

这里是我创建失败的应用程序代码。

-> 90 CA (00 00 05) 414141 0F 0E (00) 
<- 91 7E 

我想知道:

  • 我正在运行在正确的顺序命令?
  • 是表示要在应用程序中使用的密钥的数量在卡
+0

为什么围绕某些字节的括号?他们似乎奇怪地放置... –

+0

那些圆括号是将ISO-7816 APDU与ISO 14443-4数据命令分开,“CA 414141 0F 0E”是ISO 14443-4命令,而90 00 00 05 00是ISO-7816 APDU命令。 – AaA

+0

您是否设法解决此问题?我被困在完全相同的命令。 – sventevit

回答

0

创建应用程序的最后一个字节之前验证它需要的。对于每个Desfire卡,每个应用程序只能创建14个密钥。所以,键的数量应该从0x01到0x0E。

+1

这是一个错字,我修好了!它是0F 0E – AaA

0

此命令为我创建一个应用程序(使用AES密钥,因此num_keys字节中的0x80位)。

(90) ca (00 00 05) 33 22 11 0b 84 (00) 
相关问题