java.lang.Object
javax.smartcardio.ResponseAPDU
- All Implemented Interfaces:
Serializable
A response APDU as defined in ISO/IEC 7816-4. It consists of a conditional
body and a two byte trailer.
This class does not attempt to verify that the APDU encodes a semantically
valid response.
Instances of this class are immutable. Where data is passed in or out via byte arrays, defensive cloning is performed.
- Since:
- 1.6
- See Also:
-
Constructor Summary
ConstructorDescriptionResponseAPDU
(byte[] apdu) Constructs a ResponseAPDU from a byte array containing the complete APDU contents (conditional body and trailed). -
Method Summary
Modifier and TypeMethodDescriptionboolean
Compares the specified object with this response APDU for equality.byte[]
getBytes()
Returns a copy of the bytes in this APDU.byte[]
getData()
Returns a copy of the data bytes in the response body.int
getNr()
Returns the number of data bytes in the response body (Nr) or 0 if this APDU has no body.int
getSW()
Returns the value of the status bytes SW1 and SW2 as a single status word SW.int
getSW1()
Returns the value of the status byte SW1 as a value between 0 and 255.int
getSW2()
Returns the value of the status byte SW2 as a value between 0 and 255.int
hashCode()
Returns the hash code value for this response APDU.toString()
Returns a string representation of this response APDU.
-
Constructor Details
-
ResponseAPDU
public ResponseAPDU(byte[] apdu) Constructs a ResponseAPDU from a byte array containing the complete APDU contents (conditional body and trailed).Note that the byte array is cloned to protect against subsequent modification.
- Parameters:
apdu
- the complete response APDU- Throws:
NullPointerException
- if apdu is nullIllegalArgumentException
- if apdu.length is less than 2
-
-
Method Details
-
getNr
public int getNr()Returns the number of data bytes in the response body (Nr) or 0 if this APDU has no body. This call is equivalent togetData().length
.- Returns:
- the number of data bytes in the response body or 0 if this APDU has no body.
-
getData
public byte[] getData()Returns a copy of the data bytes in the response body. If this APDU has no body, this method returns a byte array with a length of zero.- Returns:
- a copy of the data bytes in the response body or the empty byte array if this APDU has no body.
-
getSW1
public int getSW1()Returns the value of the status byte SW1 as a value between 0 and 255.- Returns:
- the value of the status byte SW1 as a value between 0 and 255.
-
getSW2
public int getSW2()Returns the value of the status byte SW2 as a value between 0 and 255.- Returns:
- the value of the status byte SW2 as a value between 0 and 255.
-
getSW
public int getSW()Returns the value of the status bytes SW1 and SW2 as a single status word SW. It is defined as(getSW1() << 8) | getSW2()
- Returns:
- the value of the status word SW.
-
getBytes
public byte[] getBytes()Returns a copy of the bytes in this APDU.- Returns:
- a copy of the bytes in this APDU.
-
toString
-
equals
Compares the specified object with this response APDU for equality. Returns true if the given object is also a ResponseAPDU and its bytes are identical to the bytes in this ResponseAPDU. -
hashCode
-