Class SmartCardService

java.lang.Object
org.kapott.hbci.smartcardio.SmartCardService
Direct Known Subclasses:
ChipTanCardService, HBCICardService

public abstract class SmartCardService extends Object
Smartcard-Service fuer den DDVPCSC-Passport, basierend auf dem OCF-Code aus HBCI4Java 2.5.8.
  • Field Details

  • Constructor Details

    • SmartCardService

      public SmartCardService()
  • Method Details

    • createInstance

      public static <T extends SmartCardService> T createInstance(Class<? extends SmartCardService> type, String name)
      Erzeut eine neue Instanz des Card-Service fuer die angegebene Karte.
      Parameters:
      type - der Typ des zu erzeugenden Service.
      name - optionale Angabe des Kartenlesernamens - noetig, wenn am Rechner mehrere Kartenleser angeschlossen sind.
      Returns:
      die neue Instanz des Card-Service.
    • SCARD_CTL_CODE

      private static int SCARD_CTL_CODE(int code)
      Ermittelt den Namen der Funktion zum Abrufen der Features aus der Karte.
      Parameters:
      code - der Code.
      Returns:
      der Funktions-Code.
    • close

      public void close()
      Schliesst die Karte und resettet den Service.
    • init

      protected void init(javax.smartcardio.Card card)
      Initialisiert den Service mit der angegebenen Karte.
      Parameters:
      card - die Karte.
    • getFeatures

      protected final Map<SmartCardService.Feature,Integer> getFeatures()
      Liefert die Map mit den verfuegbaren Features.
      Returns:
      die Map mit den verfuegbaren Features.
    • getCard

      protected final javax.smartcardio.Card getCard()
      Liefert die Instanz der Smartcard.
      Returns:
      die Instanz der Smartcard.
    • writeRecordBySFI

      protected final void writeRecordBySFI(int sfi, int idx, byte[] data)
      Parameters:
      sfi -
      idx -
      data -
    • updateRecordBySFI

      protected final void updateRecordBySFI(int sfi, int idx, byte[] data)
      Parameters:
      sfi -
      idx -
      data -
    • readRecordBySFI

      protected final byte[] readRecordBySFI(int sfi, int idx)
      Parameters:
      sfi -
      idx -
      Returns:
    • readBinary

      protected byte[] readBinary(int offset, int length)
      Parameters:
      offset -
      length -
      Returns:
    • selectFile

      protected final void selectFile(int id)
      Parameters:
      id -
    • selectSubFile

      protected final void selectSubFile(int id)
      Parameters:
      id -
    • getKeyInfo

      protected final byte[] getKeyInfo(int idx)
      Parameters:
      idx -
      Returns:
    • putData

      protected final void putData(int tag, byte[] data)
      Parameters:
      tag -
      data -
    • getChallenge

      protected final byte[] getChallenge()
      Returns:
    • internalAuthenticate

      protected final byte[] internalAuthenticate(int keynum, byte[] challenge)
      Parameters:
      keynum -
      challenge -
      Returns:
    • send

      protected final void send(javax.smartcardio.CommandAPDU command)
      Sendet ein Kommando an den Kartenleser und prueft, ob es erfolgreich ausgefuehrt wurde.
      Parameters:
      command - das Kommando.
    • receive

      protected final byte[] receive(javax.smartcardio.CommandAPDU command)
      Sendet ein Kommando an den Kartenleser, prueft ob es erfolgreich ausgefuehrt wurde und liefert die Antwort zurueck.
      Parameters:
      command - das Kommando.
      Returns:
      die Antwort.
    • receive

      protected byte[] receive(javax.smartcardio.CommandAPDU command, byte[] returncodes)
      Sendet ein Kommando an den Kartenleser, prueft ob es erfolgreich ausgefuehrt wurde und liefert die Antwort zurueck.
      Parameters:
      command - das Kommando.
      returncodes - zulaessige Return-Codes.
      Returns:
      die Antwort.
    • check

      protected final void check(javax.smartcardio.ResponseAPDU response, byte[] returncodes)
      Prueft das Response auf die angegebenen Return-Codes.
      Parameters:
      response - das Response.
      returncodes - zulaessige Return-Codes.
    • toHex

      protected final String toHex(byte[] bytes)
      Konvertiert die Bytes in HEX-Darstellung.
      Parameters:
      bytes -
      Returns:
      String-Repraesentation.
    • toHex

      protected final String toHex(byte[] bytes, String sep)
      Konvertiert die Bytes in HEX-Darstellung.
      Parameters:
      bytes -
      sep - Separator-Zeichen.
      Returns:
      String-Repraesentation.
    • toBytes

      public byte[] toBytes(String hex)
      Konvertiert den HEX-String zurueck in ein Byte-Array.
      Parameters:
      hex - der Text in HEX-Schreibweise.
      Returns:
      das Byte-Array.
    • expand

      protected final byte[] expand(String st, int len)
      Fuellt den String rechtsbuendig mit Leerzeichen auf die angegebene Laenge.
      Parameters:
      st - der String.
      len - die Gesamtlaenge.
      Returns:
      der codierte String mit Leerzeichen auf der rechten Seite.