Package org.kapott.hbci.passport

# Interface HBCIPassport

All Known Subinterfaces:
  `HBCIPassportChipcard`, `HBCIPassportInternal`

All Known Implementing Classes:
  `AbstractDDVPassport`, `AbstractHBCIPassport`, `AbstractPinTanPassport`, `AbstractRDHPassport`, `AbstractRDHSWFileBasedPassport`, `AbstractRDHSWPassport`, `HBCIPassportAnonymous`, `HBCIPassportDDV`, `HBCIPassportDDVPCSC`, `HBCIPassportPinTan`, `HBCIPassportPinTanMemory`, `HBCIPassportRAH10`, `HBCIPassportRDHNew`, `HBCIPassportRDHXFile`, `HBCIPassportRSA`, `HBCIPassportSIZRDHFile`

public interface HBCIPassport

Public Interface für HBCI-Passports. Ein HBCI-Passport ist eine Art "Ausweis", der individuell für jeden Nutzer eines HBCI-Zugangs und für jeden Zugangsmechanismus ist. Ein Passport repräsentiert ein HBCI-Sicherheitsmedium und stellt Funktionen bereit, um mit dem jeweiligen Medium zu arbeiten.

Für jede Zugangsart gibt es eine konkrete Passport-Implementation, die dieses Interface implementiert. Dabei handelt es sich um

- `HBCIPassportDDV` für Zugang über DDV mit Chipkarte
- `HBCIPassportRDHNew` für Zugang über RDH mit Datei
- `HBCIPassportRDH` für Zugang über RDH mit Datei (bitte nicht mehr benutzen; siehe Datei `README.RDHNew`)
- `HBCIPassportPinTan` für Zugang über das PIN/TAN-Verfahren
- `HBCIPassportAnonymous` für den anonymen Zugang
- `HBCIPassportSIZRDHFile` für den Zugang über RDH mit Datei, wobei als Datei eine SIZ-Schlüsseldatei, wie sie z.B. von StarMoney oder GENOlite erzeugt wird, verwendet werden kann
- `HBCIPassportRDHXFile` für den Zugang über RDH mit Datei, wobei als Datei eine RDH-2- oder RDH-10-Schlüsseldatei verwendet wird, wie sie z.B. von VR-NetWorld erzeugt wird.

In einem Passport werden alle nutzer- und institutsspezifischen Daten verwaltet. Dazu gehören

- die Zugangsdaten für den HBCI-Server der Bank (IP-Adresse, usw.)
- die nutzerspezifischen Zugangsdaten (Nutzerkennung, System-Kennung, usw.)
- die Schlüsselinformationen für die kryptografischen Operationen
- die gecachten BPD und die UPD

