org.kapott.hbci.passport
Class HBCIPassportDDV

java.lang.Object
  |
  +--org.kapott.hbci.passport.AbstractHBCIPassport
        |
        +--org.kapott.hbci.passport.HBCIPassportDDV
All Implemented Interfaces:
HBCIPassport, HBCIPassportInternal

public final class HBCIPassportDDV
extends AbstractHBCIPassport

Passport-Klasse für Sicherheitsverfahren DDV mit Medium Chipkarte. Bei dieser Variante gibt die Bank eine Chipkarte aus, auf der die Zugangsdaten des Nutzers für den HBCI-Zugang gespeichert sind. Außerdem befinden sich auf der Karte die (symmetrischen) Schlüssel für die Erzeugung der Signaturen und für die Verschlüsselung der Nachrichten.

Diese Klasse unterstützt DDV-Chipkarten vom Typ 0 und 1. Auf einer DDV-Chipkarte können prinzipiell bis zu fünf HBCI-Zugangsdatensätze (für unterschiedliche Banken) gespeichert werden. Diese Klasse ermöglicht die Benutzung eines beliebigen dieser Datensätze. Das hat aber in der Praxis kaum Relevanz, weil dann alle HBCI-Zugänge die gleichen kryptografischen Schlüssel benutzen müssten (es gibt nur ein Schlüsselpaar pro Chipkarte). Für Chipkarten, die von Betreibern für HBCI-Testzugängen ausgegeben werden, ist diese Option jedoch nützlich, da hier häufig tatsächlich mehrere Zugänge existieren und diese Zugangsdaten auf einer einzigen Chipkarte gespeichert werden können.

Prinzipiell benötigt diese Passport-Variante also keine zusätzliche Schlüsseldatei, da alle benötigten HBCI-Daten auf der Chipkarte gespeichert sind. Dennoch verwendet diese Klasse eine zusätzliche Datei. In dieser werden u.a. die zuletzt empfangenen BPD und UPD sowie die zuletzt benutzte HBCI-Version gespeichert, um beim nächsten Benutzen dieses HBCI-Zuganges diese Daten nicht erneut abfragen zu müssen. Diese zusätzliche Datei wird automatisch angelegt, der Dateiname setzt sich aus einem definierbaren Prefix (Pfad) und der Seriennummer der Chipkarte zusammen.

See Also:
Serialized Form

Method Summary
 java.lang.String getCardId()
          Gibt eine 16-stellige Identifikationsnummer für die verwendete Chipkarte zurück
 int getComPort()
          Gibt zurück, welcher logische Port für die Kommunikation mit der Chipkarte benutzt wird.
 int getCTNumber()
          Gibt die logische Nummer zurück, unter der der Chipkartenleser zu verwenden ist.
 int getEntryIdx()
          Gibt die Indexnummer des Datensatzes zurück, dessen Inhalt als HBCI-Account-Informationen benutzt werden sollen.
 java.lang.String getFileName()
          Gibt den Dateinamen für die zusätzliche Schlüsseldatei zurück.
 java.lang.String getLibName()
          Gibt den Dateinamen der verwendeten CTAPI-Treiberbibliothek zurück.
 int getUseBio()
          Gibt zurück, ob zur PIN-Eingabe am Chipkartenterminal das Biometric-Interface verwendet werden soll.
 int getUseSoftPin()
          Gibt zurück, ob die PIN-Eingabe für die Chipkarte über das Keypad des Chipkartenterminals oder über die PC-Tastatur erfolgen soll.
 void saveBankData()
          Schreiben der aktuellen Zugangsdaten auf die Chipkarte.
 
Methods inherited from class org.kapott.hbci.passport.AbstractHBCIPassport
getInstance, getInstance, getInstance, getInstance
 
Methods inherited from interface org.kapott.hbci.passport.HBCIPassport
changePassphrase, clearBPD, clearUPD, close, fillAccountInfo, getAccount, getAccounts, getBLZ, getBPD, getBPDVersion, getClientData, getCountry, getCustomerId, getDefaultLang, getFilterType, getHBCIVersion, getHost, getInstName, getPort, getSuppLangs, getSuppSecMethods, getSuppVersions, getUPD, getUPDVersion, getUserId, saveChanges, setClientData, setCustomerId, setHost, syncSigId, syncSysId
 

Method Detail

getFileName

public java.lang.String getFileName()

