org.kapott.hbci.passport
Class AbstractHBCIPassport

java.lang.Object
  extended byorg.kapott.hbci.passport.AbstractHBCIPassport
All Implemented Interfaces:
HBCIPassport, org.kapott.hbci.passport.HBCIPassportInternal, java.io.Serializable

public abstract class AbstractHBCIPassport
extends java.lang.Object
implements org.kapott.hbci.passport.HBCIPassportInternal, java.io.Serializable

Diese Klasse stellt die Basisklasse für alle "echten" Passport-Implementationen dar. Hier werden bereits einige Methoden implementiert sowie einige zusätzliche Hilfsmethoden zur Verfügung gestellt.

Aus einer HBCI-Anwendung heraus ist hier nur eine einzige Methode interessant, um eine Instanz eines bestimmtes Passports zu erzeugen

See Also:
Serialized Form

Field Summary
protected static boolean FOR_LOAD
           
protected static boolean FOR_SAVE
           
 
Fields inherited from interface org.kapott.hbci.passport.HBCIPassport
ROLE_CON, ROLE_ISS, ROLE_WIT
 
Constructor Summary
AbstractHBCIPassport(java.lang.Object init)
           
 
Method Summary
 void afterCustomDialogInitHook(org.kapott.hbci.manager.HBCIDialog dialog)
           
protected  boolean askForMissingData(boolean needCountry, boolean needBLZ, boolean needHost, boolean needPort, boolean needFilter, boolean needUserId, boolean needCustomerId)
           
 void beforeCustomDialogHook(org.kapott.hbci.manager.HBCIDialog dialog)
           
protected  javax.crypto.SecretKey calculatePassportKey(boolean forSaving)
           
 boolean canMixSecMethods()
           
 void changePassphrase()
          Ändern des Passwortes für die Schlüsseldatei.
static byte[] checkForCryptDataSize(byte[] buffer, int size)
           
 void clearBPD()
          Löschen der lokal gespeicherten BPD.
 void clearInstDigKey()
           
 void clearInstEncKey()
           
 void clearInstSigKey()
           
 void clearMyDigKey()
           
 void clearMyEncKey()
           
 void clearMySigKey()
           
 void clearUPD()
          Löschen der lokal gespeicherten UPD.
 void close()
          Schließen eines Passport-Objektes.
 void closeComm()
           
 void fillAccountInfo(Konto account)
          Ausfüllen fehlender Kontoinformationen.
 HBCIKey[][] generateNewUserKeys()
           
 Konto getAccount(java.lang.String number)
          Gibt ein Konto-Objekt zu einer bestimmten Kontonummer zurück.
 Konto[] getAccounts()
          Gibt ein Array mit Kontoinformationen zurück.
 java.lang.String getBLZ()
          Gibt die Bankleitzahl des Kreditinstitutes zurück.
 java.util.Properties getBPD()
          Gibt die gespeicherten BPD zurück.
 java.lang.String getBPDVersion()
          Gibt die Versionsnummer der lokal gespeicherten BPD zurück.
 java.lang.String getCID()
           
 java.lang.Object getClientData(java.lang.String id)
          Holen von clientseitig gespeicherten zusätzlichen Daten.
 org.kapott.hbci.comm.Comm getComm()
           
 org.kapott.hbci.comm.Filter getCommFilter()
           
protected abstract  org.kapott.hbci.comm.Comm getCommInstance()
           
 java.lang.String getCountry()
          Gibt den Ländercode der Bank zurück.
 java.lang.String getCustomerId()
          Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird.
 java.lang.String getCustomerId(int idx)
           
 java.lang.String getDefaultLang()
          Gibt die Standardsprache des HBCI-Servers zurück.
 java.lang.String getFilterType()
          Gibt zurück, welcher Datenfilter für die Kommunikation mit dem HBCI-Server verwendet wird.
 java.lang.String getHBCIVersion()
          Gibt die HBCI-Version zurück, die zuletzt verwendet wurde.
 java.lang.String getHost()
          Gibt den Hostnamen des HBCI-Servers für dieses Passport zurück.
static HBCIPassport getInstance()
          Entspricht getInstance((Object)null)
static HBCIPassport getInstance(java.lang.Object init)
          Erzeugt eine Instanz eines HBCI-Passports.
static HBCIPassport getInstance(java.lang.String name)
          Entspricht getInstance(name,null)
static HBCIPassport getInstance(java.lang.String name, java.lang.Object init)
          Erzeugt eine Instanz eines HBCIPassports und gibt diese zurück.
 java.lang.String getInstName()
          Gibt den Namen des Kreditinstitutes zurück.
 java.util.Properties getJobRestrictions(java.lang.String specname)
           
 java.util.Properties getJobRestrictions(java.lang.String gvname, java.lang.String version)
           
 java.lang.String getLang()
           
 int getMaxGVperMsg()
           
 int getMaxGVSegsPerMsg()
           
 int getMaxMsgSizeKB()
           
