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.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static enum 
    Kapselt die Features der Karte.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected final void
    check(javax.smartcardio.ResponseAPDU response, byte[] returncodes)
    Prueft das Response auf die angegebenen Return-Codes.
    void
    Schliesst die Karte und resettet den Service.
    static <T extends SmartCardService>
    T
    createInstance(Class<? extends SmartCardService> type, String name)
    Erzeut eine neue Instanz des Card-Service fuer die angegebene Karte.
    protected final byte[]
    expand(String st, int len)
    Fuellt den String rechtsbuendig mit Leerzeichen auf die angegebene Laenge.
    protected final javax.smartcardio.Card
    Liefert die Instanz der Smartcard.
    protected final byte[]
     
    Liefert die Map mit den verfuegbaren Features.
    protected final byte[]
    getKeyInfo(int idx)
     
    protected void
    init(javax.smartcardio.Card card)
    Initialisiert den Service mit der angegebenen Karte.
    protected final byte[]
    internalAuthenticate(int keynum, byte[] challenge)
     
    protected final void
    putData(int tag, byte[] data)
     
    protected byte[]
    readBinary(int offset, int length)
     
    protected final byte[]
    readRecordBySFI(int sfi, int idx)
     
    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.
    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.
    protected final void
    selectFile(int id)
     
    protected final void
    selectSubFile(int id)
     
    protected final void
    send(javax.smartcardio.CommandAPDU command)
    Sendet ein Kommando an den Kartenleser und prueft, ob es erfolgreich ausgefuehrt wurde.
    byte[]
    Konvertiert den HEX-String zurueck in ein Byte-Array.
    protected final String
    toHex(byte[] bytes)
    Konvertiert die Bytes in HEX-Darstellung.
    protected final String
    toHex(byte[] bytes, String sep)
    Konvertiert die Bytes in HEX-Darstellung.
    protected final void
    updateRecordBySFI(int sfi, int idx, byte[] data)
     
    protected final void
    writeRecordBySFI(int sfi, int idx, byte[] data)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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.
    • 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.