Außerdem sind in einem Passport alle Methoden implementiert, die zur Durchführung der kryptografischen Operationen benötigt werden (verschlüsseln, signieren, usw.)

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ROLE_CON`
Rolle eines Passport-Objektes: Eigentümer ist Mitunterzeichner für Nachricht.
`static final String`
`ROLE_ISS`
Rolle eines Passport-Objektes: Eigentümer ist Herausgeber der Nachricht.
`static final String`
`ROLE_WIT`
Rolle eines Passport-Objektes: Eigentümer ist Zeuge oder Überbringer der Nachricht.

## Method Summary

Modifier and Type
Method
Description
`void`
`changePassphrase()`
Ändern des Passwortes für die Schlüsseldatei.
`void`
`clearBPD()`
Löschen der lokal gespeicherten BPD.
`void`
`clearInstEncKey()`
`void`
`clearInstSigKey()`
`void`
`clearUPD()`
Löschen der lokal gespeicherten UPD.
`void`
`close()`
Schließen eines Passport-Objektes.
`void`
`fillAccountInfo(Konto account)`
Ausfüllen fehlender Kontoinformationen.
`Konto`
`getAccount(String number)`
Gibt ein Konto-Objekt zu einer bestimmten Kontonummer zurück.
`Konto[]`
`getAccounts()`
Gibt ein Array mit Kontoinformationen zurück.
`String`
`getBLZ()`
Gibt die Bankleitzahl des Kreditinstitutes zurück.
`Properties`
`getBPD()`
Gibt die gespeicherten BPD zurück.
`String`
`getBPDVersion()`
Gibt die Versionsnummer der lokal gespeicherten BPD zurück.
`Object`
`getClientData(String id)`
Holen von clientseitig gespeicherten zusätzlichen Daten.
`String`
`getCountry()`
Gibt den Ländercode der Bank zurück.
`String`
`getCustomerId()`
Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird.
`String`
`getCustomerId(int idx)`
`String`
`getDefaultLang()`
Gibt die Standardsprache des HBCI-Servers zurück.
`String`
`getFilterType()`
Gibt zurück, welcher Datenfilter für die Kommunikation mit dem HBCI-Server verwendet wird.
`String`
`getHBCIVersion()`
Gibt die HBCI-Version zurück, die zuletzt verwendet wurde.
`String`
`getHost()`
Gibt den Hostnamen des HBCI-Servers für dieses Passport zurück.
`HBCIKey`
`getInstEncKey()`
`String`
`getInstName()`
Gibt den Namen des Kreditinstitutes zurück.
`HBCIKey`
`getInstSigKey()`
`int`
`getMaxGVperMsg()`
`int`
`getMaxMsgSizeKB()`
`HBCIKey`
`getMyPrivateDigKey()`
`HBCIKey`
`getMyPrivateEncKey()`
`HBCIKey`
`getMyPrivateSigKey()`
`HBCIKey`
`getMyPublicDigKey()`
`HBCIKey`
`getMyPublicEncKey()`
`HBCIKey`
`getMyPublicSigKey()`
`Integer`
`getPort()`
Gibt die TCP-Portnummer auf dem HBCI-Server zurück, zu der eine HBCI-Verbindung aufgebaut werden soll.
`String[][]`
`getSuppCompMethods()`
`String[]`
`getSuppLangs()`
Gibt eine Liste aller unterstützten Sprachcodes zurück.
`String[][]`
`getSuppSecMethods()`
Gibt eine Liste der vom HBCI-Server unterstützten Sicherheitsmechanismen zurück.
`String[]`
`getSuppVersions()`
Gibt eine Liste aller unterstützten HBCI-Versionen zurück.
`Properties`
`getUPD()`
Gibt die gespeicherten UPD (User-Parameter-Daten) zurück.
`String`
`getUPDVersion()`
Gibt die Versionsnummer der lokal gespeicherten UPD zurück.
`String`
`getUserId()`
Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.
`boolean`
`hasInstEncKey()`
`boolean`
`hasInstSigKey()`
`boolean`
`hasMyEncKey()`
`boolean`
`hasMySigKey()`
`boolean`
`isSupported()`
`boolean`
`needInstKeys()`
`boolean`
`needUserKeys()`
`boolean`
`onlyBPDGVs()`
`void`
`saveChanges()`
Speichern der Änderungen an den Passport-Daten.
`void`
`setBLZ(String blz)`
`void`
`setClientData(String id, Object o)`
Speichern zusätzlicher Daten im Passport-Objekt.
`void`
`setCountry(String country)`
`void`
`setCustomerId(String customerid)`
Setzen der zu verwendenden Kunden-ID.
`void`
`setFilterType(String filter)`
`void`
`setHost(String host)`
Manuelles Setzen der Adresse des HBCI-Servers.
`void`
`setPort(Integer port)`
Setzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird.
`void`
`setUserId(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).

## Field Details

### ROLE_ISS

static final String ROLE_ISS
Rolle eines Passport-Objektes: Eigentümer ist Herausgeber der Nachricht. Wird in `HBCIJob.addSignaturePassport(HBCIPassport, String)` benötigt.