protected  java.lang.String getParamHeader()
           
 java.util.Properties getParamSegmentNames()
           
 org.kapott.hbci.manager.IHandlerData getParentHandlerData()
           
 java.lang.Object getPersistentData(java.lang.String id)
           
 java.lang.Integer getPort()
          Gibt die TCP-Portnummer auf dem HBCI-Server zurück, zu der eine HBCI-Verbindung aufgebaut werden soll.
 java.lang.Long getSigId()
           
 java.lang.String getStoredCustomerId()
           
 java.lang.String[][] getSuppCompMethods()
           
 java.lang.String[] getSuppLangs()
          Gibt eine Liste aller unterstützten Sprachcodes zurück.
 java.lang.String[][] getSuppSecMethods()
          Gibt eine Liste der vom HBCI-Server unterstützten Sicherheitsmechanismen zurück.
 java.lang.String[] getSuppVersions()
          Gibt eine Liste aller unterstützten HBCI-Versionen zurück.
 java.lang.String getSysId()
           
 java.util.Properties getUPD()
          Gibt die gespeicherten UPD (User-Parameter-Daten) zurück.
 java.lang.String getUPDVersion()
          Gibt die Versionsnummer der lokal gespeicherten UPD zurück.
 java.lang.String getUserId()
          Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.
 void incSigId()
           
 boolean isAnonymous()
           
 boolean onlyBPDGVs()
           
 boolean postInitResponseHook(HBCIMsgStatus msgStatus, boolean anonDialog)
           
 void setBLZ(java.lang.String blz)
           
 void setBPD(java.util.Properties bpd)
           
 void setCID(java.lang.String cid)
           
 void setClientData(java.lang.String id, java.lang.Object o)
          Speichern zusätzlicher Daten im Passport-Objekt.
 void setCountry(java.lang.String country)
           
 void setCustomerId(java.lang.String customerid)
          Setzen der zu verwendenden Kunden-ID.
 void setFilterType(java.lang.String filter)
           
 void setHBCIVersion(java.lang.String hbciversion)
           
 void setHost(java.lang.String host)
          Manuelles Setzen der Adresse des HBCI-Servers.
protected  void setParamHeader(java.lang.String paramHeader)
           
 void setParentHandlerData(org.kapott.hbci.manager.IHandlerData handler)
           
 void setPersistentData(java.lang.String id, java.lang.Object o)
           
 void setPort(java.lang.Integer port)
          Setzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird.
 void setProfileMethod(java.lang.String method)
           
 void setProfileVersion(java.lang.String version)
           
 void setSigId(java.lang.Long sigid)
           
 void setSysId(java.lang.String sysid)
           
 void setUPD(java.util.Properties upd)
           
 void setUserId(java.lang.String userid)
           
 void syncSigId()
          Synchronisation der Signatur-ID erzwingen (nur für RDH-Passports sinnvoll).
 void syncSysId()
          Synchronisation der System-ID (nur für RDH-Passports sinnvoll).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.kapott.hbci.passport.HBCIPassportInternal
decrypt, encrypt, getCryptAlg, getCryptFunction, getCryptKeyType, getCryptMode, getHashAlg, getInstDigKeyName, getInstDigKeyNum, getInstDigKeyVersion, getInstEncKeyName, getInstEncKeyNum, getInstEncKeyVersion, getInstSigKeyName, getInstSigKeyNum, getInstSigKeyVersion, getMyEncKeyName, getMyEncKeyNum, getMyEncKeyVersion, getMySigKeyName, getMySigKeyNum, getMySigKeyVersion, getPassportTypeName, getProfileMethod, getProfileVersion, getSigAlg, getSigFunction, getSigMode, getSysStatus, needUserSig, resetPassphrase, setInstDigKey, setInstEncKey, setInstSigKey, setMyPrivateDigKey, setMyPrivateEncKey, setMyPrivateSigKey, setMyPublicDigKey, setMyPublicEncKey, setMyPublicSigKey, sign, verify
 
Methods inherited from interface org.kapott.hbci.passport.HBCIPassport
getInstEncKey, getInstSigKey, getMyPrivateDigKey, getMyPrivateEncKey, getMyPrivateSigKey, getMyPublicDigKey, getMyPublicEncKey, getMyPublicSigKey, hasInstDigKey, hasInstEncKey, hasInstSigKey, hasMyEncKey, hasMySigKey, isSupported, needDigKey, needInstKeys, needUserKeys, saveChanges
 

Field Detail

FOR_SAVE

protected static final boolean FOR_SAVE
See Also:
Constant Field Values

FOR_LOAD

protected static final boolean FOR_LOAD
See Also:
Constant Field Values
Constructor Detail

AbstractHBCIPassport

public AbstractHBCIPassport(java.lang.Object init)
Method Detail

askForMissingData

protected boolean askForMissingData(boolean needCountry,
                                    boolean needBLZ,
                                    boolean needHost,
                                    boolean needPort,
                                    boolean needFilter,
                                    boolean needUserId,
                                    boolean needCustomerId)

