2015-04-15 5 views
0

Я видел несколько тем по теме. Большинство из них предполагают, что CLA, отправленная в устройство чтения карт, ошибочна. Однако, я использую коды, описанные в немецкой документации для карты (Implementierungsleitfaden zur Einbindung der eGK in die Primärsysteme der Leistungserbringer v1.6.0 от 21.10.2013).
Согласно этому документу (пункт 5.4.4.1) следует отправить:

00 А4 04 0C 07 D2 76 00 01 44 80 00
выбрать MF или

00 А4 04 0C 06 D2 76 00 00 01 02
для выбора HCAВыбор MF или HCA всегда возвращает ошибку 6E 00 - Класс «CLA» не поддерживается - для eGK

в обоих случаях я получаю ошибку 6E 00. Commans, такие как:

  • Запрос ВКК (20 12 01 01 XX)
  • или Reset CT (20 11 00 00 00)

из того же документ, работать нормально.

Любая идея, почему я получаю CLA не поддерживается - может это быть, например, потому что на карте нет данных, и если да, то как я могу ее проверить?

Спасибо заранее

+0

Примечание: ЭГК не обязательно JavaCard , если я правильно помню, большинство поставщиков карт было основным. Неинициализированная карточная карточка будет реагировать точно так же, как вы описываете, поэтому это объяснение - мой первый выбор. Если он не инициализирован, спецификация eGK не поможет: он описывает только полный продукт, тогда как исходная карта сильно зависит от поставщика. Я попросил бы сторону, которая доставила вашу карточку для дополнительной информации. В противном случае ATR - это все, что у вас есть. – guidot

+0

Я только что получил информацию о том, что у них есть реальные данные, хранящиеся в них, - поэтому они должны быть готовы к чтению (они были прикреплены к считывателю карт, и похоже, они имитируют реальные страховые карты, которые мне нужны. Теперь я задаюсь вопросом, может быть, Я пропускаю некоторый шаг между запросом/сбросом и попыткой выбора файла. –

ответ

1

Причина была очевидна, но так как это был мой первый раз с чтения карт памяти, я не видел его в течение длительного времени: я посылал команды ICC (например, выберите файл) в КТ (JavaCTAPI .CT), тогда как я должен отправлять их в ICC1 (JavaCTAPI.ICC1).

Другими словами, я делал это:

ctData(..., JavaCTAPI.CT, ..., ..);

тогда я должен был сделать это:

ctData(..., JavaCTAPI.ICC1, ..., ..);