Странная неверная команда CLA (6E 00) в Java SmartCard IO - PullRequest
6 голосов
/ 08 декабря 2011

Я пишу приложение для смарт-карты и после успешного выбора приложения с его AID, когда оно попадает в отправку, получает параметры обработки

В ответ я получаю 6E 00 - Неверная команда CLA. Это часть кода, который отправляет команду и получает ответ:

ResponseAPDU rapdu = sendCommand(new byte[]{(byte)0x80, (byte)0xA8, (byte)0x00, (byte)0x00, (byte)0x02, (byte)0x83, (byte)0x00, (byte)0x00});

private ResponseAPDU sendCommand(byte[] apdu) throws CardException{
    CommandAPDU capdu = new CommandAPDU(apdu);         
    ResponseAPDU rpd = channel.transmit(capdu);

    return rpd;
}

Я использую ту же команду для чтения карты с использованием библиотеки Jaccal, и она отлично работает, но просто jaccal не подходит для моего приложения из-за использования внешнего файла dll. Я не знаю, почему он дает мне такой ответ.

Ответы [ 2 ]

6 голосов
/ 18 апреля 2012

Ряд сообщений в блогах / на форуме обсуждают эту проблему:

В моем случае карты VISA кажутся «прощающими», а карты MasterCard - нет (6E 00).Обратите внимание, что вопреки советам, обновление до Java 7 не помогло мне.Вы, вероятно, смотрите на решение sun.security.smartcardio.t0GetResponse и обрабатывает ответы.

Я сделал следующее, чтобы оно заработало:

System.setProperty("sun.security.smartcardio.t0GetResponse", "false");

Обработка ответов с помощью GET RESPONSE (см.EMV 4.3, книга 1, раздел 9.3.1.3).Эта ссылка также полезна:

0 голосов
/ 21 февраля 2012

В основном эта ошибка вызвана тем, что передаваемая вами команда не совпадает. Просто проверьте (0x80), первое поле правильное или неправильное. В карточке ОС проверьте первое поле с ожидаемым значением, если оно не соответствует, отправьте CLA Не найденное исключение означает код ошибки 6E 00. вам нужно будет предоставить более подробную информацию о том, что вы делаете - какую карту, версию, соответствие GP, список существующих карт, какую технологию вы используете. На каком языке вы работаете (. net или java) так что я могу вам помочь.

...