java.lang.Object
javax.smartcardio.ResponseAPDU
- All Implemented Interfaces:
Serializable
public final class ResponseAPDU extends Object implements 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:
CommandAPDU,CardChannel.transmit, Serialized Form
-
Constructor Summary
Constructors Constructor Description ResponseAPDU(byte[] apdu)Constructs a ResponseAPDU from a byte array containing the complete APDU contents (conditional body and trailed). -
Method Summary
Modifier and Type Method Description booleanequals(Object obj)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.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.StringtoString()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 as 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
Returns a string representation of this response APDU. -
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.- Overrides:
equalsin classObject- Parameters:
obj- the object to be compared for equality with this response APDU- Returns:
- true if the specified object is equal to this response APDU
- See Also:
Object.hashCode(),HashMap
-
hashCode
public int hashCode()Returns the hash code value for this response APDU.- Overrides:
hashCodein classObject- Returns:
- the hash code value for this response APDU.
- See Also:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-