Spec-Zone.ru › OpenJDK 24

Класс CommandAPDU

java.lang.Object
javax.smartcardio.CommandAPDU
Все реализованные интерфейсы:
Serializable
public final class CommandAPDU extends Object implements Serializable
Команда APDU, следующая структуре, определённой в ISO/IEC 7816-4. Она состоит из четырёхбайтового заголовка и условного тела переменной длины. Этот класс не пытается проверить, что APDU кодирует семантически корректную команду.

Обратите внимание, что при указании ожидаемой длины APDU ответа в конструкторах, указывается фактическая длина (Ne), а не её закодированная форма (Le). Аналогично, getNe() возвращает фактическое значение Ne. Другими словами, значение 0 означает «нет данных в APDU ответа», а не «максимальная длина».

Этот класс поддерживает как короткий, так и расширенный формы кодирования длины для Ne и Nc. Однако обратите внимание, что не все терминалы и смарт-карты могут принимать APDU, использующие расширенную форму.

Для байтов заголовка CLA, INS, P1 и P2 используется тип Java int для представления 8-битовых беззнаковых значений. В конструкторах значимы только 8 младших битов значения int, указанного приложением. Методы доступа всегда возвращают байт как беззнаковое значение от 0 до 255.

Экземпляры этого класса неизменяемы. В случае передачи данных через массивы байтов выполняется защитное клонирование.

C момента:
1.6
См. также:
  • ResponseAPDU
  • CardChannel.transmit
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
CommandAPDU(byte[] apdu)
Создаёт CommandAPDU из массива байтов, содержащего полное содержимое APDU (заголовок и тело).
CommandAPDU(byte[] apdu, int apduOffset, int apduLength)
Создаёт CommandAPDU из массива байтов, содержащего полное содержимое APDU (заголовок и тело).
CommandAPDU(int cla, int ins, int p1, int p2)
Создаёт CommandAPDU из четырёх байтов заголовка.
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data)
Создаёт CommandAPDU из четырёх байтов заголовка и данных команды.
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int ne)
Создаёт CommandAPDU из четырёх байтов заголовка, данных команды и ожидаемой длины данных ответа.
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength)
Создаёт CommandAPDU из четырёх байтов заголовка и данных команды.
CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength, int ne)
Создаёт CommandAPDU из четырёх байтов заголовка, данных команды и ожидаемой длины данных ответа.
CommandAPDU(int cla, int ins, int p1, int p2, int ne)
Создаёт CommandAPDU из четырёх байтов заголовка и ожидаемой длины данных ответа.
CommandAPDU(ByteBuffer apdu)
Создаёт CommandAPDU из ByteBuffer, содержащего полное содержимое APDU (заголовок и тело).

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object obj)
Сравнивает указанный объект с этой командой APDU на равенство.
byte[] getBytes()
Возвращает копию байтов в этой APDU.
int getCLA()
Возвращает значение байта класса CLA.
byte[] getData()
Возвращает копию байтов данных в теле команды.
int getINS()
Возвращает значение байта инструкции INS.
int getNc()
Возвращает количество байтов данных в теле команды (Nc) или 0, если у этой APDU нет тела.
int getNe()
Возвращает максимальное количество ожидаемых байтов данных в APDU ответа (Ne).
int getP1()
Возвращает значение параметра P1.
int getP2()
Возвращает значение параметра P2.
int hashCode()
Возвращает значение хэш-кода для этой команды APDU.
String toString()
Возвращает строковое представление этой команды APDU.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Краткое описание конструкторов

CommandAPDU

public CommandAPDU(byte[] apdu)
Создает объект CommandAPDU из массива байтов, содержащего полное содержимое APDU (заголовок и тело).

Обратите внимание, что байты APDU копируются для защиты от последующего изменения.

Параметры:
apdu - полная команда APDU
Исключения:
NullPointerException - если apdu равно null
IllegalArgumentException - если apdu не содержит допустимую команду APDU

CommandAPDU

