В контексте смарт-карт, блок данных протокола приложения (APDU ) является блоком связи между устройством чтения смарт-карт и интеллектуальная карточка. Структура APDU определяется ISO / IEC 7816 -4 Организация, безопасность и команды для обмена.
Есть две категории APDU: командные APDU и ответные APDU. Командный APDU отправляется считывателем на карту - он содержит обязательный 4- байт заголовок (CLA, INS, P1, P2) и от 0 до 65 535 байтов данных. Ответный APDU отправляется картой считывателю - он содержит от 0 до 65 536 байтов данных и 2 обязательных байта состояния (SW1, SW2).
APDU команды | ||
---|---|---|
Имя поля | Длина (байты) | Описание |
CLA | 1 | Класс инструкции - указывает тип команды, например межотраслевой или собственный |
INS | 1 | Код инструкции - указывает конкретную команду, например "запись данных" |
P1-P2 | 2 | Параметры инструкции для команды, например смещение в файл, в который записываются данные |
Lc | 0, 1 или 3 | Кодирует количество (N c) байтов данных команды, следующих за 0 байтов означает N c=0. 1 байт со значением от 1 до 255 обозначает N c с таким же значением. 3 байта, первый из которых должен быть 0, обозначает N c в диапазон от 1 до 65 535 (все три байта могут быть не равны нулю) |
Командные данные | Nc | Ncбайты данных |
Le | 0, 1, 2 или 3 | Кодирует максимальное число (N e) ожидаемых байтов ответа 0 байтов означает N e=0. 1 байт в диапазоне от 1 до 255 означает, что значение N e, или 0 означает N e = 256. 2 байта (если в команде присутствует расширенный L c) в диапазоне от 1 до 65 535 обозначают N e этого значения, или два нулевых байта обозначают 65 536. 3 байта (если в команде не было L c), первый из которых должен быть 0, обозначьте N e так же, как двухбайтовый L e |
APDU ответа | ||
Данные ответа | Nr(не более N e) | Данные ответа |
SW1-SW2. (окончание ответа) | 2 | Командный процесс статус, например 90 00 (шестнадцатеричный ) указывает на успех |