Что означает значение 6E 00, когда я отправляю команду на смарт-карту - PullRequest
5 голосов
/ 07 июля 2011

Я пытаюсь получить доступ к SmartCard через C ++. У меня уже есть Соединение и CardHandle.

Но когда я отправляю команду APDU через SCardTransmit, я получаю 6E 00 в качестве ответа от карты. Независимо от того, какую команду APDU я посылаю. Каждый раз 6Е 00.

Например:

  • FF CA FA 00 00 (ATR карты - ответ на сброс) или
  • FF CA FF 82 00 (название продукта в ASCII)

То же самое, когда я посылаю Команду с PC / SC Testtootl, например, "PC / SC Diag".

Есть ли у кого-нибудь идея, что означает этот код ошибки и как решить проблему?

Пожалуйста, помогите мне !!!! ; -)

Ответы [ 3 ]

6 голосов
/ 07 июля 2011

В соответствии с ISO 7816-4 0x6E00 означает «Класс не поддерживается».

Используете ли вы правильное значение CLA в APDU?

Байт класса (CLA) обычно равен 0x00,0xA0, 0xC0 или 0xF0 и иногда маскируются 0x0C, что указывает на безопасный обмен сообщениями на некоторых картах.AFAIK, единственное недействительное значение CLA - 0xFF.

Но это зависит от одной карты к другой, у вас есть спецификация карты от поставщика?

1 голос
/ 07 июля 2011

Это означает «неправильный класс инструкций». Может быть, это просто неправильный тип карты?

http://tools.ietf.org/html/draft-urien-eap-smartcard-05

0 голосов
/ 30 ноября 2013

Руководство BasicCard PDF содержит список кодов ошибок на стр. 152-153.

Тот, который вы получили, они описывают как "Байт команды CLA не распознан".

"6A 86"скорее всего, это ответ на конкретную команду карты, и я не вижу ее в списке BasicCard.

...