See Also:
  - Constant Field Values

### ROLE_CON

static final String ROLE_CON
Rolle eines Passport-Objektes: Eigentümer ist Mitunterzeichner für Nachricht. Wird in `HBCIJob.addSignaturePassport(HBCIPassport, String)` benötigt.

See Also:
  - Constant Field Values

### ROLE_WIT

static final String ROLE_WIT
Rolle eines Passport-Objektes: Eigentümer ist Zeuge oder Überbringer der Nachricht. Wird in `HBCIJob.addSignaturePassport(HBCIPassport, String)` benötigt.

See Also:
  - Constant Field Values

## Method Details

### getBPD

Properties getBPD()
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.

Returns:
  die Bankparamterdaten oder `null`, falls diese nicht im Passport vorhanden sind

### getHBCIVersion

String getHBCIVersion()
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.

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

### getUPD

Properties getUPD()
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.

Returns:
  die Userparameterdaten oder `null`, falls diese nicht im Passport vorhanden sind

### getBLZ

String getBLZ()

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 `getAccounts()` benutzt werden.

Returns:
  die BLZ der Bank

### getCountry

String getCountry()
Gibt den Ländercode der Bank zurück. Für deutsche Banken ist das der String "`DE`".

Returns:
  Ländercode der Bank

### getAccounts

Konto[] getAccounts()
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).

Returns:
  Array mit Kontoinformationen über verfügbare HBCI-Konten

### fillAccountInfo

void fillAccountInfo(Konto account)
Ausfüllen fehlender Kontoinformationen. In der Liste der verfügbaren Konten (siehe `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.

Parameters:
  `account` - unvollständige Konto-Informationen, bei denen die fehlenden Daten nachgetragen werden

### getAccount

Konto getAccount(String number)
Gibt ein Konto-Objekt zu einer bestimmten Kontonummer zurück. Dazu wird die Liste, die via `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.

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

String getHost()
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.

Returns:
  Hostname oder IP-Adresse des HBCI-Servers

### getPort

Integer getPort()
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 `setPort(Integer)` geändert werden.

Returns:
  TCP-Portnummer auf dem HBCI-Server

### getFilterType

String getFilterType()
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`".

### getUserId

String getUserId()
Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.

Returns:
  Benutzerkennung für Authentifikation

### getCustomerId

String getCustomerId(int idx)

### getCustomerId

String getCustomerId()

Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird. Zu einer Benutzerkennung (`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)`.

Returns:
  Kunden-ID für die HBCI-Kommunikation

### isSupported

boolean isSupported()

### needInstKeys

boolean needInstKeys()

### needUserKeys

boolean needUserKeys()

### hasInstSigKey

boolean hasInstSigKey()

### hasInstEncKey

boolean hasInstEncKey()

### hasMySigKey

boolean hasMySigKey()

### hasMyEncKey

boolean hasMyEncKey()

### clearInstSigKey

void clearInstSigKey()

### clearInstEncKey

void clearInstEncKey()

### getMyPublicSigKey

HBCIKey getMyPublicSigKey()

### getMyPublicEncKey

HBCIKey getMyPublicEncKey()

### getMyPublicDigKey

HBCIKey getMyPublicDigKey()

### getMyPrivateSigKey

HBCIKey getMyPrivateSigKey()

### getMyPrivateEncKey

HBCIKey getMyPrivateEncKey()

### getMyPrivateDigKey

HBCIKey getMyPrivateDigKey()

### getInstSigKey

HBCIKey getInstSigKey()

### getInstEncKey

HBCIKey getInstEncKey()

### getBPDVersion

String getBPDVersion()
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.

Returns:
  Versionsnummer der lokalen BPD

### getUPDVersion

String getUPDVersion()
Gibt die Versionsnummer der lokal gespeicherten UPD zurück. Sind keine UPD lokal vorhanden, so wird "0" zurückgegeben. Siehe dazu auch `getBPDVersion()`.

Returns:
  Versionsnummer der lokalen UPD

### getInstName

String getInstName()
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.

Returns:
  Name des Kreditinstitutes

### getMaxGVperMsg

int getMaxGVperMsg()

### getMaxMsgSizeKB

int getMaxMsgSizeKB()

### getSuppLangs

String[] getSuppLangs()
Gibt eine Liste aller unterstützten Sprachcodes zurück. Die einzelnen Codes stehen dabei für folgende Sprachen:

- 1 - deutsch
- 2 - englisch
- 3 - französisch

Returns:
  Liste aller unterstützten Sprachen (1,2,3)

### getSuppVersions

String[] getSuppVersions()

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(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(String,org.kapott.hbci.passport.HBCIPassport)`