getComm

public final org.kapott.hbci.comm.Comm getComm()
Specified by:
getComm in interface org.kapott.hbci.passport.HBCIPassportInternal

getCommInstance

protected abstract org.kapott.hbci.comm.Comm getCommInstance()

getCommFilter

public final org.kapott.hbci.comm.Filter getCommFilter()
Specified by:
getCommFilter in interface org.kapott.hbci.passport.HBCIPassportInternal

closeComm

public final void closeComm()
Specified by:
closeComm in interface org.kapott.hbci.passport.HBCIPassportInternal

getBPD

public final java.util.Properties getBPD()
Description copied from interface: HBCIPassport
Gibt die gespeicherten BPD zurück. Die Auswertung der BPD seitens einer HBCI-Anwendung auf direktem Weg wird nicht empfohlen, da es keine Dokumentation über die Namensgebung der einzelnen Einträge gibt.

Specified by:
getBPD in interface HBCIPassport
Returns:
die Bankparamterdaten oder null, falls diese nicht im Passport vorhanden sind

setHBCIVersion

public final void setHBCIVersion(java.lang.String hbciversion)
Specified by:
setHBCIVersion in interface org.kapott.hbci.passport.HBCIPassportInternal

getHBCIVersion

public final java.lang.String getHBCIVersion()
Description copied from interface: HBCIPassport
Gibt die HBCI-Version zurück, die zuletzt verwendet wurde. Der hier zurückgegebene Wert ist der selbe, der bei der Initialisierung des HBCIHandler verwendet werden kann. Um also einen HBCIHandler zu erzeugen, der mit der HBCI-Version arbeitet, mit der ein Passport-Objekt zuletzt benutzt wurde, so kann das mit new HBCIHandler(passport.getHBCIVersion(),passport) erfolgen (vorausgesetzt, passport.getHBCIVersion() gibt einen nicht-leeren String zurück.

Specified by:
getHBCIVersion in interface HBCIPassport
Returns:
Die zuletzt verwendete HBCI-Version. Ist diese Information nicht verfügbar, so wird ein leerer String zurückgegeben.

getUPD

public final java.util.Properties getUPD()
Description copied from interface: HBCIPassport
Gibt die gespeicherten UPD (User-Parameter-Daten) zurück. Eine direkte Auswertung des Inhalts dieses Property-Objektes wird nicht empfohlen, da die Benennung der einzelnen Einträge nicht explizit dokumentiert ist.

Specified by:
getUPD in interface HBCIPassport
Returns:
die Userparameterdaten oder null, falls diese nicht im Passport vorhanden sind

getBLZ

public final java.lang.String getBLZ()
Description copied from interface: HBCIPassport

Gibt die Bankleitzahl des Kreditinstitutes zurück. Bei Verwendung dieser Methode ist Vorsicht geboten, denn hier ist die Bankleitzahl der Bank gemeint, die den HBCI-Server betreibt. I.d.R. deckt sich diese BLZ zwar mit der BLZ der Konten des Bankkunden, es gibt aber auch Fälle, wo die BLZ, die mit dieser Methode ermittelt wird, anders ist als die BLZ bei den Kontoverbindungen des Kunden.

Für die Ermittlung der BLZ für die Kontodaten sollte statt dessen die Methode HBCIPassport.getAccounts() benutzt werden.

Specified by:
getBLZ in interface HBCIPassport
Returns:
die BLZ der Bank

getCountry

public final java.lang.String getCountry()
Description copied from interface: HBCIPassport
Gibt den Ländercode der Bank zurück. Für deutsche Banken ist das der String "DE".

Specified by:
getCountry in interface HBCIPassport
Returns:
Ländercode der Bank

getAccounts

public final Konto[] getAccounts()
Description copied from interface: HBCIPassport
Gibt ein Array mit Kontoinformationen zurück. Auf die hier zurückgegebenen Konten kann via HBCI zugegriffen werden. Nicht jede Bank unterstützt diese Abfrage, so dass dieses Array u.U. auch leer sein kann, obwohl natürlich via HBCI auf bestimmte Konten zugegriffen werden kann. In diesem Fall müssen die Kontoinformationen anderweitig ermittelt werden (manuelle Eingabe des Anwenders).

Specified by:
getAccounts in interface HBCIPassport
Returns:
Array mit Kontoinformationen über verfügbare HBCI-Konten

fillAccountInfo

public final void fillAccountInfo(Konto account)
Description copied from interface: HBCIPassport
Ausfüllen fehlender Kontoinformationen. In der Liste der verfügbaren Konten (siehe HBCIPassport.getAccounts()) wird nach einem Konto gesucht, welches die gleiche Kontonummer hat wie das übergebene Konto account. Wird ein solches Konto gefunden, so werden die Daten dieses gefundenen Kontos in das account-Objekt übertragen.

Diese Methode kann benutzt werden, wenn zu einem Konto nicht alle Daten bekannt sind, wenigstens aber die Kontonummer.

Specified by:
fillAccountInfo in interface HBCIPassport
Parameters:
account - unvollständige Konto-Informationen, bei denen die fehlenden Daten nachgetragen werden

getAccount

public final Konto getAccount(java.lang.String number)
Description copied from interface: HBCIPassport
Gibt ein Konto-Objekt zu einer bestimmten Kontonummer zurück. Dazu wird die Liste, die via HBCIPassport.getAccounts() erzeugt wird, nach der Kontonummer durchsucht. Es wird in jedem Fall ein nicht-leeres Kontoobjekt zurückgegeben. Wird die Kontonummer jedoch nicht in der Liste gefunden, so wird das Konto-Objekt aus den "allgemeinen" Bank-Daten gebildet: Kontonummer=number; Länderkennung, BLZ und Kunden-ID aus dem Passport-Objekt; Währung des Kontos hart auf "EUR"; Name=Kunden-ID.

Specified by:
getAccount in interface HBCIPassport
Parameters:
number - die Kontonummer, für die ein Konto-Objekt erzeugt werden soll
Returns:
ein Konto-Objekt, welches mindestens die Kontonummer enthält. Wenn verfügbar, so sind auch die restlichen Informationen über dieses Konto (BLZ, Inhaber, Währung usw.) ausgefüllt

getHost

public java.lang.String getHost()
Description copied from interface: HBCIPassport
Gibt den Hostnamen des HBCI-Servers für dieses Passport zurück. Handelt es sich bei dem Passport-Objekt um ein PIN/TAN-Passport, so enthält dieser String die URL, die für die HTTPS-Kommunikation mit dem HBCI-Server der Bank benutzt wird.

Specified by:
getHost in interface HBCIPassport
Returns:
Hostname oder IP-Adresse des HBCI-Servers

getPort

public final java.lang.Integer getPort()
Description copied from interface: HBCIPassport
Gibt die TCP-Portnummer auf dem HBCI-Server zurück, zu der eine HBCI-Verbindung aufgebaut werden soll. In der Regel ist das der Port 3000, für PIN/TAN-Passports wird hier 443 (für HTTPS-Port) zurückgegeben. Der zu benutzende TCP-Port für die Kommunikation kannn mit HBCIPassport.setPort(Integer) geändert werden.

Specified by:
getPort in interface HBCIPassport
Returns:
TCP-Portnummer auf dem HBCI-Server

getFilterType

public final java.lang.String getFilterType()
Description copied from interface: HBCIPassport
Gibt zurück, welcher Datenfilter für die Kommunikation mit dem HBCI-Server verwendet wird. Gültige Bezeichner für Filter sind "None" und "Base64".

Specified by:
getFilterType in interface HBCIPassport

getUserId

public java.lang.String getUserId()
Description copied from interface: HBCIPassport
Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.

Specified by:
getUserId in interface HBCIPassport
Returns:
Benutzerkennung für Authentifikation

getCustomerId

public final java.lang.String getCustomerId(int idx)
Specified by:
getCustomerId in interface HBCIPassport

getCustomerId

public java.lang.String getCustomerId()
Description copied from interface: HBCIPassport

Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird. Zu einer Benutzerkennung (HBCIPassport.getUserId()), welche jeweils an ein bestimmtes Medium gebunden ist, kann es mehrere Kunden-IDs geben. Die verschiedenen Kunden-IDs entsprechen verschiedenen Rollen, in denen der Benutzer auftreten kann.

In den meisten Fällen gibt es zu einer Benutzerkennung nur eine einzige Kunden-ID. Wird von der Bank keine Kunden-ID explizit vergeben, so ist die Kunden-ID identisch mit der Benutzerkennung.

Siehe dazu auch HBCIJob.addToQueue(String).

Specified by:
getCustomerId in interface HBCIPassport
Returns:
Kunden-ID für die HBCI-Kommunikation

getStoredCustomerId

public java.lang.String getStoredCustomerId()

getSysId

public java.lang.String getSysId()
Specified by:
getSysId in interface org.kapott.hbci.passport.HBCIPassportInternal

getCID

public final java.lang.String getCID()
Specified by:
getCID in interface org.kapott.hbci.passport.HBCIPassportInternal

clearInstSigKey

public final void clearInstSigKey()
Specified by:
clearInstSigKey in interface HBCIPassport

clearInstEncKey

public final void clearInstEncKey()
Specified by:
clearInstEncKey in interface HBCIPassport

clearInstDigKey

public final void clearInstDigKey()
Specified by:
clearInstDigKey in interface HBCIPassport

clearMySigKey

public final void clearMySigKey()
Specified by:
clearMySigKey in interface org.kapott.hbci.passport.HBCIPassportInternal

clearMyEncKey

public final void clearMyEncKey()
Specified by:
clearMyEncKey in interface org.kapott.hbci.passport.HBCIPassportInternal

clearMyDigKey

public final void clearMyDigKey()
Specified by:
clearMyDigKey in interface org.kapott.hbci.passport.HBCIPassportInternal

getBPDVersion

public final java.lang.String getBPDVersion()
Description copied from interface: HBCIPassport
Gibt die Versionsnummer der lokal gespeicherten BPD zurück. Sind keine BPD vorhanden, so wird "0" zurückgegeben. Leider benutzen einige Banken "0" auch als Versionsnummer für die tatsächlich vorhandenen BPD, so dass bei diesen Banken auch dann "0" zurückgegeben wird, wenn in Wirklichkeit BPD vorhanden sind.

Specified by:
getBPDVersion in interface HBCIPassport
Returns:
Versionsnummer der lokalen BPD

getUPDVersion

public final java.lang.String getUPDVersion()
Description copied from interface: HBCIPassport
Gibt die Versionsnummer der lokal gespeicherten UPD zurück. Sind keine UPD lokal vorhanden, so wird "0" zurückgegeben. Siehe dazu auch HBCIPassport.getBPDVersion().

Specified by:
getUPDVersion in interface HBCIPassport
Returns:
Versionsnummer der lokalen UPD

getInstName

public final java.lang.String getInstName()
Description copied from interface: HBCIPassport
Gibt den Namen des Kreditinstitutes zurück. Diese Information wird aus den BPD ermittelt. Sind keine BPD vorhanden bzw. steht da kein Name drin, so wird null zurückgegeben.

Specified by:
getInstName in interface HBCIPassport
Returns:
Name des Kreditinstitutes

getMaxGVperMsg

public int getMaxGVperMsg()
Specified by:
getMaxGVperMsg in interface HBCIPassport

getMaxMsgSizeKB

public final int getMaxMsgSizeKB()
Specified by:
getMaxMsgSizeKB in interface HBCIPassport

getSuppLangs

public final java.lang.String[] getSuppLangs()
Description copied from interface: HBCIPassport
Gibt eine Liste aller unterstützten Sprachcodes zurück. Die einzelnen Codes stehen dabei für folgende Sprachen:

Specified by:
getSuppLangs in interface HBCIPassport
Returns:
Liste aller unterstützten Sprachen (1,2,3)

getSuppVersions

public final java.lang.String[] getSuppVersions()
Description copied from interface: HBCIPassport

Gibt eine Liste aller unterstützten HBCI-Versionen zurück. Die einzelnen Strings für die Versionen sind die gleichen, wie sie in der Methode HBCIHandler.HBCIHandler(String,org.kapott.hbci.passport.HBCIPassport) verwendet werden können.

Zusätzlich zu den hier zurückgegebenen HBCI-Versions-Codes gibt es einige spezielle Codes. Siehe dazu die Dokumentation zu HBCIHandler.HBCIHandler(String,org.kapott.hbci.passport.HBCIPassport)

Specified by:
getSuppVersions in interface HBCIPassport
Returns:
eine Liste aller von der Bank unterstützten HBCI-Versionen

getDefaultLang

public final java.lang.String getDefaultLang()
Description copied from interface: HBCIPassport
Gibt die Standardsprache des HBCI-Servers zurück. Zu den Bedeutungen der Sprachcodes siehe HBCIPassport.getSuppLangs().

Specified by:
getDefaultLang in interface HBCIPassport
Returns:
Standardsprache (1,2 oder 3)

canMixSecMethods

public final boolean canMixSecMethods()
Specified by:
canMixSecMethods in interface org.kapott.hbci.passport.HBCIPassportInternal

getSuppSecMethods

public final java.lang.String[][] getSuppSecMethods()
Description copied from interface: HBCIPassport

Gibt eine Liste der vom HBCI-Server unterstützten Sicherheitsmechanismen zurück. Gültige Werte für jeden einzelnen String sind RDH bzw. DDV.

Die Unterstützung des PIN/TAN-Verfahrens kann mit dieser Methode nicht ermittelt werden.

Specified by:
getSuppSecMethods in interface HBCIPassport
Returns:
eine Liste der unterstützten Sicherheitsmechanismen. Jeder Listeneintrag ist wieder ein Stringarray mit zwei Elementen: dem Namen des Mechanismus und der Versionsnummer dieses Mechanismus

getSuppCompMethods

public final java.lang.String[][] getSuppCompMethods()
Specified by:
getSuppCompMethods in interface HBCIPassport

getLang

public final java.lang.String getLang()
Specified by:
getLang in interface org.kapott.hbci.passport.HBCIPassportInternal

getSigId

public final java.lang.Long getSigId()
Specified by:
getSigId in interface org.kapott.hbci.passport.HBCIPassportInternal

clearBPD

public final void clearBPD()
Description copied from interface: HBCIPassport
Löschen der lokal gespeicherten BPD. Damit kann erzwungen werden, dass die BPD beim nächsten HBCI-Dialog erneut abgeholt werden.

Specified by:
clearBPD in interface HBCIPassport

setBPD

public void setBPD(java.util.Properties bpd)
Specified by:
setBPD in interface org.kapott.hbci.passport.HBCIPassportInternal

clearUPD

public final void clearUPD()
Description copied from interface: HBCIPassport
Löschen der lokal gespeicherten UPD. Damit kann erzwungen werden, dass die UPD beim nächsten HBCI-Dialog erneut abgeholt werden.

Specified by:
clearUPD in interface HBCIPassport

setUPD

public final void setUPD(java.util.Properties upd)
Specified by:
setUPD in interface org.kapott.hbci.passport.HBCIPassportInternal

setCountry

public final void setCountry(java.lang.String country)
Specified by:
setCountry in interface HBCIPassport

setBLZ

public final void setBLZ(java.lang.String blz)
Specified by:
setBLZ in interface HBCIPassport

setHost

public final void setHost(java.lang.String host)
Description copied from interface: HBCIPassport

Manuelles Setzen der Adresse des HBCI-Servers. Das kann evtl. nötig sein, wenn sich die Zugangsdaten des Server geändert haben. Die Änderungen werden permanent gespeichert, nachdem die neuen Werte wenigstens einmal in einem HBCI-Dialog benutzt wurden oder mit HBCIPassport.saveChanges() explizit gespeichert werden. Diese permanente Speicherung wird allerdings nur bei RDH- oder PIN/TAN-Passports durchgeführt. Um die Daten bei DDV-Passports permanent auf der Chipkarte zu speichern, ist der HBCI-PassportEditor nötig

(es wäre kein Problem, diese Daten sofort auf der Chipkarte zu speichern, allerdings besteht dann die Gefahr, dass man "aus Versehen" falsche Daten auf der Chipkarte ablegt und die richtigen Daten nicht wieder restaurieren kann, da es bei DDV-Zugängen i.d.R. keine Begleitbriefe von der Bank gibt, in denen die korrekten Zugangsdaten aufgelistet sind).

Für das HBCI-PIN/TAN-Verfahren wird als host die URL angegeben, welche für die Behandlung der HBCI-PIN/TAN-Nachrichten zu benutzen ist (z.B. www.meinebank.de/pintan/PinTanServlet). Soll ein anderer Port als der normale HTTPS-Port 443 benutzt werden, so darf die neue Portnummer nicht in der URL kodiert werden. Statt dessen muss die Methode HBCIPassport.setPort(Integer) benutzt werden, um die Portnummer zu setzen.

Specified by:
setHost in interface HBCIPassport
Parameters:
host - die neue Adresse, unter der der HBCI-Server zu erreichen ist

setPort

public final void setPort(java.lang.Integer port)
Description copied from interface: HBCIPassport
Setzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird. Bei HBCI-PIN/TAN- Passports wird der Port mit 443 vorinitialisiert, für alle anderen "normalen" HBCI-Verbindungstypen mit 3000. Diese Methode kann benutzt werden, wenn eine andere Portnummer als die default-Nummer benutzt werden soll. Die Portnummer für ein Passport kann auch mit dem HBCI4Java Passport Editor geändert werden.

Specified by:
setPort in interface HBCIPassport
Parameters:
port - neue TCP-Portnummer, die für ausgehende Verbindungen benutzt werden soll

setFilterType

public final void setFilterType(java.lang.String filter)
Specified by:
setFilterType in interface HBCIPassport

setUserId

public final void setUserId(java.lang.String userid)
Specified by:
setUserId in interface HBCIPassport

setCustomerId

public final void setCustomerId(java.lang.String customerid)
Description copied from interface: HBCIPassport
Setzen der zu verwendenden Kunden-ID. Durch Aufruf dieser Methode wird die Kunden-ID gesetzt, die beim nächsten Ausführen eines HBCI-Dialoges (HBCIHandler.execute()) benutzt wird. Diese neue Kunden-ID wird dann außerdem permanent im jeweiligen Sicherheitsmedium gespeichert (sofern das von dem Medium unterstützt wird).

Specified by:
setCustomerId in interface HBCIPassport
Parameters:
customerid - die zu verwendende Kunden-ID; wird keine customerid angegeben (null oder ""), so wird automatisch die User-ID verwendet.
See Also:
HBCIPassport.getCustomerId()

setSigId

public final void setSigId(java.lang.Long sigid)
Specified by:
setSigId in interface org.kapott.hbci.passport.HBCIPassportInternal

setSysId

public final void setSysId(java.lang.String sysid)
Specified by:
setSysId in interface org.kapott.hbci.passport.HBCIPassportInternal

setCID

public final void setCID(java.lang.String cid)
Specified by:
setCID in interface org.kapott.hbci.passport.HBCIPassportInternal

incSigId

public void incSigId()
Specified by:
incSigId in interface org.kapott.hbci.passport.HBCIPassportInternal

onlyBPDGVs

public final boolean onlyBPDGVs()
Specified by:
onlyBPDGVs in interface HBCIPassport

getInstance

public static HBCIPassport getInstance(java.lang.String name,
                                       java.lang.Object init)

Erzeugt eine Instanz eines HBCIPassports und gibt diese zurück. Der Typ der erzeugten Passport-Instanz wird durch den Parameter name bestimmt. Gültige Werte sind zur Zeit

Der zusätzliche Parameter init gibt ein Objekt an, welches bereits während der Instanziierung des Passport-Objektes in dessen internen clientData-Datenstrukturen gespeichert wird (siehe HBCIPassport.setClientData(String,Object)). Auf dieses Objekt kann dann mit getClientData("init") zugegriffen werden. Ist init==null), wo wird init=name gesetzt.