Gibt den Dateinamen für die zusätzliche Schlüsseldatei zurück. Diese Datei enthält gecachte Daten, um das Initialisieren eines HBCIHandlers mit einem DDV-Passport zu beschleunigen. Defaultmäßig setzt sich der Dateiname aus einem definiertbaren Prefix (Pfad) und der Seriennummer der Chipkarte zusammen.

Da diese Datei vertrauliche Daten enthält (z.B. die Kontodaten des Bankkunden), wird diese Datei verschlüsselt. Vor dem erstmaligen Lesen bzw. beim Erzeugen dieser Datei wird deshalb via Callback-Mechanismus nach einem Passwort gefragt, das zur Erzeugung des kryptografischen Schlüssels für die Verschlüsselung benutzt wird.

Returns:
Dateiname der Cache-Datei

getComPort

public int getComPort()
Gibt zurück, welcher logische Port für die Kommunikation mit der Chipkarte benutzt wird. Dieser Wert wird vom CTAPI-Treiber des jeweils verwendeten Chipkartenterminals interpretiert.

Returns:
Schnittstellennummer, an der der Chipkartenleser angeschlossen ist

getCTNumber

public int getCTNumber()
Gibt die logische Nummer zurück, unter der der Chipkartenleser zu verwenden ist. Wird nur ein Chipkartenleser verwendet, so kann dieser Wert immer 0 sein. Bei gleichzeitiger Verwendung mehrerer Chipkartenleser sollten die einzelnen Leser hier unterschiedliche Werte zugewiesen bekommen. Dieser Wert wird vom CTAPI-Treiber benutzt, um die Chipkartenleser intern auseinander zu halten.

Returns:
logische Nummer des Chipkartenlesers

getUseBio

public int getUseBio()
Gibt zurück, ob zur PIN-Eingabe am Chipkartenterminal das Biometric-Interface verwendet werden soll. Diese Funktion steht zur Zeit nur für Reiner-SCT- Chipkartenterminals zur Verfügung.

Returns:
1, wenn die Biometrie-Einheit des Chipkartenterminals für die PIN-Eingabe benutzt werden soll; 0, wenn die Biometrie-Einheit nicht benutzt werden soll, oder -1, wenn die Verwendung der Biometrie-Einheit automatisch erkannt werden soll.

getUseSoftPin

public int getUseSoftPin()
Gibt zurück, ob die PIN-Eingabe für die Chipkarte über das Keypad des Chipkartenterminals oder über die PC-Tastatur erfolgen soll. Dieser Wert wird benutzt, um die PIN-Eingabe sowohl bei Klasse-2-Lesern mit eigener Tastatur wir auch für Klasse-1-Leser ohne separate Tastatur zu ermöglichen.

Returns:
PIN-Eingabe über welche Tastatur
  • =0 PIN-Eingabe zwingend über Terminal-Keypad
  • =1 PIN-Eingabe zwingend über PC-Tastatur
  • =-1 automatische Erkennung, ob bevorzugtes Chipkarten-Terminal-Keypad verfügbar ist

getEntryIdx

public int getEntryIdx()
Gibt die Indexnummer des Datensatzes zurück, dessen Inhalt als HBCI-Account-Informationen benutzt werden sollen. Auf einer Chipkarte können bis zu fünf Zugangsdatensätze gespeichert sein, dieser Wert enthält die Nummer des benutzten Eintrages (von 1-5). Normalerweise wird der Eintrag Nummer 1 (welcher auch meist der einzige Eintrag ist) verwendet.

Returns:
Indexnummer des verwendeten Account-Datensatzes

getCardId

public java.lang.String getCardId()
Gibt eine 16-stellige Identifikationsnummer für die verwendete Chipkarte zurück

Returns:
Chipkarten-Identifikationsnummer

saveBankData

public void saveBankData()
Schreiben der aktuellen Zugangsdaten auf die Chipkarte. Werden Zugangsdaten des Passport verändert (z.B. mit setHost(), so werden diese Daten durch die Methode saveChanges() nicht auf der Chipkarte gespeichert. Durch Aufruf dieser Methode wird das Schreiben der aktuellen Zugangsdaten erzwungen. Zu den hiervon betroffenen Daten zählen der Ländercode der Bank, die Bankleitzahl, die Hostadresse des HBCI-Servers sowie die User-ID zur Anmeldung am HBCI-Server.


getLibName

public java.lang.String getLibName()
Gibt den Dateinamen der verwendeten CTAPI-Treiberbibliothek zurück.

Returns:
Dateiname der CTAPI-Bibliothek