Package org.kapott.hbci.passport

## Class AbstractPinTanPassport

- java.lang.Object
- - org.kapott.hbci.passport.AbstractHBCIPassport
  - - org.kapott.hbci.passport.AbstractPinTanPassport

All Implemented Interfaces:
  `java.io.Serializable`, `HBCIPassport`, `HBCIPassportInternal`

Direct Known Subclasses:
  `HBCIPassportPinTan`

    public abstract class AbstractPinTanPassport
    extends AbstractHBCIPassport

Abstrakte Basis-Implementierung des PIN/TAN-Supports.

See Also:
  Serialized Form

### Field Summary

Fields
`static java.lang.String` `KEY_PD_CHALLENGE` Hier speichern wir den Challenge-Text der Bank fuer die TAN-Abfrage.
`static java.lang.String` `KEY_PD_HHDUC` Hier speichern wir das HHDuc fuer die TAN-Abfrage.
`static java.lang.String` `KEY_PD_ORDERREF` Hier speichern wir die Auftragsreferenz fuer die TAN-Abfrage.
`static java.lang.String` `KEY_PD_SCA` Hier speichern wir, ob wir eine SCA-Ausnahme fuer einen GV von der Bank erhalten haben

### Fields inherited from interface org.kapott.hbci.passport.HBCIPassport

`ROLE_CON, ROLE_ISS, ROLE_WIT`

### Constructor Summary