Beim Erzeugen eines Passport-Objektes tritt i.d.R. der Callback NEED_PASSPHRASE auf, um nach dem Passwort für das Einlesen der Schlüsseldatei zu fragen. Von der Callback-Methode eventuell zusätzlich benötigte Daten zu diesem Passport konnten bis zu dieser Stelle noch nicht via setClientData(...) gesetzt werden, weil das Passport-Objekt noch gar nicht existierte. Für diesen Zweck gibt es das init-Objekt, welches bereits beim Erzeugen des Passport-Objektes (und vor dem Aufrufen eines Callbacks) zu den zusätzlichen Passport-Daten hinzugefügt wird (mit der id "init").

Eine beispielhafte (wenn auch nicht sehr praxisnahe) Anwendung dieses Features wird im Quelltext des Tools AnalyzeReportOfTransactions gezeigt. Zumindest das Prinzip sollte damit jedoch klar werden.

Parameters:
name - Typ der zu erzeugenden Passport-Instanz
init - Objekt, welches schon während der Passport-Erzeugung via setClientData("init",init) zu den Passport-Daten hinzugefügt wird.
Returns:
Instanz eines HBCIPassports

getInstance

public static HBCIPassport getInstance(java.lang.Object init)
Erzeugt eine Instanz eines HBCI-Passports. Der Typ der erzeugten Passport-Instanz wird hierbei dem Wert des HBCI-Parameters client.passport.default entnommen. Gültige Werte für diesen HBCI-Parameter sind die gleichen wie beim Aufruf der Methode getInstance(String).

