2013-05-28 137 views
0

我正在嘗試編寫一個應用程序,該應用程序將使用ACS ACR122U卡終端與智能卡交互。根據我所能找到的所有API,API使用標準APDU命令和psuedo-APDU的組合來與終端進行交互,但是僞裝APDU似乎並不如所聲稱的那樣工作。智能卡與ACR122U交互

API參考(在ACS站點上提供)指示形式爲「FF XX XX XX ...」的APDU將由終端解釋(而不是發送到卡),但我總是得到響應狀態「6E XX」(我認爲我發送的是無效的課程ID)。 我試過使用「FF 00 40 0F 04 00 00 00 00」發送命令來閃爍終端上的LED指示燈,並嘗試使用「FF CA 01 00」從卡上獲取一些唯一的標識符。

我在ISO 7816-4文檔(智能卡標準)和ACS提供的API參考中找不到有用的東西。另外,ACS並不是非常樂意提供信息。 有沒有人有任何想法,我可能做錯了什麼,或者我可能會尋找額外的信息?

我可以得到一個ATR - 答覆當卡連接時從終端重置。我正在開發與Mifare 1K卡交互,並希望從中讀取它們並與終端上的LED和蜂鳴器進行交互。

+0

你可以檢查像Omnikey5321 CL在其他終端相同的APDU,因爲我使用相同的命令,它的工作.... – vikky

回答

2

您可以檢索API文檔here。這是ACS專有的APDU,因此不涉及標準ISO-7816規範。有關僞APDU要求,請參閱第6節。

要模擬LED,請參閱第6.2節的細節和附錄E.您可以嘗試更改您的APDU,如下所示:FF 00 40 FF 04 0A 0A 03 03.請注意,我設置了LED控制,並將LED持續時間設置爲非零值。

對於第二個APDU,請參閱第4節。請注意,您在APDU中缺少P3/Le(應爲FF CA 01 00 00),並且您需要讀卡器與PICC連接。