Class HBCIPassportRSA
- All Implemented Interfaces:
Serializable
,HBCIPassport
,HBCIPassportChipcard
,HBCIPassportInternal
,InitLetterPassport
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
private String
private RSACardService
private String
private int
private String
private String
private static final int
private static final int
private static final int
private static final int
private HBCIKey[]
private boolean
private byte[]
private int
Fields inherited from interface org.kapott.hbci.passport.HBCIPassport
ROLE_CON, ROLE_ISS, ROLE_WIT
-
Constructor Summary
ConstructorsConstructorDescriptionHBCIPassportRSA
(Object init) ct.HBCIPassportRSA
(Object init, int dummy) ct. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
checkPIN()
Prueft die PIN.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
Fuehrt die PIN-Eingabe durch.protected void
Liest die Bankdaten.protected void
Liest die Schluesseldaten.protected void
Speichert die Bankdaten.protected void
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) private byte[]
encryptKey
(SecretKey msgkey) Verschluesselt den Key.private byte[]
encryptMessage
(byte[] plainMsg, SecretKey msgkey) Verschluesselt die Nachricht.Liefert die Bank-ID.Liefert die Karten-ID.Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird.Liefert die Default-Kundenkennung.int
Liefert den Index des Bankzugangs.Gibt den Dateinamen für die zusätzliche Schlüsseldatei zurück.private HBCIKey
getKey
(int i) Liefert den Schluessel.byte[]
Liefert die ueber die Tastatur eingegebene PIN.int
Prueft, ob die PIN per Tastatur eingegeben werden soll.byte[]
hash
(byte[] data) boolean
boolean
boolean
boolean
protected void
initCT()
Initialisiert die Karte.boolean
Liefert true, wenn die PIN eingegeben wurde.void
Liest die Bank-Daten.void
Liest die Schluesseldaten.void
void
Schreiben der aktuellen Zugangsdaten auf die Chipkarte.void
Speichern der Änderungen an den Passport-Daten.void
Speichert die Bank-ID.void
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) private void
Speichert den Schluesel.void
void
void
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
-
Field Details
-
KEY_INST_SIG
private static final int KEY_INST_SIG- See Also:
-
KEY_INST_ENC
private static final int KEY_INST_ENC- See Also:
-
KEY_MY_PUBLIC_SIG
private static final int KEY_MY_PUBLIC_SIG- See Also:
-
KEY_MY_PUBLIC_ENC
private static final int KEY_MY_PUBLIC_ENC- See Also:
-
filename
-
keys
-
cardid
-
pinEntered
private boolean pinEntered -
useSoftPin
private int useSoftPin -
softPin
private byte[] softPin -
entryIdx
private int entryIdx -
forcedProfileVersion
-
bankId
-
defaultCustomerId
-
cardService
-
-
Constructor Details
-
HBCIPassportRSA
ct.- Parameters:
init
-dummy
-
-
HBCIPassportRSA
ct.- Parameters:
init
-
-
-
Method Details
-
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 interfaceHBCIPassport
- Overrides:
getCustomerId
in classAbstractHBCIPassport
- Returns:
- Kunden-ID für die HBCI-Kommunikation
- See Also:
-
getDefaultCustomerId
Liefert die Default-Kundenkennung.- Returns:
- die Default-Kundenkennung.
-
setDefaultCustomerId
Speichert die Default-Kundenkennung.- Parameters:
defaultCustomerId
- die Default-Kundenkennung.
-
setBankId
Speichert die Bank-ID.- Parameters:
bankId
- die Bank-ID.
-
getBankId
Liefert die Bank-ID.- Returns:
- die Bank-ID.
-
setFileName
Description copied from interface:HBCIPassportChipcard
Legt den Dateinamen fuer die zusaetzliche Schluesseldatei fest.- Specified by:
setFileName
in interfaceHBCIPassportChipcard
- Parameters:
filename
-- See Also:
-
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 einesHBCIHandler
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 interfaceHBCIPassportChipcard
- Returns:
- Dateiname der Cache-Datei
- See Also:
-
setCardId
Speichert die Karten-ID.- Parameters:
cardid
-
-
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
- Specified by:
setProfileVersion
in interfaceHBCIPassportInternal
- Overrides:
setProfileVersion
in classAbstractHBCIPassport
- See Also:
-
getProfileVersion
- Specified by:
getProfileVersion
in interfaceHBCIPassportInternal
- See Also:
-
setKey
Speichert den Schluesel.- Parameters:
i
- der Index.key
- der Schluessel.
-
getKey
Liefert den Schluessel.- Parameters:
i
- der Index.- Returns:
- der Schluessel.
-
setInstSigKey
- Specified by:
setInstSigKey
in interfaceHBCIPassportInternal
- See Also:
-
setInstEncKey
- Specified by:
setInstEncKey
in interfaceHBCIPassportInternal
- See Also:
-
setMyPublicSigKey
- Specified by:
setMyPublicSigKey
in interfaceHBCIPassportInternal
- See Also:
-
setMyPrivateSigKey
- Specified by:
setMyPrivateSigKey
in interfaceHBCIPassportInternal
- See Also:
-
setMyPublicEncKey
- Specified by:
setMyPublicEncKey
in interfaceHBCIPassportInternal
- See Also:
-
setMyPrivateEncKey
- Specified by:
setMyPrivateEncKey
in interfaceHBCIPassportInternal
- See Also:
-
setMyPublicDigKey
- Specified by:
setMyPublicDigKey
in interfaceHBCIPassportInternal
- See Also:
-
setMyPrivateDigKey
- Specified by:
setMyPrivateDigKey
in interfaceHBCIPassportInternal
- See Also:
-
getInstSigKeyName
- Specified by:
getInstSigKeyName
in interfaceHBCIPassportInternal
- See Also:
-
getInstSigKeyNum
- Specified by:
getInstSigKeyNum
in interfaceHBCIPassportInternal
- See Also:
-
getInstSigKeyVersion
- Specified by:
getInstSigKeyVersion
in interfaceHBCIPassportInternal
- See Also:
-
getInstEncKeyName
- Specified by:
getInstEncKeyName
in interfaceHBCIPassportInternal
- See Also:
-
getInstEncKeyNum
- Specified by:
getInstEncKeyNum
in interfaceHBCIPassportInternal
- See Also:
-
getInstEncKeyVersion
- Specified by:
getInstEncKeyVersion
in interfaceHBCIPassportInternal
- See Also:
-
getMySigKeyName
- Specified by:
getMySigKeyName
in interfaceHBCIPassportInternal
- See Also:
-
getMySigKeyNum
- Specified by:
getMySigKeyNum
in interfaceHBCIPassportInternal
- See Also:
-
getMySigKeyVersion
- Specified by:
getMySigKeyVersion
in interfaceHBCIPassportInternal
- See Also:
-
getMyEncKeyName
- Specified by:
getMyEncKeyName
in interfaceHBCIPassportInternal
- See Also:
-
getMyEncKeyNum
- Specified by:
getMyEncKeyNum
in interfaceHBCIPassportInternal
- See Also:
-
getMyEncKeyVersion
- Specified by:
getMyEncKeyVersion
in interfaceHBCIPassportInternal
- See Also:
-
hash
public byte[] hash(byte[] data) - Specified by:
hash
in interfaceHBCIPassportInternal
- Overrides:
hash
in classAbstractRDHPassport
- See Also:
-
sign
public byte[] sign(byte[] data) - Specified by:
sign
in interfaceHBCIPassportInternal
- See Also:
-
verify
public boolean verify(byte[] data, byte[] sig) - Specified by:
verify
in interfaceHBCIPassportInternal
- See Also:
-
encryptMessage
Verschluesselt die Nachricht.- Parameters:
plainMsg
- die Nachricht.msgkey
- der Schluessel.- Returns:
- die verschluesselte Nachricht.
-
encryptKey
Verschluesselt den Key.- Parameters:
msgkey
- der Key.- Returns:
- der verschluesselte Key.
-
encrypt
public byte[][] encrypt(byte[] plainMsg) - Specified by:
encrypt
in interfaceHBCIPassportInternal
- See Also:
-
decrypt
public byte[] decrypt(byte[] cryptedKey, byte[] cryptedMsg) - Specified by:
decrypt
in interfaceHBCIPassportInternal
- See Also:
-
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 einHBCIPassport.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 interfaceHBCIPassport
- Overrides:
close
in classAbstractHBCIPassport
- See Also:
-
saveBankData
public void saveBankData()Description copied from interface:HBCIPassportChipcard
Schreiben der aktuellen Zugangsdaten auf die Chipkarte. Werden Zugangsdaten des Passport verändert (z.B. mitHBCIPassport.setHost(String)
, so werden diese Daten durch die MethodeHBCIPassport.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 interfaceHBCIPassportChipcard
- See Also:
-
resetPassphrase
public void resetPassphrase()- Specified by:
resetPassphrase
in interfaceHBCIPassportInternal
- See Also:
-
hasInstSigKey
public boolean hasInstSigKey()- Specified by:
hasInstSigKey
in interfaceHBCIPassport
- See Also:
-
hasInstEncKey
public boolean hasInstEncKey()- Specified by:
hasInstEncKey
in interfaceHBCIPassport
- See Also:
-
hasMySigKey
public boolean hasMySigKey()- Specified by:
hasMySigKey
in interfaceHBCIPassport
- See Also:
-
hasMyEncKey
public boolean hasMyEncKey()- Specified by:
hasMyEncKey
in interfaceHBCIPassport
- See Also:
-
getMyPublicSigKey
- Specified by:
getMyPublicSigKey
in interfaceHBCIPassport
- See Also:
-
getMyPublicEncKey
- Specified by:
getMyPublicEncKey
in interfaceHBCIPassport
- See Also:
-
getMyPublicDigKey
- Specified by:
getMyPublicDigKey
in interfaceHBCIPassport
- See Also:
-
getMyPrivateSigKey
- Specified by:
getMyPrivateSigKey
in interfaceHBCIPassport
- See Also:
-
getMyPrivateEncKey
- Specified by:
getMyPrivateEncKey
in interfaceHBCIPassport
- See Also:
-
getMyPrivateDigKey
- Specified by:
getMyPrivateDigKey
in interfaceHBCIPassport
- See Also:
-
getInstSigKey
- Specified by:
getInstSigKey
in interfaceHBCIPassport
- See Also:
-
getInstEncKey
- Specified by:
getInstEncKey
in interfaceHBCIPassport
- See Also:
-
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 vonsaveChanges
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 interfaceHBCIPassport
- See Also:
-
readBankData
public void readBankData()Liest die Bank-Daten. -
readKeyData
public void readKeyData()Liest die Schluesseldaten. -
checkPIN
private void checkPIN()Prueft die PIN. -
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.
-