Parameters:
init - (siehe getInstance(String,Object))
Returns:
Instanz eines HBCI-Passports

getInstance

public static HBCIPassport getInstance(java.lang.String name)
Entspricht getInstance(name,null)


getInstance

public static HBCIPassport getInstance()
Entspricht getInstance((Object)null)


close

public void close()
Description copied from interface: HBCIPassport

Schließen eines Passport-Objektes. Diese Methode wird normalerweise nicht manuell aufgerufen, da das bereits von HBCIHandler.close() erledigt wird. Wurde jedoch ein Passport-Objekt erzeugt, und das anschließende Erzeugen eines HBCIHandler-Objektes schlägt fehlt, dann ist das Passport immer noch geöffnet und sollte mit dieser Methode geschlossen werden, falls es nicht weiterbenutzt werden soll.

Am Ende eines Programmes sollte also in jedem Fall entweder ein erfolgreiches HBCIHandler.close() oder wenigstens ein HBCIPassport.close() für jedes erzeugte Passport-Objekt stehen. Das ist vor allem für Passport-Varianten wichtig, die auf einer Chipkarte basieren, da mit dieser Methode die entsprechenden Ressourcen wieder freigegeben werden.

Specified by:
close in interface HBCIPassport

calculatePassportKey

protected javax.crypto.SecretKey calculatePassportKey(boolean forSaving)

