Package org.kapott.hbci.passport

# 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:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`KEY_PD_CHALLENGE`
Hier speichern wir den Challenge-Text der Bank fuer die TAN-Abfrage.
`static final String`
`KEY_PD_HHDUC`
Hier speichern wir das HHDuc fuer die TAN-Abfrage.
`static final String`
`KEY_PD_ORDERREF`
Hier speichern wir die Auftragsreferenz fuer die TAN-Abfrage.
`static final 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
Constructor
Description
`AbstractPinTanPassport(Object initObject)`
ct.

## Method Summary

Modifier and Type
Method
Description
`void`
`activateTANVerifyMode()`
`void`
`clearPIN()`
`protected String`
`collectSegCodes(String msg)`
`void`
`deactivateTANVerifyMode()`
`List<String>`
`getAllowedTwostepMechanisms()`
`String`
`getCertFile()`
`boolean`
`getCheckCert()`
`Comm`
`getCommInstance()`
`String`
`getCryptAlg()`
`String`
`getCryptFunction()`
`String`
`getCryptKeyType()`
`String`
`getCryptMode()`
`Properties`
`getCurrentSecMechInfo()`
`String`
`getCurrentTANMethod(boolean recheck)`
Liefert das aktuelle TAN-Verfahren.
`String`
`getHashAlg()`
`String`
`getHost()`
Ueberschrieben, um das "https://" am Anfang automatisch abzuschneiden.
`HBCIKey`
`getInstEncKey()`
`String`
`getInstEncKeyName()`
`String`
`getInstEncKeyNum()`
`String`
`getInstEncKeyVersion()`
`HBCIKey`
`getInstSigKey()`
`String`
`getInstSigKeyName()`
`String`
`getInstSigKeyNum()`
`String`
`getInstSigKeyVersion()`
`int`
`getMaxGVSegsPerMsg()`
`String`
`getMyEncKeyName()`
`String`
`getMyEncKeyNum()`
`String`
`getMyEncKeyVersion()`
`HBCIKey`
`getMyPrivateDigKey()`
`HBCIKey`
`getMyPrivateEncKey()`
`HBCIKey`
`getMyPrivateSigKey()`
`HBCIKey`
`getMyPublicDigKey()`
`HBCIKey`
`getMyPublicEncKey()`
`HBCIKey`
`getMyPublicSigKey()`
`String`
`getMySigKeyName()`
`String`
`getMySigKeyNum()`
`String`
`getMySigKeyVersion()`
`String`
`getPassportTypeName()`
`String`
`getPIN()`
`String`
`getPinTanInfo(String code)`
Liefert "J" oder "N" aus den BPD des Geschaeftsvorfalls, ob fuer diesen eine TAN erforderlich ist.
`String`
`getProfileMethod()`
`String`
`getProfileVersion()`
`String`
`getProxy()`
`String`
`getProxyPass()`
`String`
`getProxyUser()`
`String`
`getSigAlg()`
`String`
`getSigFunction()`
`String`
`getSigMode()`
`String`
`getSysStatus()`
`Hashtable<String,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(List<String> l)`
`void`
`setBPD(Properties p)`
`void`
`setCertFile(String filename)`
`protected void`
`setCheckCert(boolean doCheck)`
`void`
`setCurrentTANMethod(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(String pin)`
`void`
`setProxy(String proxy)`
`void`
`setProxyPass(String proxypass)`
`void`
`setProxyUser(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 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:
  - Constant Field Values

### KEY_PD_CHALLENGE

public static final 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 String KEY_PD_HHDUC
Hier speichern wir das HHDuc fuer die TAN-Abfrage.

See Also:
  - Constant Field Values

### KEY_PD_ORDERREF

public static final String KEY_PD_ORDERREF
Hier speichern wir die Auftragsreferenz fuer die TAN-Abfrage.

See Also:
  - Constant Field Values

## Constructor Details

### AbstractPinTanPassport

public AbstractPinTanPassport(Object initObject)
ct.

Parameters:
  `initObject` -

## Method Details

### getPassportTypeName

public String getPassportTypeName()

See Also:
  - `HBCIPassportInternal.getPassportTypeName()`

### setBPD

public void setBPD(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(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:
  - `HBCIPassportInternal.getMaxGVSegsPerMsg()`

### 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:
  - `AbstractHBCIPassport.getHost()`