# Package org.kapott.hbci.passport

Passports repräsentieren die HBCI-Sicherheitsmedien, mit denen Zugangsdaten eines Bankkunden verwaltet werden. Das Konzept von Passports ist ein wesentlicher Bestandteil von HBCI4Java. Ein Passport kann mit einem persönlichen "HBCI-Ausweis" verglichen werden und entspricht damit der "Schlüsseldatei" bzw. dem "Sicherheitsmedium", wie es aus anderer HBCI-Software bekannt ist.

Ein HBCI-Sicherheitsmedium, wie es von den Banken bereitgestellt wird, enthält alle Daten, die für die HBCI-Kommunikation nötig sind. Dazu gehören neben technischen Zugangsdaten (Adresse des HBCI-Servers, Benutzerkennung zur Anmeldung beim HBCI-Server) auch die Schlüssel für Signierung und Verschlüsselung der zu übertragenden Daten.

Je nach verwendetem Sicherheitsverfahren gibt es verschiedene Möglichkeiten, diese Daten abzuspeichern (z.B. auf einer Chipkarte oder in einer Datei) und zu verwenden (verschiedene kryptografische Algorithmen je nach verwendetem Verfahren). Die grundlegenden Funktionen, für die ein Sicherheitsmedium benötigt wird, sind jedoch bei jedem Verfahren gleich (Bereitstellung der Nutzerdaten, Bereitstellen von Funktionen für die Signierung und Verschlüsselung der zu übertragenden Daten usw.).

Ein `HBCIPassport` stellt die Schnittstelle zu einem beliebigen Sicherheitsmedium dar. Aus diesem Grund ist ein `HBCIPassport`-Objekt immer an genau einen HBCI-Zugang unter Verwendung eines einzigen bestimmten Sicherheitsverfahrens gebunden.

Innerhalb einer HBCI-Anwendung muss also für jeden zu benutzenden HBCI-Zugang ein solches `HBCIPassport`-Objekt angelegt werden. Das geschieht durch Aufruf der Methode `AbstractHBCIPassport.getInstance()`. Diese Methode gibt ein Passport-Objekt zurück, welches zur Initialisierung eines HBCI-Handlers benutzt wird. Mit dem so erstellen HBCIHandler können letztendlich HBCI-Funktionen ausgeführt werden, die dabei automatisch immer an den jeweiligen HBCI-Zugang gebunden sind.

Interface Summary
FileBasedPassport: Basis-Interface fuer Schluesseldateien.
HBCIPassport: Public Interface für HBCI-Passports.
HBCIPassportChipcard: Gemeinsames Interface fuer chipkarten-basiere Passports.
HBCIPassportInternal: Interface, welches alle Passport-Varianten implementieren müssen.
InitLetterPassport: Basis-Interface fuer Passports mit INI-Brief.

Class Summary
AbstractDDVPassport
AbstractHBCIPassport: Diese Klasse stellt die Basisklasse für alle "echten" Passport-Implementationen dar.
AbstractPinTanPassport: Abstrakte Basis-Implementierung des PIN/TAN-Supports.
AbstractRDHPassport
AbstractRDHSWFileBasedPassport
AbstractRDHSWPassport
HBCIPassportAnonymous: Passport-Implementation für anonyme Zugänge.
HBCIPassportDDV: Passport-Klasse für Sicherheitsverfahren DDV mit Medium Chipkarte.
HBCIPassportDDVPCSC: Implementierung eines DDV-Passports, welcher intern die neue Chipkarten-API "javax.smartcardio" von Java 6 verwendet.
HBCIPassportList
HBCIPassportPinTan: Passport-Klasse für HBCI mit PIN/TAN.
HBCIPassportPinTanMemory: Implementierung eines PIN/TAN-Passport, welcher keine Daten im Dateisystem ablegt sondern alle Daten im Speicher haelt.
HBCIPassportRAH10: Implementierung des Passports fuer RAH10-Schluesseldateien.
HBCIPassportRDHNew: Passport-Klasse für RDH-Zugänge mit Sicherheitsmedium "Datei".
HBCIPassportRDHXFile: Passport-Klasse für die Verwendung von RDH-2- und RDH-10-Schlüsseldateien mit HBCI4Java.
HBCIPassportRSA: HBCI-Passport fuer RDH-Chipkarten.
HBCIPassportSIZRDHFile: Passport-Klasse für die Verwendung von SIZ-RDH-Schlüsseldateien mit HBCI4Java.
INILetter: Hilfsklasse für das Erzeugen von INI-Briefen (für RDH-Zugänge).