getParamSegmentNames

public java.util.Properties getParamSegmentNames()
Specified by:
getParamSegmentNames in interface org.kapott.hbci.passport.HBCIPassportInternal

getJobRestrictions

public java.util.Properties getJobRestrictions(java.lang.String specname)
Specified by:
getJobRestrictions in interface org.kapott.hbci.passport.HBCIPassportInternal

getJobRestrictions

public java.util.Properties getJobRestrictions(java.lang.String gvname,
                                               java.lang.String version)
Specified by:
getJobRestrictions in interface org.kapott.hbci.passport.HBCIPassportInternal

setPersistentData

public void setPersistentData(java.lang.String id,
                              java.lang.Object o)
Specified by:
setPersistentData in interface org.kapott.hbci.passport.HBCIPassportInternal

getPersistentData

public java.lang.Object getPersistentData(java.lang.String id)
Specified by:
getPersistentData in interface org.kapott.hbci.passport.HBCIPassportInternal

syncSigId

public void syncSigId()
Description copied from interface: HBCIPassport
Synchronisation der Signatur-ID erzwingen (nur für RDH-Passports sinnvoll). Diese Methode kann aufgerufen werden, nachdem ein Passport erzeugt wurde, aber bevor damit ein neues HBCIHandler-Objekt erzeugt wird. Durch den Aufruf dieser Methode wird veranlasst, dass beim Erzeugen eines HBCIHandler-Objektes mit diesem Passport die Signatur-ID des Passports synchronisiert wird.

