Class ResponseAPDU
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
ConstructorsConstructorDescriptionResponseAPDU(byte[] apdu) Constructs a ResponseAPDU from a byte array containing the complete APDU contents (conditional body and trailed). -
Method Summary
Modifier and TypeMethodDescriptionbooleanCompares 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.intgetNr()Returns the number of data bytes in the response body (Nr) or 0 if this APDU has no body.intgetSW()Returns the value of the status bytes SW1 and SW2 as a single status word SW.intgetSW1()Returns the value of the status byte SW1 as a value between 0 and 255.intgetSW2()Returns the value of the status byte SW2 as a value between 0 and 255.inthashCode()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
-