2012-10-17 62 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) 
相關問題