Returns:
  eine Liste aller von der Bank unterstützten HBCI-Versionen

### getDefaultLang

String getDefaultLang()
Gibt die Standardsprache des HBCI-Servers zurück. Zu den Bedeutungen der Sprachcodes siehe `getSuppLangs()`.

Returns:
  Standardsprache (1,2 oder 3)

### getSuppSecMethods

String[][] getSuppSecMethods()

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.

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

String[][] getSuppCompMethods()

### clearBPD

void clearBPD()
Löschen der lokal gespeicherten BPD. Damit kann erzwungen werden, dass die BPD beim nächsten HBCI-Dialog erneut abgeholt werden.

### clearUPD

void clearUPD()
Löschen der lokal gespeicherten UPD. Damit kann erzwungen werden, dass die UPD beim nächsten HBCI-Dialog erneut abgeholt werden.

### setCountry

void setCountry(String country)

### setBLZ

void setBLZ(String blz)

### setHost

void setHost(String host)

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 `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 `setPort(Integer)` benutzt werden, um die Portnummer zu setzen.

Parameters:
  `host` - die neue Adresse, unter der der HBCI-Server zu erreichen ist

### setPort

void setPort(Integer port)
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.

Parameters:
  `port` - neue TCP-Portnummer, die für ausgehende Verbindungen benutzt werden soll

### setFilterType

void setFilterType(String filter)

### setUserId

void setUserId(String userid)

### setCustomerId

void setCustomerId(String customerid)
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).

Parameters:
  `customerid` - die zu verwendende Kunden-ID; wird keine customerid angegeben (`null` oder ""), so wird automatisch die User-ID verwendet.
See Also:
  - `getCustomerId()`

### onlyBPDGVs

boolean onlyBPDGVs()

### saveChanges

void saveChanges()
Speichern der Änderungen an den Passport-Daten. Diese Methode sollte eigentlich niemals manuell aus einer Anwendung heraus aufgerufen werden, sondern wird vom HBCI-Kernel benutzt. Das manuelle Aufrufen von `saveChanges` ist nur dann sinnvoll, wenn irgendwelche Passport-Daten manuell verändert werden (`setHost(String)`, `clearBPD()` usw.) und diese Änderungen explizit gespeichert werden sollen.

### close

void close()

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 `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.

### syncSigId

void syncSigId()
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.

### syncSysId

void syncSysId()
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.

### changePassphrase

void changePassphrase()
Ä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.

### setClientData

void setClientData(String id, Object o)
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 `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.

Parameters:
  `id` - Identifikationsstring für das zu speichernde Objekt
  `o` - zu speicherndes Objekt

### getClientData

Object getClientData(String id)
Holen von clientseitig gespeicherten zusätzlichen Daten. Mit dieser Methode können die zusätzlichen Daten, die via `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 `AbstractHBCIPassport.getInstance(String,Object)`), kann damit ausgelesen werden (mit `id="init"`).

Parameters:
  `id` - Identifikationsstring des auszulesenden Objektes
Returns:
  Objekt, welches mit `setClientData(String,Object)` im Passport gespeichert wurde.