public CommandAPDU(byte[] apdu, int apduOffset, int apduLength)
Создает объект CommandAPDU из массива байтов, содержащего полное содержимое APDU (заголовок и тело). APDU начинается с индекса apduOffset в массиве байтов и имеет длину apduLength байтов.

Обратите внимание, что байты APDU копируются для защиты от последующего изменения.

Параметры:
apdu - полная команда APDU
apduOffset - смещение в массиве байтов, с которого начинаются данные apdu
apduLength - длина APDU
Исключения:
NullPointerException - если apdu равно null
IllegalArgumentException - если apduOffset или apduLength отрицательны, или если apduOffset + apduLength больше, чем apdu.length, или если указанные байты не являются допустимым APDU

CommandAPDU

public CommandAPDU(ByteBuffer apdu)
Создает объект CommandAPDU из объекта ByteBuffer, содержащего полное содержимое APDU (заголовок и тело). Указатель позиции объекта buffer должен быть установлен на начало APDU, а его предел - на конец APDU. После возврата указатель позиции buffer равен его пределу; предел остается неизменным.

Обратите внимание, что данные в ByteBuffer копируются для защиты от последующего изменения.

Параметры:
apdu - объект ByteBuffer, содержащий полное APDU
Исключения:
NullPointerException - если apdu равно null
IllegalArgumentException - если apdu не содержит допустимую команду APDU

CommandAPDU

public CommandAPDU(int cla, int ins, int p1, int p2)
Создает объект CommandAPDU из четырех байтов заголовка. Это случай 1 в ISO 7816, без тела команды.
Параметры:
cla - байт класса CLA
ins - байт инструкции INS
p1 - байт параметра P1
p2 - байт параметра P2

CommandAPDU

public CommandAPDU(int cla, int ins, int p1, int p2, int ne)
Создает объект CommandAPDU из четырех байтов заголовка и ожидаемой длины данных ответа. Это случай 2 в ISO 7816, пустое поле данных команды с указанным Ne. Если Ne равно 0, APDU кодируется как случай 1 в ISO 7816.
Параметры:
cla - байт класса CLA
ins - байт инструкции INS
p1 - байт параметра P1
p2 - байт параметра P2
ne - максимальное количество ожидаемых байтов данных в ответе APDU
Исключения:
IllegalArgumentException - если ne отрицательно или больше 65536

CommandAPDU

public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data)
Создает объект CommandAPDU из четырех байтов заголовка и данных команды. Это случай 3 в ISO 7816, данные команды присутствуют, а Ne отсутствует. Значение Nc принимается как data.length. Если data равно null или его длина равна 0, APDU кодируется как случай 1 в ISO 7816.

Обратите внимание, что байты данных копируются для защиты от последующего изменения.

Параметры:
cla - байт класса CLA
ins - байт инструкции INS
p1 - байт параметра P1
p2 - байт параметра P2
data - массив байтов, содержащий байты данных тела команды
Исключения:
IllegalArgumentException - если data.length больше 65535

CommandAPDU

public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength)
Создает объект CommandAPDU из четырех байтов заголовка и данных команды. Это случай 3 в ISO 7816, данные команды присутствуют, а Ne отсутствует. Значение Nc принимается как dataLength. Если dataLength равно 0, APDU кодируется как случай 1 в ISO 7816.

Обратите внимание, что байты данных копируются для защиты от последующего изменения.

Параметры:
cla - байт класса CLA
ins - байт инструкции INS
p1 - байт параметра P1
p2 - байт параметра P2
data - массив байтов, содержащий байты данных тела команды
dataOffset - смещение в массиве байтов, с которого начинаются байты данных тела команды
dataLength - количество байтов данных в теле команды
Исключения:
NullPointerException - если data равно null, а dataLength не равно 0
IllegalArgumentException - если dataOffset или dataLength отрицательны, или если dataOffset + dataLength больше, чем data.length, или если dataLength больше 65535

CommandAPDU

public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int ne)
Создает объект CommandAPDU из четырех байтов заголовка, данных команды и ожидаемой длины данных ответа. Это случай 4 в ISO 7816, данные команды и Ne присутствуют. Значение Nc принимается как data.length, если data не равно null, и как 0 в противном случае. Если Ne или Nc равны нулю, APDU кодируется как случай 1, 2 или 3 по ISO 7816.

Обратите внимание, что байты данных копируются для защиты от последующего изменения.

Параметры:
cla - байт класса CLA
ins - байт инструкции INS
p1 - байт параметра P1
p2 - байт параметра P2
data - массив байтов, содержащий байты данных тела команды
ne - максимальное количество ожидаемых байтов данных в ответе APDU
Исключения:
IllegalArgumentException - если data.length больше 65535 или если ne отрицательно или больше 65536

CommandAPDU

public CommandAPDU(int cla, int ins, int p1, int p2, byte[] data, int dataOffset, int dataLength, int ne)
Создает объект CommandAPDU из четырех байтов заголовка, данных команды и ожидаемой длины данных ответа. Это случай 4 в ISO 7816, данные команды и Le присутствуют. Значение Nc принимается как dataLength. Если Ne или Nc равны нулю, APDU кодируется как случай 1, 2 или 3 по ISO 7816.

Обратите внимание, что байты данных копируются для защиты от последующего изменения.

Параметры:
cla - байт класса CLA
ins - байт инструкции INS
p1 - байт параметра P1
p2 - байт параметра P2
data - массив байтов, содержащий байты данных тела команды
dataOffset - смещение в массиве байтов, с которого начинаются байты данных тела команды
dataLength - количество байтов данных в теле команды
ne - максимальное количество ожидаемых байтов данных в ответе APDU
Исключения:
NullPointerException - если data равно null, а dataLength не равно 0
IllegalArgumentException - если dataOffset или dataLength отрицательны, или если dataOffset + dataLength больше, чем data.length, или если ne отрицательно или больше 65536, или если dataLength больше 65535

Подробное описание методов

getCLA

public int getCLA()
Возвращает значение байта класса CLA.
Возвращаемое значение:
значение байта класса CLA.

getINS

public int getINS()
Возвращает значение байта инструкции INS.
Возвращаемое значение:
значение байта инструкции INS.

getP1

public int getP1()
Возвращает значение байта параметра P1.
Возвращаемое значение:
значение байта параметра P1.

getP2

public int getP2()
Возвращает значение байта параметра P2.
Возвращаемое значение:
значение байта параметра P2.

getNc

public int getNc()
Возвращает количество байтов данных в теле команды (Nc) или 0, если у этого APDU нет тела. Этот вызов эквивалентен getData().length.
Возвращаемое значение:
количество байтов данных в теле команды или 0, если у этого APDU нет тела.

getData

public byte[] getData()
Возвращает копию байтов данных в теле команды. Если у этого APDU нет тела, этот метод возвращает массив байтов с длиной ноль.
Возвращаемое значение:
копия байтов данных в теле команды или пустой массив байтов, если у этого APDU нет тела.

getNe

public int getNe()
Возвращает максимальное количество ожидаемых байтов данных в ответе APDU (Ne).
Возвращаемое значение:
максимальное количество ожидаемых байтов данных в ответе APDU.

getBytes

public byte[] getBytes()
Возвращает копию байтов в данном APDU.
Возвращает:
копию байтов в данном APDU.

toString

public String toString()
Возвращает строковое представление данного командного APDU.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление данного командного APDU.

equals

public boolean equals(Object obj)
Сравнивает указанный объект с данным командным APDU на равенство. Возвращает true, если данный объект также является CommandAPDU и его байты идентичны байтам в данном CommandAPDU.
Переопределяет:
equals в классе Object
Параметры:
obj - объект, который нужно сравнить на равенство с данным командным APDU
Возвращает:
true, если указанный объект равен данному командному APDU
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает значение хэш-кода для данного командного APDU.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для данного командного APDU.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.smartcardio/javax/smartcardio/CommandAPDU.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API