Interface HBCIPassport

  • All Known Subinterfaces:
    HBCIPassportInternal
    All Known Implementing Classes:
    AbstractHBCIPassport, PinTanPassport

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

    • Method Detail

      • getBPD

        Map<String,​String> 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 HBCIJobsDialog 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

        Map<String,​String> 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
      • setBLZ

        void setBLZ​(String blz)
      • 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
      • setCountry

        void setCountry​(String country)
      • getAccounts

        List<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
      • 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
      • setHost

        void setHost​(String host)
      • 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
      • setPort

        void setPort​(Integer port)
      • getUserId

        String getUserId()
        Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.
        Returns:
        Benutzerkennung für Authentifikation
      • setUserId

        void setUserId​(String userid)
      • 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.

        Returns:
        Kunden-ID für die HBCI-Kommunikation
      • 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 (AbstractHbciDialog#execute(boolean, boolean)) 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()
      • hasInstSigKey

        boolean hasInstSigKey()
      • hasInstEncKey

        boolean hasInstEncKey()
      • 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()
      • getSuppVersions

        String[] getSuppVersions()
      • getProxyUser

        String getProxyUser()
      • getProxyPass

        String getProxyPass()
      • getCryptFunction

        Object getCryptFunction()
      • decrypt

        byte[] decrypt​(byte[] cryptedkey,
                       byte[] cryptedstring)
      • jobSupported

        boolean jobSupported​(String jobName)