Class ResponseAPDU

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:
  • 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
    boolean
    Compares the specified object with this response APDU for equality.
    byte[]
    Returns a copy of the bytes in this APDU.
    byte[]
    Returns a copy of the data bytes in the response body.
    int
    Returns the number of data bytes in the response body (Nr) or 0 if this APDU has no body.
    int
    Returns the value of the status bytes SW1 and SW2 as a single status word SW.
    int
    Returns the value of the status byte SW1 as a value between 0 and 255.
    int
    Returns the value of the status byte SW2 as a value between 0 and 255.
    int
    Returns the hash code value for this response APDU.
    Returns a string representation of this response APDU.

    Methods declared in class Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    May cause performance issues, deadlocks and hangs.
    final Class<? extends Object>
    Answers the unique instance of java.lang.Class which represents the class of the receiver.
    final void
    Causes one thread which is waiting on the receiver to be made ready to run.
    final void
    Causes all threads which are waiting on the receiver to be made ready to run.
    final void
    Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated by notify or notifyAll).
    final void
    wait(long time)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
    final void
    wait(long time, int frac)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
  • 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 null
      IllegalArgumentException - 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 to getData().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

      public String toString()
      Returns a string representation of this response APDU.
      Overrides:
      toString in class Object
      Returns:
      a String representation of this response APDU.
    • equals

      public boolean equals(Object obj)
      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:
      equals in class Object
      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:
    • hashCode

      public int hashCode()
      Returns the hash code value for this response APDU.
      Overrides:
      hashCode in class Object
      Returns:
      the hash code value for this response APDU.
      See Also: