2013-05-28 3 views
0

Я пытаюсь написать приложение, которое будет взаимодействовать со смарт-картами с помощью терминала ACS ACR122U. В соответствии со всем, что я могу найти, API использует комбинацию стандартных команд APDU и psuedo-APDU для взаимодействия с терминалом, однако psuedo-APDU не работают, как утверждают.Взаимодействие смарт-карт с ACR122U

Ссылка на API (представленная на сайте ACS) указывает, что APDU формы «FF XX XX XX ...» будут интерпретироваться терминалом (а не отправляться на карту), но я всегда получаю статус ответа из «6E XX» (который я интерпретирую как отправку неверного идентификатора класса). Я пробовал отправлять команды для мигания светодиодов на терминале с помощью «FF 00 40 0F 04 00 00 00 00», а также пытался получить уникальный идентификатор с карты с помощью «FF CA 01 00».

Я не могу найти ничего полезного в документе ISO 7816-4 (стандарт для смарт-карт) и справочной информации API, предоставленной ACS. Кроме того, ACS не очень доступны с информацией. Есть ли у кого-нибудь идеи относительно того, что я могу делать неправильно или где я могу найти дополнительную информацию?

Я могу получить ATR - ответ на сброс с терминала при подключении карты. Я разрабатываю для взаимодействия с картами Mifare 1K и хотел бы прочитать их и взаимодействовать со светодиодами и звуковым сигналом на терминале.

+0

Вы можете проверить тот же APDU в другом терминале, что и Omnikey5321 CL, потому что я использую ту же команду, и она работает. – vikky

ответ

2

Вы можете получить документацию по API here. Это патентованные APDU ACS, поэтому они не относятся к стандартной спецификации ISO-7816. Обратитесь к разделу 6 за требованиями псевдо-APDU.

Для имитации светодиода см., Например, раздел 6.2 для деталей и приложения E. Вы можете попробовать изменить APDU следующим образом: FF 00 40 FF 04 0A 0A 03 03. Обратите внимание, что я установил управление светодиодом, а также установил ненулевые значения для продолжительности светодиода.

Для второго APDU см. Раздел 4. Обратите внимание, что вам не хватает P3/Le в вашем APDU (должен быть FF CA 01 00 00), и вам нужен считыватель карт, подключенный к PICC.