Чтение ответа команды APDU

1

Я пытаюсь прочитать данные из файла на смарт-карте, я использую следующую команду APDU

00 B0 00 02 00

но я получаю этот ответ:

A1 1B 4F 0C A0 00 00 00 77 02 08 05 04 49 44 01 50 07 43 4E 49 2D 43 53 45 51 02 10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 00 

Как преобразовать или прочитать это значение в шестнадцатеричном кодировании?

Теги:
smartcard
apdu

2 ответа

4

Последние два байта составляют слово состояния (SW), сначала 90 а затем 00. Остальное представляет собой шестнадцатеричное кодирование двоичных данных в файле.

Похоже, что содержимое кодируется ASN.1 BER. Таким образом, вы должны BER декодировать ответ. BER - TLV (значение длины тега). Итак, первые два байта - это тег и значение, A1 1B. Смысл текста зависит от контекста (так что посмотрите спецификацию для этого конкретного файла). Таким образом, ваш файл фактически содержит 2 + 1B байт, или 29 байтов, остальные оставлены до значения по умолчанию 00.

Декодирование BER указано в ISO 7816-4, которое вам действительно нужно понять, чтобы понять что-либо о смарт-картах на базе файлов. Также взгляните на страницу Википедии об ASN.1 и взгляните на декодированное значение здесь.

  • 1
    Кажется: 4F - AID TLV, содержит заявление Обертура (RID = A000000077). 50 - этикетка заявки "ЦНИ-КСЭ".
  • 1
    Не ожидал комментария по этому поводу после столь длительного времени, особенно после организации. Аскер, кажется, отказался от этого (позор, Анасс), но да, больше информации здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню