Класс CommandAPDU
- Все реализованные интерфейсы:
Serializable
public final class CommandAPDU extends Object implements Serializable
Обратите внимание, что при указании ожидаемой длины APDU ответа в конструкторах, указывается фактическая длина (Ne), а не её закодированная форма (Le). Аналогично, getNe() возвращает фактическое значение Ne. Другими словами, значение 0 означает «нет данных в APDU ответа», а не «максимальная длина».
Этот класс поддерживает как короткий, так и расширенный формы кодирования длины для Ne и Nc. Однако обратите внимание, что не все терминалы и смарт-карты могут принимать APDU, использующие расширенную форму.
Для байтов заголовка CLA, INS, P1 и P2 используется тип Java int для представления 8-битовых беззнаковых значений. В конструкторах значимы только 8 младших битов значения int, указанного приложением. Методы доступа всегда возвращают байт как беззнаковое значение от 0 до 255.
Экземпляры этого класса неизменяемы. В случае передачи данных через массивы байтов выполняется защитное клонирование.
- C момента:
- 1.6
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CommandAPDU |
Создаёт CommandAPDU из массива байтов, содержащего полное содержимое APDU (заголовок и тело). |
CommandAPDU |
Создаёт CommandAPDU из массива байтов, содержащего полное содержимое APDU (заголовок и тело). |
CommandAPDU |
Создаёт CommandAPDU из четырёх байтов заголовка. |
CommandAPDU |
Создаёт CommandAPDU из четырёх байтов заголовка и данных команды. |
CommandAPDU |
Создаёт CommandAPDU из четырёх байтов заголовка, данных команды и ожидаемой длины данных ответа. |
CommandAPDU |
Создаёт CommandAPDU из четырёх байтов заголовка и данных команды. |
CommandAPDU |
Создаёт CommandAPDU из четырёх байтов заголовка, данных команды и ожидаемой длины данных ответа. |
CommandAPDU |
Создаёт CommandAPDU из четырёх байтов заголовка и ожидаемой длины данных ответа. |
CommandAPDU |
Создаёт CommandAPDU из ByteBuffer, содержащего полное содержимое APDU (заголовок и тело). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этой командой 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. |
Краткое описание конструкторов
CommandAPDU
public CommandAPDU(byte[] apdu)
Обратите внимание, что байты APDU копируются для защиты от последующего изменения.
- Параметры:
-
apdu- полная команда APDU - Исключения:
-
NullPointerException- если apdu равно null -
IllegalArgumentException- если apdu не содержит допустимую команду APDU
CommandAPDU
public CommandAPDU(byte[] apdu, int apduOffset, int apduLength)
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)
Обратите внимание, что данные в ByteBuffer копируются для защиты от последующего изменения.
- Параметры:
-
apdu- объект ByteBuffer, содержащий полное APDU - Исключения:
-
NullPointerException- если apdu равно null -
IllegalArgumentException- если apdu не содержит допустимую команду APDU
CommandAPDU
public CommandAPDU(int cla, int ins, int p1, int p2)
- Параметры:
-
cla- байт класса CLA -
ins- байт инструкции INS -
p1- байт параметра P1 -
p2- байт параметра P2
CommandAPDU
public CommandAPDU(int cla, int ins, int p1, int p2, int ne)
- Параметры:
-
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)
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)
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)
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)
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.
getINS
public int getINS()
- Возвращаемое значение:
- значение байта инструкции INS.
getP1
public int getP1()
- Возвращаемое значение:
- значение байта параметра P1.
getP2
public int getP2()
- Возвращаемое значение:
- значение байта параметра P2.
getNc
public int getNc()
getData().length.- Возвращаемое значение:
- количество байтов данных в теле команды или 0, если у этого APDU нет тела.
getData
public byte[] getData()
- Возвращаемое значение:
- копия байтов данных в теле команды или пустой массив байтов, если у этого APDU нет тела.
getNe
public int getNe()
- Возвращаемое значение:
- максимальное количество ожидаемых байтов данных в ответе APDU.
getBytes
public byte[] getBytes()
- Возвращает:
- копию байтов в данном APDU.
toString
equals
public boolean equals(Object obj)
hashCode
© 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