Класс 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.
Экземпляры этого класса неизменяемы. При передаче данных в виде массивов байтов или получении данных в виде массивов байтов создаются защитные копии.
- Начиная с:
- 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. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определённого промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определённого промежутка реального времени. |
Подробное описание конструкторов
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)
position буфера должен быть установлен в начало APDU, а limit — в конец APDU. По завершении position буфера равен его пределу; предел остаётся неизменным. Обратите внимание: данные в 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.