В таблице 1 приведена пара команда-ответ, а именно командный APDU, за которым следует ответный APDU в противоположном направлении (см. ИСО/МЭК 7816-3). Чередования пары команды-ответа на стыке сопряжения не должно быть, т.е. ответный APDU должен быть получен до инициализации другой пары команды-ответа.
Таблица 1 - Пара команда-ответ
Поле | Число байтов | Число байтов |
Заголовок команды | Байт класса CLA | 1 |
Командный байт INS | 1 | |
Байты параметров Р1-Р2 | 2 | |
Поле | Отсутствует для кодирования 0, | 0, 1 или 3 |
присутствует для кодирования 0 | ||
Поле данных команды | Отсутствует, если 0, | |
Поле | Отсутствует для кодирования 0, | 0, 1, 2 или 3 |
Поле данных ответа | Отсутствует, если 0, | (не более чем ) |
Завершитель ответа | Байты состояний SW1-SW2 | 2 |
В любой паре команда-ответ, включающей в себя и поле и поле (см. ИСО/МЭК 7816-3), короткое и расширенное поля длины не должны складываться: либо оба поля длины короткие, либо оба поля длины расширенные.
Если в карте явно заявлена возможность обрабатывать "расширенные поля и " (см. таблицу 88, третья таблица программных функций) в байтах предыстории (см. 8.1.1) или EF.ATR (см. 8.2.1.1), то карта обрабатывает короткое и расширенное поле длины. В противном случае (значение по умолчанию), карта работает только с короткими полями длины.
обозначает число байтов в поле данных команды. Поле кодирует .
- Если поле отсутствует, то равно нулю;
- короткое поле состоит из одного байта, которое отлично от '00' и принимает значения:
- от '01' до 'FF'. Этот байт кодирует от одного до 255;
- Расширенное поле состоит из трех байтов: одного байта, установленного на '00', за которым следуют два байта, которые отличны от '0000', и принимают значения:
- от '0001'до 'FFFF'. Эти два байта кодируют от одного до 65535.
обозначает максимальное число байтов, ожидаемое в поле данных ответа. Поле кодирует .
Если поле отсутствует, то равно нулю;
короткое поле состоит из одного байта с произвольным значением:
от '01' до 'FF'. Этот байт кодирует от одного до 255;
если этот байт установлен на '00', то равно 256.
- Расширенное поле состоит либо из трех байтов (один байт установлен на '00', за которым следуют два байта с произвольным значением), если поле отсутствует, либо из двух байтов (с произвольным значением), если расширенное поле присутствует:
- от '0001' до 'FFFF'. Эти два байта кодируют от одного до 65535;
- если два байта установлены на '0000', то равно 65536.
обозначает число байтов в поле данных ответа. должно быть меньше или равно . Поэтому в любой паре команда-ответ отсутствие поля является обычным способом получения поля данных без ответа. Если поле содержит только установленные на '00' байты, то значение максимально, т.е. в пределах 256 для короткого поля или в пределах 65356 для расширенного поля , при этом все имеющиеся байты должны быть возвращены.
Если операция прерывается, то карта может стать невосприимчивой. Однако если возникает ответный APDU, то поле данных ответа должно отсутствовать и SW1-SW2 должны показывать ошибку.
Р1-Р2 указывают элементы управления и опции для обработки команд. Байт параметров, установленный на '00', обычно не обеспечивает дальнейшее уточнение. Других общих правил для кодирования байтов параметров не существует.
Ниже установлены общие правила для кодирования байта класса СLА (см. 5.1.1), командного байта INS (см. 5.1.2) и байтов состояний (см. 5.1.3). В этих байтах биты, зарезервированные для использования в будущем, должны быть установлены на 0, пока не будет определено иначе.