Constructors
`AbstractPinTanPassport​(java.lang.Object initObject)` ct.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `activateTANVerifyMode()`
`void` `clearPIN()`
`protected java.lang.String` `collectSegCodes​(java.lang.String msg)`
`void` `deactivateTANVerifyMode()`
`java.util.List<java.lang.String>` `getAllowedTwostepMechanisms()`
`java.lang.String` `getCertFile()`
`boolean` `getCheckCert()`
`Comm` `getCommInstance()`
`java.lang.String` `getCryptAlg()`
`java.lang.String` `getCryptFunction()`
`java.lang.String` `getCryptKeyType()`
`java.lang.String` `getCryptMode()`
`java.util.Properties` `getCurrentSecMechInfo()`
`java.lang.String` `getCurrentTANMethod​(boolean recheck)` Liefert das aktuelle TAN-Verfahren.
`java.lang.String` `getHashAlg()`
`java.lang.String` `getHost()` Ueberschrieben, um das "https://" am Anfang automatisch abzuschneiden.
`HBCIKey` `getInstEncKey()`
`java.lang.String` `getInstEncKeyName()`
`java.lang.String` `getInstEncKeyNum()`
`java.lang.String` `getInstEncKeyVersion()`
`HBCIKey` `getInstSigKey()`
`java.lang.String` `getInstSigKeyName()`
`java.lang.String` `getInstSigKeyNum()`
`java.lang.String` `getInstSigKeyVersion()`
`int` `getMaxGVSegsPerMsg()`
`java.lang.String` `getMyEncKeyName()`
`java.lang.String` `getMyEncKeyNum()`
`java.lang.String` `getMyEncKeyVersion()`
`HBCIKey` `getMyPrivateDigKey()`
`HBCIKey` `getMyPrivateEncKey()`
`HBCIKey` `getMyPrivateSigKey()`
`HBCIKey` `getMyPublicDigKey()`
`HBCIKey` `getMyPublicEncKey()`
`HBCIKey` `getMyPublicSigKey()`
`java.lang.String` `getMySigKeyName()`
`java.lang.String` `getMySigKeyNum()`
`java.lang.String` `getMySigKeyVersion()`
`java.lang.String` `getPassportTypeName()`
`java.lang.String` `getPIN()`
`java.lang.String` `getPinTanInfo​(java.lang.String code)` Liefert "J" oder "N" aus den BPD des Geschaeftsvorfalls, ob fuer diesen eine TAN erforderlich ist.
`java.lang.String` `getProfileMethod()`
`java.lang.String` `getProfileVersion()`
`java.lang.String` `getProxy()`
`java.lang.String` `getProxyPass()`
`java.lang.String` `getProxyUser()`
`java.lang.String` `getSigAlg()`
`java.lang.String` `getSigFunction()`
`java.lang.String` `getSigMode()`
`java.lang.String` `getSysStatus()`
`java.util.Hashtable<java.lang.String,​java.util.Properties>` `getTwostepMechanisms()`
`boolean` `hasInstEncKey()`
`boolean` `hasInstSigKey()`
`boolean` `hasMyEncKey()`
`boolean` `hasMySigKey()`
`void` `incSigId()`
`boolean` `isSupported()`
`boolean` `needInstKeys()`
`boolean` `needUserKeys()`
`boolean` `needUserSig()`
`void` `onDialogEvent​(DialogEvent event, DialogContext ctx)` Wird bei einem Dialog-Event ausgefuehrt.
`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.
`void` `setAllowedTwostepMechanisms​(java.util.List<java.lang.String> l)`
`void` `setBPD​(java.util.Properties p)`
`void` `setCertFile​(java.lang.String filename)`
`protected void` `setCheckCert​(boolean doCheck)`
`void` `setCurrentTANMethod​(java.lang.String method)` Legt das aktuelle TAN-Verfahren fest.
`void` `setInstEncKey​(HBCIKey key)`
`void` `setInstSigKey​(HBCIKey key)`
`void` `setMyPrivateDigKey​(HBCIKey key)`
`void` `setMyPrivateEncKey​(HBCIKey key)`
`void` `setMyPrivateSigKey​(HBCIKey key)`
`void` `setMyPublicDigKey​(HBCIKey key)`
`void` `setMyPublicEncKey​(HBCIKey key)`
`void` `setMyPublicSigKey​(HBCIKey key)`
`void` `setPIN​(java.lang.String pin)`
`void` `setProxy​(java.lang.String proxy)`
`void` `setProxyPass​(java.lang.String proxypass)`
`void` `setProxyUser​(java.lang.String proxyuser)`

### Methods inherited from class org.kapott.hbci.passport.AbstractHBCIPassport

`askForMissingData, canMixSecMethods, changePassphrase, checkForCryptDataSize, clearBPD, clearInstEncKey, clearInstSigKey, clearMyDigKey, clearMyEncKey, clearMySigKey, clearUPD, close, closeComm, fillAccountInfo, generateNewUserKeys, getAccount, getAccounts, getBLZ, getBPD, getBPDVersion, getCID, getClientData, getComm, getCommFilter, getCountry, getCustomerId, getCustomerId, getDefaultLang, getFilterType, getHBCIVersion, getInstance, getInstance, getInstance, getInstance, getInstName, getJobRestrictions, getJobRestrictions, getLang, getMaxGVperMsg, getMaxMsgSizeKB, getParamHeader, getParamSegmentNames, getParentHandlerData, getPersistentData, getPort, getSigId, getStoredCustomerId, getSuppCompMethods, getSuppLangs, getSuppSecMethods, getSuppVersions, getSysId, getUPD, getUPDVersion, getUserId, isAnonymous, onlyBPDGVs, setBLZ, setCID, setClientData, setCountry, setCustomerId, setFilterType, setHBCIVersion, setHost, setParamHeader, setParentHandlerData, setPersistentData, setPort, setProfileMethod, setProfileVersion, setSigId, setSysId, setUPD, setUserId, syncSigId, syncSysId`

### 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.HBCIPassport

`saveChanges`

### Methods inherited from interface org.kapott.hbci.passport.HBCIPassportInternal

`decrypt, encrypt, hash, resetPassphrase, sign, verify`

### Field Detail

#### KEY_PD_SCA

    public static final java.lang.String KEY_PD_SCA

Hier speichern wir, ob wir eine SCA-Ausnahme fuer einen GV von der Bank erhalten haben

See Also:
  Constant Field Values

#### KEY_PD_CHALLENGE

    public static final java.lang.String KEY_PD_CHALLENGE

Hier speichern wir den Challenge-Text der Bank fuer die TAN-Abfrage.

See Also:
  Constant Field Values

#### KEY_PD_HHDUC

    public static final java.lang.String KEY_PD_HHDUC

Hier speichern wir das HHDuc fuer die TAN-Abfrage.

See Also:
  Constant Field Values

#### KEY_PD_ORDERREF

    public static final java.lang.String KEY_PD_ORDERREF

Hier speichern wir die Auftragsreferenz fuer die TAN-Abfrage.

See Also:
  Constant Field Values

### Constructor Detail

#### AbstractPinTanPassport

    public AbstractPinTanPassport​(java.lang.Object initObject)

ct.

Parameters:
  `initObject` -

### Method Detail

#### getPassportTypeName

    public java.lang.String getPassportTypeName()

See Also:
  `HBCIPassportInternal.getPassportTypeName()`

#### setBPD

    public void setBPD​(java.util.Properties p)

Specified by:
  `setBPD` in interface `HBCIPassportInternal`
Overrides:
  `setBPD` in class `AbstractHBCIPassport`
See Also:
  `AbstractHBCIPassport.setBPD(java.util.Properties)`

#### 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:
  `AbstractHBCIPassport.onDialogEvent(org.kapott.hbci.dialog.DialogEvent, org.kapott.hbci.dialog.DialogContext)`

#### getCommInstance

    public Comm getCommInstance()

Specified by:
  `getCommInstance` in class `AbstractHBCIPassport`
See Also:
  `AbstractHBCIPassport.getCommInstance()`

#### isSupported

    public boolean isSupported()

See Also:
  `HBCIPassport.isSupported()`

#### 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​(java.lang.String method)

Legt das aktuelle TAN-Verfahren fest.

Parameters:
  `method` - das aktuelle TAN-Verfahren.

#### getCurrentTANMethod

    public java.lang.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 java.util.Properties getCurrentSecMechInfo()

#### getTwostepMechanisms

    public java.util.Hashtable<java.lang.String,​java.util.Properties> getTwostepMechanisms()

#### getProfileMethod

    public java.lang.String getProfileMethod()

#### getProfileVersion

    public java.lang.String getProfileVersion()

#### needUserKeys

    public boolean needUserKeys()

#### needInstKeys

    public boolean needInstKeys()

#### needUserSig

    public boolean needUserSig()

#### getSysStatus

    public java.lang.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 java.lang.String getInstSigKeyName()

#### getInstSigKeyNum

    public java.lang.String getInstSigKeyNum()

#### getInstSigKeyVersion

    public java.lang.String getInstSigKeyVersion()

#### getInstEncKeyName

    public java.lang.String getInstEncKeyName()

#### getInstEncKeyNum

    public java.lang.String getInstEncKeyNum()

#### getInstEncKeyVersion

    public java.lang.String getInstEncKeyVersion()

#### getMySigKeyName

    public java.lang.String getMySigKeyName()

#### getMySigKeyNum

    public java.lang.String getMySigKeyNum()

#### getMySigKeyVersion

    public java.lang.String getMySigKeyVersion()

#### getMyEncKeyName

    public java.lang.String getMyEncKeyName()

#### getMyEncKeyNum

    public java.lang.String getMyEncKeyNum()

#### getMyEncKeyVersion

    public java.lang.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 java.lang.String getCryptMode()

#### getCryptAlg

    public java.lang.String getCryptAlg()

#### getCryptKeyType

    public java.lang.String getCryptKeyType()

#### getSigFunction

    public java.lang.String getSigFunction()

#### getCryptFunction

    public java.lang.String getCryptFunction()

#### getSigAlg

    public java.lang.String getSigAlg()

#### getSigMode

    public java.lang.String getSigMode()

#### getHashAlg

    public java.lang.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 java.lang.String collectSegCodes​(java.lang.String msg)

#### getPinTanInfo

    public java.lang.String getPinTanInfo​(java.lang.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​(java.lang.String filename)

#### getCertFile

    public java.lang.String getCertFile()

#### setCheckCert

    protected void setCheckCert​(boolean doCheck)

#### getCheckCert

    public boolean getCheckCert()

#### getProxy

    public java.lang.String getProxy()

#### setProxy

    public void setProxy​(java.lang.String proxy)

#### getProxyPass

    public java.lang.String getProxyPass()

#### getProxyUser

    public java.lang.String getProxyUser()

#### setProxyPass

    public void setProxyPass​(java.lang.String proxypass)

#### setProxyUser

    public void setProxyUser​(java.lang.String proxyuser)

#### setPIN

    public void setPIN​(java.lang.String pin)

#### getPIN

    public java.lang.String getPIN()

#### clearPIN

    public void clearPIN()

#### getAllowedTwostepMechanisms

    public java.util.List<java.lang.String> getAllowedTwostepMechanisms()

#### setAllowedTwostepMechanisms

    public void setAllowedTwostepMechanisms​(java.util.List<java.lang.String> l)

#### getMaxGVSegsPerMsg

    public int getMaxGVSegsPerMsg()

Specified by:
  `getMaxGVSegsPerMsg` in interface `HBCIPassportInternal`
Overrides:
  `getMaxGVSegsPerMsg` in class `AbstractHBCIPassport`
See Also:
  `HBCIPassportInternal.getMaxGVSegsPerMsg()`

#### getHost

    public java.lang.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:
  `AbstractHBCIPassport.getHost()`