Specified by:
syncSigId in interface HBCIPassport

syncSysId

public void syncSysId()
Description copied from interface: HBCIPassport
Synchronisation der System-ID (nur für RDH-Passports sinnvoll). Diese Methode kann aufgerufen werden, nachdem ein Passport erzeugt wurde, aber bevor damit ein neues HBCIHandler-Objekt erzeugt wird. Durch den Aufruf dieser Methode wird veranlasst, dass beim Erzeugen eines HBCIHandler-Objektes mit diesem Passport die System-ID des Passports synchronisiert wird.

Specified by:
syncSysId in interface HBCIPassport

changePassphrase

public void changePassphrase()
Description copied from interface: HBCIPassport
Ändern des Passwortes für die Schlüsseldatei. Der Aufruf dieser Methode bewirkt, dass HBCI4Java via Callback-Mechanismus (NEED_PASSPHRASE_SAVE) nach dem neuen Passwort für die Schlüsseldatei fragt. Anschließend wird das Medium unter Verwendung des neuen Passwortes automatisch neu gespeichert.

Specified by:
changePassphrase in interface HBCIPassport

setClientData

public final void setClientData(java.lang.String id,
                                java.lang.Object o)
Description copied from interface: HBCIPassport
Speichern zusätzlicher Daten im Passport-Objekt. Diese Methode ermöglicht das Speichern zusätzlicher Informationen (Objekte), die diesem Passport zugeordnet sind. Die Funktionsweise ist analog zur Verwendung einer Hashtable, es wird also ein Objekt o unter dem Identifikations-String id gespeichert. Mit HBCIPassport.getClientData(String) kann das entsprechende Objekt wieder ausgelesen werden. Die mit dieser Methode gesetzten Daten werden nicht mit in der Schlüsseldatei (Passport-Datei) abgelegt, d.h. die Lebensdauer dieser Daten entspricht nur der Lebensdauer des Passport-Objektes.

