Class AbstractPinTanPassport

java.lang.Object
org.kapott.hbci.passport.AbstractHBCIPassport
org.kapott.hbci.passport.AbstractPinTanPassport
All Implemented Interfaces:
Serializable, HBCIPassport, HBCIPassportInternal
Direct Known Subclasses:
HBCIPassportPinTan

public abstract class AbstractPinTanPassport extends AbstractHBCIPassport
Abstrakte Basis-Implementierung des PIN/TAN-Supports.
See Also:
  • Field Details

    • KEY_PD_SCA

      public static final String KEY_PD_SCA
      Hier speichern wir, ob wir eine SCA-Ausnahme fuer einen GV von der Bank erhalten haben
      See Also:
    • KEY_PD_CHALLENGE

      public static final String KEY_PD_CHALLENGE
      Hier speichern wir den Challenge-Text der Bank fuer die TAN-Abfrage.
      See Also:
    • KEY_PD_HHDUC

      public static final String KEY_PD_HHDUC
      Hier speichern wir das HHDuc fuer die TAN-Abfrage.
      See Also:
    • KEY_PD_ORDERREF

      public static final String KEY_PD_ORDERREF
      Hier speichern wir die Auftragsreferenz fuer die TAN-Abfrage.
      See Also:
    • decoupledRefreshes

      protected int decoupledRefreshes
  • Constructor Details

    • AbstractPinTanPassport

      public AbstractPinTanPassport(Object initObject)
      ct.
      Parameters:
      initObject -
  • Method Details

    • getPassportTypeName

      public String getPassportTypeName()
      See Also:
    • setBPD

      public void setBPD(Properties p)
      Specified by:
      setBPD in interface HBCIPassportInternal
      Overrides:
      setBPD in class AbstractHBCIPassport
      See Also:
    • onDialogEvent

      public void onDialogEvent(DialogEvent event, DialogContext ctx)
      Description copied from interface: HBCIPassportInternal
      Wird bei einem Dialog-Event ausgefuehrt.
      Specified by:
      onDialogEvent in interface HBCIPassportInternal
      Overrides:
      onDialogEvent in class AbstractHBCIPassport
      Parameters:
      event - das Event.
      ctx - der Dialog-Kontext.
      See Also:
    • shouldPerformDecoupledRefresh

      public boolean shouldPerformDecoupledRefresh(HBCIStatus segStatus)
      Beim Decoupled Verfahren kann die Bank ein 3956 senden, wenn der Nutzer den Prozess noch nicht bestätigt hat. In diesem Fall muss die Nachricht wiederholt werden, um erneut zu prüfen, ob die Bestätigung erfolgt ist. Wir benachrichtigen die Applikation mit einem entsprechenden Callback und warten eine mögliche Mindestzeit. Ein refresh kann entweder durch die Dialoginitialisierung in checkSCAResponse(org.kapott.hbci.dialog.DialogContext), oder von konkreten Geschäftsvorfällen in GVTAN2Step.extractResults(HBCIMsgStatus, String, int) ausgelöst werden.
      Parameters:
      segStatus - Der segStatus, wo ein möglicher 3956 response code zu finden ist.
      Returns:
      true, wenn ein 3956 code gefunden wurde, und ein refresh durchgeführt werden soll.
    • getCommInstance

      public Comm getCommInstance()
      Specified by:
      getCommInstance in class AbstractHBCIPassport
      See Also:
    • isSupported

      public boolean isSupported()
      See Also:
    • getMinimumTimeBeforeFirstDecoupledRefresh

      public Integer getMinimumTimeBeforeFirstDecoupledRefresh()
      Für das Decoupled Verfahren, liefert die minimale Zeit vor dem ersten refresh.
      Returns:
      Die minimale Zeit vor dem ersten Decoupled refresh.
    • getMinimumTimeBeforeNextDecoupledRefresh

      public Integer getMinimumTimeBeforeNextDecoupledRefresh()
      Für das Decoupled Verfahren, liefert die minimale Zeit vor weiteren refreshes.
      Returns:
      Die minimale Zeit vor weiteren Decoupled refreshes.
    • getDecoupledMaxRefreshes

      public Integer getDecoupledMaxRefreshes()
      Für das Decoupled Verfahren, liefert die maximale Anzahl von refreshes.
      Returns:
      Die maximale Anzahl von Decoupled refreshes.
    • resetSecMechs

      public void resetSecMechs()
      Kann vor new HBCIHandler() aufgerufen werden, um zu erzwingen, dass die Liste der unterstützten PIN/TAN-Sicherheitsverfahren neu vom Server abgeholt wird und evtl. neu vom Nutzer abgefragt wird.
    • setCurrentTANMethod

      public void setCurrentTANMethod(String method)
      Legt das aktuelle TAN-Verfahren fest.
      Parameters:
      method - das aktuelle TAN-Verfahren.
    • getCurrentTANMethod

      public String getCurrentTANMethod(boolean recheck)
      Liefert das aktuelle TAN-Verfahren.
      Parameters:
      recheck - true, wenn die gespeicherte Auswahl auf Aktualitaet und Verfuegbarkeit geprueft werden soll. Die Funktion kann in dem Fall einen Callback ausloesen, wenn mehrere Optionen zur Wahl stehen.
      Returns:
      das TAN-Verfahren.
    • getCurrentSecMechInfo

      public Properties getCurrentSecMechInfo()
    • getTwostepMechanisms

      public Hashtable<String,Properties> getTwostepMechanisms()
    • getProfileMethod

      public String getProfileMethod()
    • getProfileVersion

      public String getProfileVersion()
    • needUserKeys

      public boolean needUserKeys()
    • needInstKeys

      public boolean needInstKeys()
    • needUserSig

      public boolean needUserSig()
    • getSysStatus

      public String getSysStatus()
    • hasInstSigKey

      public boolean hasInstSigKey()
    • hasInstEncKey

      public boolean hasInstEncKey()
    • hasMySigKey

      public boolean hasMySigKey()
    • hasMyEncKey

      public boolean hasMyEncKey()
    • getInstSigKey

      public HBCIKey getInstSigKey()
    • getInstEncKey

      public HBCIKey getInstEncKey()
    • getInstSigKeyName

      public String getInstSigKeyName()
    • getInstSigKeyNum

      public String getInstSigKeyNum()
    • getInstSigKeyVersion

      public String getInstSigKeyVersion()
    • getInstEncKeyName

      public String getInstEncKeyName()
    • getInstEncKeyNum

      public String getInstEncKeyNum()
    • getInstEncKeyVersion

      public String getInstEncKeyVersion()
    • getMySigKeyName

      public String getMySigKeyName()
    • getMySigKeyNum

      public String getMySigKeyNum()
    • getMySigKeyVersion

      public String getMySigKeyVersion()
    • getMyEncKeyName

      public String getMyEncKeyName()
    • getMyEncKeyNum

      public String getMyEncKeyNum()
    • getMyEncKeyVersion

      public String getMyEncKeyVersion()
    • getMyPublicDigKey

      public HBCIKey getMyPublicDigKey()
    • getMyPrivateDigKey

      public HBCIKey getMyPrivateDigKey()
    • getMyPublicSigKey

      public HBCIKey getMyPublicSigKey()
    • getMyPrivateSigKey

      public HBCIKey getMyPrivateSigKey()
    • getMyPublicEncKey

      public HBCIKey getMyPublicEncKey()
    • getMyPrivateEncKey

      public HBCIKey getMyPrivateEncKey()
    • getCryptMode

      public String getCryptMode()
    • getCryptAlg

      public String getCryptAlg()
    • getCryptKeyType

      public String getCryptKeyType()
    • getSigFunction

      public String getSigFunction()
    • getCryptFunction

      public String getCryptFunction()
    • getSigAlg

      public String getSigAlg()
    • getSigMode

      public String getSigMode()
    • getHashAlg

      public String getHashAlg()
    • setInstSigKey

      public void setInstSigKey(HBCIKey key)
    • setInstEncKey

      public void setInstEncKey(HBCIKey key)
    • setMyPublicDigKey

      public void setMyPublicDigKey(HBCIKey key)
    • setMyPrivateDigKey

      public void setMyPrivateDigKey(HBCIKey key)
    • setMyPublicSigKey

      public void setMyPublicSigKey(HBCIKey key)
    • setMyPrivateSigKey

      public void setMyPrivateSigKey(HBCIKey key)
    • setMyPublicEncKey

      public void setMyPublicEncKey(HBCIKey key)
    • setMyPrivateEncKey

      public void setMyPrivateEncKey(HBCIKey key)
    • incSigId

      public void incSigId()
      Specified by:
      incSigId in interface HBCIPassportInternal
      Overrides:
      incSigId in class AbstractHBCIPassport
    • collectSegCodes

      protected String collectSegCodes(String msg)
    • getPinTanInfo

      public String getPinTanInfo(String code)
      Liefert "J" oder "N" aus den BPD des Geschaeftsvorfalls, ob fuer diesen eine TAN erforderlich ist.
      Parameters:
      code - der GV-Code.
      Returns:
      "J" oder "N". Oder "A", wenn es ein Admin-Segment ist, jedoch keine TAN noetig ist.
    • deactivateTANVerifyMode

      public void deactivateTANVerifyMode()
    • activateTANVerifyMode

      public void activateTANVerifyMode()
    • setCertFile

      public void setCertFile(String filename)
    • getCertFile

      public String getCertFile()
    • setCheckCert

      protected void setCheckCert(boolean doCheck)
    • getCheckCert

      public boolean getCheckCert()
    • getProxy

      public String getProxy()
    • setProxy

      public void setProxy(String proxy)
    • getProxyPass

      public String getProxyPass()
    • getProxyUser

      public String getProxyUser()
    • setProxyPass

      public void setProxyPass(String proxypass)
    • setProxyUser

      public void setProxyUser(String proxyuser)
    • setPIN

      public void setPIN(String pin)
    • getPIN

      public String getPIN()
    • clearPIN

      public void clearPIN()
    • getAllowedTwostepMechanisms

      public List<String> getAllowedTwostepMechanisms()
    • setAllowedTwostepMechanisms

      public void setAllowedTwostepMechanisms(List<String> l)
    • getMaxGVSegsPerMsg

      public int getMaxGVSegsPerMsg()
      Specified by:
      getMaxGVSegsPerMsg in interface HBCIPassportInternal
      Overrides:
      getMaxGVSegsPerMsg in class AbstractHBCIPassport
      See Also:
    • getHost

      public String getHost()
      Ueberschrieben, um das "https://" am Anfang automatisch abzuschneiden. Das sorgte schon fuer so viele unnoetige Fehler.
      Specified by:
      getHost in interface HBCIPassport
      Overrides:
      getHost in class AbstractHBCIPassport
      Returns:
      Hostname oder IP-Adresse des HBCI-Servers
      See Also: