Package org.kapott.hbci.passport

# Class HBCIPassportRSA

java.lang.Object
org.kapott.hbci.passport.AbstractHBCIPassport
org.kapott.hbci.passport.AbstractRDHPassport
org.kapott.hbci.passport.HBCIPassportRSA

All Implemented Interfaces:
  `Serializable`, `HBCIPassport`, `HBCIPassportChipcard`, `HBCIPassportInternal`, `InitLetterPassport`

public class HBCIPassportRSA extends AbstractRDHPassport implements HBCIPassportChipcard
HBCI-Passport fuer RDH-Chipkarten.

See Also:
  - Serialized Form

## Field Summary

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

`KEY_EXTERNAL_ID, KEY_VOP_RESULT`

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

`ROLE_CON, ROLE_ISS, ROLE_WIT`

## Constructor Summary

Constructors
Constructor
Description
`HBCIPassportRSA(Object init)`
ct.
`HBCIPassportRSA(Object init, int dummy)`
ct.

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Schließen eines Passport-Objektes.
`protected void`
`closeCT()`
Schliesst den Kartenleser.
`protected byte[]`
`ctDecipher(byte[] data)`
Entschluesselt die Daten.
`protected byte[]`
`ctEncipher(byte[] data)`
Verschluesselt die Daten.
`protected void`
`ctEnterPIN()`
Fuehrt die PIN-Eingabe durch.
`protected void`
`ctReadBankData()`
Liest die Bankdaten.
`protected void`
`ctReadKeyData()`
Liest die Schluesseldaten.
`protected void`
`ctSaveBankData()`
Speichert die Bankdaten.
`protected void`
`ctSaveSigId()`
Speichert die Signatur-ID.
`protected byte[]`
`ctSign(byte[] data)`
Signiert die Daten.
`protected boolean`
`ctVerify(byte[] data, byte[] sig)`
Prueft die Signatur.
`byte[]`
`decrypt(byte[] cryptedKey, byte[] cryptedMsg)`
`byte[][]`
`encrypt(byte[] plainMsg)`
`String`
`getBankId()`
Liefert die Bank-ID.
`String`
`getCardId()`
Liefert die Karten-ID.
`String`
`getCustomerId()`
Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird.
`String`
`getDefaultCustomerId()`
Liefert die Default-Kundenkennung.
`int`
`getEntryIdx()`
Liefert den Index des Bankzugangs.
`String`
`getFileName()`
Gibt den Dateinamen für die zusätzliche Schlüsseldatei zurück.
`HBCIKey`
`getInstEncKey()`
`String`
`getInstEncKeyName()`
`String`
`getInstEncKeyNum()`
`String`
`getInstEncKeyVersion()`
`HBCIKey`
`getInstSigKey()`
`String`
`getInstSigKeyName()`
`String`
`getInstSigKeyNum()`
`String`
`getInstSigKeyVersion()`
`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`
`getProfileVersion()`
`byte[]`
`getSoftPin()`
Liefert die ueber die Tastatur eingegebene PIN.
`int`
`getUseSoftPin()`
Prueft, ob die PIN per Tastatur eingegeben werden soll.
`byte[]`
`hash(byte[] data)`
`boolean`
`hasInstEncKey()`
`boolean`
`hasInstSigKey()`
`boolean`
`hasMyEncKey()`
`boolean`
`hasMySigKey()`
`protected void`
`initCT()`
Initialisiert die Karte.
`boolean`
`isPINEntered()`
Liefert true, wenn die PIN eingegeben wurde.
`void`
`readBankData()`
Liest die Bank-Daten.
`void`
`readKeyData()`
Liest die Schluesseldaten.
`void`
`resetPassphrase()`
`void`
`saveBankData()`
Schreiben der aktuellen Zugangsdaten auf die Chipkarte.
`void`
`saveChanges()`
Speichern der Änderungen an den Passport-Daten.
`void`
`setBankId(String bankId)`
Speichert die Bank-ID.
`void`
`setCardId(String cardid)`
Speichert die Karten-ID.
`void`
`setDefaultCustomerId(String defaultCustomerId)`
Speichert die Default-Kundenkennung.
`void`
`setEntryIdx(int entryIdx)`
Speichert den Index des Bankzugangs.
`void`
`setFileName(String filename)`
Legt den Dateinamen fuer die zusaetzliche Schluesseldatei 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`
`setPINEntered(boolean pinEntered)`
Speichert, ob die PIN eingegeben wurde.
`void`
`setProfileVersion(String version)`
`void`
`setSoftPin(byte[] softPin)`
Speichert die ueber die Tastatur eingegebene PIN.
`void`
`setUseSoftPin(int useSoftPin)`
Legt fest, ob die PIN per Tastatur eingegeben werden soll.
`byte[]`
`sign(byte[] data)`
`boolean`
`verify(byte[] data, byte[] sig)`

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

`createMsgKey, getCommInstance, getCryptAlg, getCryptDataSize, getCryptFunction, getCryptKeyType, getCryptMode, getHashAlg, getPassportTypeName, getProfileMethod, getSigAlg, getSigFunction, getSigMode, getSignatureInstance, getSignatureParamSpec, getSysStatus, isSupported, needInstKeys, needUserKeys, needUserSig, onDialogEvent`

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

`askForMissingData, canMixSecMethods, changePassphrase, checkForCryptDataSize, clearBPD, clearInstEncKey, clearInstSigKey, clearMyDigKey, clearMyEncKey, clearMySigKey, clearUPD, closeComm, fillAccountInfo, generateNewUserKeys, getAccount, getAccounts, getBLZ, getBPD, getBPDVersion, getCID, getClientData, getComm, getCommFilter, getCountry, getCustomerId, getDefaultLang, getFilterType, getHBCIVersion, getHost, getInstance, getInstance, getInstance, getInstance, getInstName, getJobRestrictions, getJobRestrictions, getLang, getMaxGVperMsg, getMaxGVSegsPerMsg, getMaxMsgSizeKB, getParamHeader, getParamSegmentNames, getParentHandlerData, getPersistentData, getPort, getSigId, getStoredCustomerId, getSuppCompMethods, getSuppLangs, getSuppSecMethods, getSuppVersions, getSysId, getUPD, getUPDVersion, getUserId, incSigId, isAnonymous, onlyBPDGVs, setBLZ, setBPD, setCID, setClientData, setCountry, setCustomerId, setFilterType, setHBCIVersion, setHost, setParamHeader, setParentHandlerData, setPersistentData, setPort, setProfileMethod, 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

`changePassphrase, clearBPD, clearInstEncKey, clearInstSigKey, clearUPD, fillAccountInfo, getAccount, getAccounts, getBLZ, getBPD, getBPDVersion, getClientData, getCountry, getCustomerId, getDefaultLang, getFilterType, getHBCIVersion, getHost, getInstName, getMaxGVperMsg, getMaxMsgSizeKB, getPort, getSuppCompMethods, getSuppLangs, getSuppSecMethods, getSuppVersions, getUPD, getUPDVersion, getUserId, isSupported, needInstKeys, needUserKeys, onlyBPDGVs, setBLZ, setClientData, setCountry, setCustomerId, setFilterType, setHost, setPort, setUserId, syncSigId, syncSysId`

## Constructor Details

### HBCIPassportRSA

public HBCIPassportRSA(Object init, int dummy)
ct.

Parameters:
  `init` -
  `dummy` -

### HBCIPassportRSA

public HBCIPassportRSA(Object init)
ct.

Parameters:
  `init` -

## Method Details

### getCustomerId

public String getCustomerId()
Description copied from interface: `HBCIPassport`

Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird. Zu einer Benutzerkennung (`HBCIPassport.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.

Siehe dazu auch `HBCIJob.addToQueue(String)`.

Specified by:
  `getCustomerId` in interface `HBCIPassport`
Overrides:
  `getCustomerId` in class `AbstractHBCIPassport`
Returns:
  Kunden-ID für die HBCI-Kommunikation
See Also:
  - `AbstractHBCIPassport.getCustomerId()`

### getDefaultCustomerId

public String getDefaultCustomerId()
Liefert die Default-Kundenkennung.

Returns:
  die Default-Kundenkennung.

### setDefaultCustomerId

public void setDefaultCustomerId(String defaultCustomerId)
Speichert die Default-Kundenkennung.

Parameters:
  `defaultCustomerId` - die Default-Kundenkennung.

### setBankId

public void setBankId(String bankId)
Speichert die Bank-ID.

Parameters:
  `bankId` - die Bank-ID.

### getBankId

public String getBankId()
Liefert die Bank-ID.

Returns:
  die Bank-ID.

### setFileName

public void setFileName(String filename)
Description copied from interface: `HBCIPassportChipcard`
Legt den Dateinamen fuer die zusaetzliche Schluesseldatei fest.

Specified by:
  `setFileName` in interface `HBCIPassportChipcard`
Parameters:
  `filename` -
See Also:
  - `HBCIPassportChipcard.setFileName(java.lang.String)`

### getFileName

public String getFileName()
Description copied from interface: `HBCIPassportChipcard`
Gibt den Dateinamen für die zusätzliche Schlüsseldatei zurück. Diese Datei enthält gecachte Daten, um das Initialisieren eines `HBCIHandler` mit einem DDV-Passport zu beschleunigen. Defaultmäßig setzt sich der Dateiname aus einem definiertbaren Prefix (Pfad) und der Seriennummer der Chipkarte zusammen. Da diese Datei vertrauliche Daten enthält (z.B. die Kontodaten des Bankkunden), wird diese Datei verschlüsselt. Vor dem erstmaligen Lesen bzw. beim Erzeugen dieser Datei wird deshalb via Callback-Mechanismus nach einem Passwort gefragt, das zur Erzeugung des kryptografischen Schlüssels für die Verschlüsselung benutzt wird.

Specified by:
  `getFileName` in interface `HBCIPassportChipcard`
Returns:
  Dateiname der Cache-Datei
See Also:
  - `HBCIPassportChipcard.getFileName()`

### setCardId

public void setCardId(String cardid)
Speichert die Karten-ID.

Parameters:
  `cardid` -

### getCardId

public String getCardId()
Liefert die Karten-ID.

Returns:
  die Karten-ID.

### setPINEntered

public void setPINEntered(boolean pinEntered)
Speichert, ob die PIN eingegeben wurde.

Parameters:
  `pinEntered` - true, wenn die PIN eingegeben wurde.

### isPINEntered

public boolean isPINEntered()
Liefert true, wenn die PIN eingegeben wurde.

Returns:
  true, wenn die PIN eingegeben wurde.

### setUseSoftPin

public void setUseSoftPin(int useSoftPin)
Legt fest, ob die PIN per Tastatur eingegeben werden soll.

Parameters:
  `useSoftPin` - true, wenn die PIN per Tastatur eingegeben werden soll.

### getUseSoftPin

public int getUseSoftPin()
Prueft, ob die PIN per Tastatur eingegeben werden soll.

Returns:
  true, wenn die PIN per Tastatur eingegeben werden soll.

### setSoftPin

public void setSoftPin(byte[] softPin)
Speichert die ueber die Tastatur eingegebene PIN.

Parameters:
  `softPin` - die ueber die Tastatur eingegebene PIN.

### getSoftPin

public byte[] getSoftPin()
Liefert die ueber die Tastatur eingegebene PIN.

Returns:
  die ueber die Tastatur eingegebene PIN.

### setEntryIdx

public void setEntryIdx(int entryIdx)
Speichert den Index des Bankzugangs.

Parameters:
  `entryIdx` - der Index des Bankzugangs.

### getEntryIdx

public int getEntryIdx()
Liefert den Index des Bankzugangs.

Returns:
  der Index des Bankzugangs.

### setProfileVersion

public void setProfileVersion(String version)

Specified by:
  `setProfileVersion` in interface `HBCIPassportInternal`
Overrides:
  `setProfileVersion` in class `AbstractHBCIPassport`
See Also:
  - `AbstractHBCIPassport.setProfileVersion(java.lang.String)`

### getProfileVersion

public String getProfileVersion()

Specified by:
  `getProfileVersion` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getProfileVersion()`

### setInstSigKey

public void setInstSigKey(HBCIKey key)

Specified by:
  `setInstSigKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setInstSigKey(org.kapott.hbci.manager.HBCIKey)`

### setInstEncKey

public void setInstEncKey(HBCIKey key)

Specified by:
  `setInstEncKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setInstEncKey(org.kapott.hbci.manager.HBCIKey)`

### setMyPublicSigKey

public void setMyPublicSigKey(HBCIKey key)

Specified by:
  `setMyPublicSigKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setMyPublicSigKey(org.kapott.hbci.manager.HBCIKey)`

### setMyPrivateSigKey

public void setMyPrivateSigKey(HBCIKey key)

Specified by:
  `setMyPrivateSigKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setMyPrivateSigKey(org.kapott.hbci.manager.HBCIKey)`

### setMyPublicEncKey

public void setMyPublicEncKey(HBCIKey key)

Specified by:
  `setMyPublicEncKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setMyPublicEncKey(org.kapott.hbci.manager.HBCIKey)`

### setMyPrivateEncKey

public void setMyPrivateEncKey(HBCIKey key)

Specified by:
  `setMyPrivateEncKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setMyPrivateEncKey(org.kapott.hbci.manager.HBCIKey)`

### setMyPublicDigKey

public void setMyPublicDigKey(HBCIKey key)

Specified by:
  `setMyPublicDigKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setMyPublicDigKey(org.kapott.hbci.manager.HBCIKey)`

### setMyPrivateDigKey

public void setMyPrivateDigKey(HBCIKey key)

Specified by:
  `setMyPrivateDigKey` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.setMyPrivateDigKey(org.kapott.hbci.manager.HBCIKey)`

### getInstSigKeyName

public String getInstSigKeyName()

Specified by:
  `getInstSigKeyName` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getInstSigKeyName()`

### getInstSigKeyNum

public String getInstSigKeyNum()

Specified by:
  `getInstSigKeyNum` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getInstSigKeyNum()`

### getInstSigKeyVersion

public String getInstSigKeyVersion()

Specified by:
  `getInstSigKeyVersion` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getInstSigKeyVersion()`

### getInstEncKeyName

public String getInstEncKeyName()

Specified by:
  `getInstEncKeyName` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getInstEncKeyName()`

### getInstEncKeyNum

public String getInstEncKeyNum()

Specified by:
  `getInstEncKeyNum` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getInstEncKeyNum()`

### getInstEncKeyVersion

public String getInstEncKeyVersion()

Specified by:
  `getInstEncKeyVersion` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getInstEncKeyVersion()`

### getMySigKeyName

public String getMySigKeyName()

Specified by:
  `getMySigKeyName` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getMySigKeyName()`

### getMySigKeyNum

public String getMySigKeyNum()

Specified by:
  `getMySigKeyNum` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getMySigKeyNum()`

### getMySigKeyVersion

public String getMySigKeyVersion()

Specified by:
  `getMySigKeyVersion` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getMySigKeyVersion()`

### getMyEncKeyName

public String getMyEncKeyName()

Specified by:
  `getMyEncKeyName` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getMyEncKeyName()`

### getMyEncKeyNum

public String getMyEncKeyNum()

Specified by:
  `getMyEncKeyNum` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getMyEncKeyNum()`

### getMyEncKeyVersion

public String getMyEncKeyVersion()

Specified by:
  `getMyEncKeyVersion` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.getMyEncKeyVersion()`

### hash

public byte[] hash(byte[] data)

Specified by:
  `hash` in interface `HBCIPassportInternal`
Overrides:
  `hash` in class `AbstractRDHPassport`
See Also:
  - `AbstractRDHPassport.hash(byte[])`

### sign

public byte[] sign(byte[] data)

Specified by:
  `sign` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.sign(byte[])`

### verify

public boolean verify(byte[] data, byte[] sig)

Specified by:
  `verify` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.verify(byte[], byte[])`

### encrypt

public byte[][] encrypt(byte[] plainMsg)

Specified by:
  `encrypt` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.encrypt(byte[])`

### decrypt

public byte[] decrypt(byte[] cryptedKey, byte[] cryptedMsg)

Specified by:
  `decrypt` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassportInternal.decrypt(byte[], byte[])`

### close

public void close()
Description copied from interface: `HBCIPassport`

Schließen eines Passport-Objektes. Diese Methode wird normalerweise nicht manuell aufgerufen, da das bereits von `HBCIHandler.close()` erledigt wird. Wurde jedoch ein Passport-Objekt erzeugt, und das anschließende Erzeugen eines HBCIHandler-Objektes schlägt fehlt, dann ist das Passport immer noch geöffnet und sollte mit dieser Methode geschlossen werden, falls es nicht weiterbenutzt werden soll.

Am Ende eines Programmes sollte also in jedem Fall entweder ein erfolgreiches `HBCIHandler.close()` oder wenigstens ein `HBCIPassport.close()` für jedes erzeugte Passport-Objekt stehen. Das ist vor allem für Passport-Varianten wichtig, die auf einer Chipkarte basieren, da mit dieser Methode die entsprechenden Ressourcen wieder freigegeben werden.

Specified by:
  `close` in interface `HBCIPassport`
Overrides:
  `close` in class `AbstractHBCIPassport`
See Also:
  - `AbstractHBCIPassport.close()`

### saveBankData

public void saveBankData()
Description copied from interface: `HBCIPassportChipcard`
Schreiben der aktuellen Zugangsdaten auf die Chipkarte. Werden Zugangsdaten des Passport verändert (z.B. mit `HBCIPassport.setHost(String)`, so werden diese Daten durch die Methode `HBCIPassport.saveChanges()` nicht auf der Chipkarte gespeichert. Durch Aufruf dieser Methode wird das Schreiben der aktuellen Zugangsdaten erzwungen. Zu den hiervon betroffenen Daten zählen der Ländercode der Bank, die Bankleitzahl, die Hostadresse des HBCI-Servers sowie die User-ID zur Anmeldung am HBCI-Server.

Specified by:
  `saveBankData` in interface `HBCIPassportChipcard`
See Also:
  - `HBCIPassportChipcard.saveBankData()`

### resetPassphrase

public void resetPassphrase()

Specified by:
  `resetPassphrase` in interface `HBCIPassportInternal`
See Also:
  - `HBCIPassport.hasInstSigKey()`

### hasInstSigKey

public boolean hasInstSigKey()

Specified by:
  `hasInstSigKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.hasInstSigKey()`

### hasInstEncKey

public boolean hasInstEncKey()

Specified by:
  `hasInstEncKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.hasInstEncKey()`

### hasMySigKey

public boolean hasMySigKey()

Specified by:
  `hasMySigKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.hasMySigKey()`

### hasMyEncKey

public boolean hasMyEncKey()

Specified by:
  `hasMyEncKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.hasMyEncKey()`

### getMyPublicSigKey

public HBCIKey getMyPublicSigKey()

Specified by:
  `getMyPublicSigKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getMyPublicSigKey()`

### getMyPublicEncKey

public HBCIKey getMyPublicEncKey()

Specified by:
  `getMyPublicEncKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getMyPublicEncKey()`

### getMyPublicDigKey

public HBCIKey getMyPublicDigKey()

Specified by:
  `getMyPublicDigKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getMyPublicDigKey()`

### getMyPrivateSigKey

public HBCIKey getMyPrivateSigKey()

Specified by:
  `getMyPrivateSigKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getMyPrivateSigKey()`

### getMyPrivateEncKey

public HBCIKey getMyPrivateEncKey()

Specified by:
  `getMyPrivateEncKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getMyPrivateEncKey()`

### getMyPrivateDigKey

public HBCIKey getMyPrivateDigKey()

Specified by:
  `getMyPrivateDigKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getMyPrivateDigKey()`

### getInstSigKey

public HBCIKey getInstSigKey()

Specified by:
  `getInstSigKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getInstSigKey()`

### getInstEncKey

public HBCIKey getInstEncKey()

Specified by:
  `getInstEncKey` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.getInstEncKey()`

### saveChanges

public void saveChanges()
Description copied from interface: `HBCIPassport`
Speichern der Änderungen an den Passport-Daten. Diese Methode sollte eigentlich niemals manuell aus einer Anwendung heraus aufgerufen werden, sondern wird vom HBCI-Kernel benutzt. Das manuelle Aufrufen von `saveChanges` ist nur dann sinnvoll, wenn irgendwelche Passport-Daten manuell verändert werden (`HBCIPassport.setHost(String)`, `HBCIPassport.clearBPD()` usw.) und diese Änderungen explizit gespeichert werden sollen.

Specified by:
  `saveChanges` in interface `HBCIPassport`
See Also:
  - `HBCIPassport.saveChanges()`

### readBankData

public void readBankData()
Liest die Bank-Daten.

### readKeyData

public void readKeyData()
Liest die Schluesseldaten.

### initCT

protected void initCT()
Initialisiert die Karte.

### ctEnterPIN

protected void ctEnterPIN()
Fuehrt die PIN-Eingabe durch.

### ctReadBankData

protected void ctReadBankData()
Liest die Bankdaten.

### ctSaveBankData

protected void ctSaveBankData()
Speichert die Bankdaten.

### ctReadKeyData

protected void ctReadKeyData()
Liest die Schluesseldaten.

### ctSaveSigId

protected void ctSaveSigId()
Speichert die Signatur-ID.

### ctSign

protected byte[] ctSign(byte[] data)
Signiert die Daten.

Parameters:
  `data` - die zu signierenden Daten.
Returns:

### ctVerify

protected boolean ctVerify(byte[] data, byte[] sig)
Prueft die Signatur.

Parameters:
  `data` - die Daten.
  `sig` - die Signatur.
Returns:
  true, wenn die Signatur ok ist.

### ctEncipher

protected byte[] ctEncipher(byte[] data)
Verschluesselt die Daten.

Parameters:
  `data` - die Daten.
Returns:
  die verschluesselten Daten.

### ctDecipher

protected byte[] ctDecipher(byte[] data)
Entschluesselt die Daten.

Parameters:
  `data` - die verschluesselten Daten.
Returns:
  die entschluesselten Daten.

### closeCT

protected void closeCT()
Schliesst den Kartenleser.