Specified by:
setClientData in interface HBCIPassport
Parameters:
id - Identifikationsstring für das zu speichernde Objekt
o - zu speicherndes Objekt

getClientData

public final java.lang.Object getClientData(java.lang.String id)
Description copied from interface: HBCIPassport
Holen von clientseitig gespeicherten zusätzlichen Daten. Mit dieser Methode können die zusätzlichen Daten, die via HBCIPassport.setClientData(String,Object) im Passport gespeichert wurden, wieder ausgelesen werden. Auch das Objekt, das beim Erzeugen eines Passport-Objektes als init-Parameter übergeben wurde (siehe getInstance(String,Object)), kann damit ausgelesen werden (mit id="init").

Specified by:
getClientData in interface HBCIPassport
Parameters:
id - Identifikationsstring des auszulesenden Objektes
Returns:
Objekt, welches mit HBCIPassport.setClientData(String,Object) im Passport gespeichert wurde.

isAnonymous

public boolean isAnonymous()
Specified by:
isAnonymous in interface org.kapott.hbci.passport.HBCIPassportInternal

setParamHeader

protected void setParamHeader(java.lang.String paramHeader)

getParamHeader

protected java.lang.String getParamHeader()

setParentHandlerData

public void setParentHandlerData(org.kapott.hbci.manager.IHandlerData handler)
Specified by:
setParentHandlerData in interface org.kapott.hbci.passport.HBCIPassportInternal

getParentHandlerData

public org.kapott.hbci.manager.IHandlerData getParentHandlerData()
Specified by:
getParentHandlerData in interface org.kapott.hbci.passport.HBCIPassportInternal

generateNewUserKeys

public HBCIKey[][] generateNewUserKeys()
Specified by:
generateNewUserKeys in interface org.kapott.hbci.passport.HBCIPassportInternal

setProfileMethod

public void setProfileMethod(java.lang.String method)
Specified by:
setProfileMethod in interface org.kapott.hbci.passport.HBCIPassportInternal

setProfileVersion

public void setProfileVersion(java.lang.String version)
Specified by:
setProfileVersion in interface org.kapott.hbci.passport.HBCIPassportInternal

checkForCryptDataSize

public static byte[] checkForCryptDataSize(byte[] buffer,
                                           int size)

postInitResponseHook

public boolean postInitResponseHook(HBCIMsgStatus msgStatus,
                                    boolean anonDialog)
Specified by:
postInitResponseHook in interface org.kapott.hbci.passport.HBCIPassportInternal

beforeCustomDialogHook

public void beforeCustomDialogHook(org.kapott.hbci.manager.HBCIDialog dialog)
Specified by:
beforeCustomDialogHook in interface org.kapott.hbci.passport.HBCIPassportInternal

afterCustomDialogInitHook

public void afterCustomDialogInitHook(org.kapott.hbci.manager.HBCIDialog dialog)
Specified by:
afterCustomDialogInitHook in interface org.kapott.hbci.passport.HBCIPassportInternal

getMaxGVSegsPerMsg

public int getMaxGVSegsPerMsg()
Specified by:
getMaxGVSegsPerMsg in interface org.kapott.hbci.passport.HBCIPassportInternal