Class HBCIPassportRSA
- All Implemented Interfaces:
Serializable,HBCIPassport,HBCIPassportChipcard,HBCIPassportInternal,InitLetterPassport
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Stringprivate Stringprivate RSACardServiceprivate Stringprivate intprivate Stringprivate Stringprivate static final intprivate static final intprivate static final intprivate static final intprivate HBCIKey[]private booleanprivate byte[]private intFields 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 voidcheckPIN()Prueft die PIN.voidclose()Schließen eines Passport-Objektes.protected voidcloseCT()Schliesst den Kartenleser.protected byte[]ctDecipher(byte[] data) Entschluesselt die Daten.protected byte[]ctEncipher(byte[] data) Verschluesselt die Daten.protected voidFuehrt die PIN-Eingabe durch.protected voidLiest die Bankdaten.protected voidLiest die Schluesseldaten.protected voidSpeichert die Bankdaten.protected voidSpeichert die Signatur-ID.protected byte[]ctSign(byte[] data) Signiert die Daten.protected booleanctVerify(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.intLiefert den Index des Bankzugangs.Gibt den Dateinamen für die zusätzliche Schlüsseldatei zurück.private HBCIKeygetKey(int i) Liefert den Schluessel.byte[]Liefert die ueber die Tastatur eingegebene PIN.intPrueft, ob die PIN per Tastatur eingegeben werden soll.byte[]hash(byte[] data) booleanbooleanbooleanbooleanprotected voidinitCT()Initialisiert die Karte.booleanLiefert true, wenn die PIN eingegeben wurde.voidLiest die Bank-Daten.voidLiest die Schluesseldaten.voidvoidSchreiben der aktuellen Zugangsdaten auf die Chipkarte.voidSpeichern der Änderungen an den Passport-Daten.voidSpeichert die Bank-ID.voidSpeichert die Karten-ID.voidsetDefaultCustomerId(String defaultCustomerId) Speichert die Default-Kundenkennung.voidsetEntryIdx(int entryIdx) Speichert den Index des Bankzugangs.voidsetFileName(String filename) Legt den Dateinamen fuer die zusaetzliche Schluesseldatei fest.voidsetInstEncKey(HBCIKey key) voidsetInstSigKey(HBCIKey key) private voidSpeichert den Schluesel.voidvoidvoidvoidsetMyPublicDigKey(HBCIKey key) voidsetMyPublicEncKey(HBCIKey key) voidsetMyPublicSigKey(HBCIKey key) voidsetPINEntered(boolean pinEntered) Speichert, ob die PIN eingegeben wurde.voidsetProfileVersion(String version) voidsetSoftPin(byte[] softPin) Speichert die ueber die Tastatur eingegebene PIN.voidsetUseSoftPin(int useSoftPin) Legt fest, ob die PIN per Tastatur eingegeben werden soll.byte[]sign(byte[] data) booleanverify(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, onDialogEventMethods 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, syncSysIdMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:HBCIPassportGibt 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:
getCustomerIdin interfaceHBCIPassport- Overrides:
getCustomerIdin 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:HBCIPassportChipcardLegt den Dateinamen fuer die zusaetzliche Schluesseldatei fest.- Specified by:
setFileNamein interfaceHBCIPassportChipcard- Parameters:
filename-- See Also:
-
getFileName
Description copied from interface:HBCIPassportChipcardGibt den Dateinamen für die zusätzliche Schlüsseldatei zurück. Diese Datei enthält gecachte Daten, um das Initialisieren einesHBCIHandlermit 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:
getFileNamein 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:
setProfileVersionin interfaceHBCIPassportInternal- Overrides:
setProfileVersionin classAbstractHBCIPassport- See Also:
-
getProfileVersion
- Specified by:
getProfileVersionin 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:
setInstSigKeyin interfaceHBCIPassportInternal- See Also:
-
setInstEncKey
- Specified by:
setInstEncKeyin interfaceHBCIPassportInternal- See Also:
-
setMyPublicSigKey
- Specified by:
setMyPublicSigKeyin interfaceHBCIPassportInternal- See Also:
-
setMyPrivateSigKey
- Specified by:
setMyPrivateSigKeyin interfaceHBCIPassportInternal- See Also:
-
setMyPublicEncKey
- Specified by:
setMyPublicEncKeyin interfaceHBCIPassportInternal- See Also:
-
setMyPrivateEncKey
- Specified by:
setMyPrivateEncKeyin interfaceHBCIPassportInternal- See Also:
-
setMyPublicDigKey
- Specified by:
setMyPublicDigKeyin interfaceHBCIPassportInternal- See Also:
-
setMyPrivateDigKey
- Specified by:
setMyPrivateDigKeyin interfaceHBCIPassportInternal- See Also:
-
getInstSigKeyName
- Specified by:
getInstSigKeyNamein interfaceHBCIPassportInternal- See Also:
-
getInstSigKeyNum
- Specified by:
getInstSigKeyNumin interfaceHBCIPassportInternal- See Also:
-
getInstSigKeyVersion
- Specified by:
getInstSigKeyVersionin interfaceHBCIPassportInternal- See Also:
-
getInstEncKeyName
- Specified by:
getInstEncKeyNamein interfaceHBCIPassportInternal- See Also:
-
getInstEncKeyNum
- Specified by:
getInstEncKeyNumin interfaceHBCIPassportInternal- See Also:
-
getInstEncKeyVersion
- Specified by:
getInstEncKeyVersionin interfaceHBCIPassportInternal- See Also:
-
getMySigKeyName
- Specified by:
getMySigKeyNamein interfaceHBCIPassportInternal- See Also:
-
getMySigKeyNum
- Specified by:
getMySigKeyNumin interfaceHBCIPassportInternal- See Also:
-
getMySigKeyVersion
- Specified by:
getMySigKeyVersionin interfaceHBCIPassportInternal- See Also:
-
getMyEncKeyName
- Specified by:
getMyEncKeyNamein interfaceHBCIPassportInternal- See Also:
-
getMyEncKeyNum
- Specified by:
getMyEncKeyNumin interfaceHBCIPassportInternal- See Also:
-
getMyEncKeyVersion
- Specified by:
getMyEncKeyVersionin interfaceHBCIPassportInternal- See Also:
-
hash
public byte[] hash(byte[] data) - Specified by:
hashin interfaceHBCIPassportInternal- Overrides:
hashin classAbstractRDHPassport- See Also:
-
sign
public byte[] sign(byte[] data) - Specified by:
signin interfaceHBCIPassportInternal- See Also:
-
verify
public boolean verify(byte[] data, byte[] sig) - Specified by:
verifyin 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:
encryptin interfaceHBCIPassportInternal- See Also:
-
decrypt
public byte[] decrypt(byte[] cryptedKey, byte[] cryptedMsg) - Specified by:
decryptin interfaceHBCIPassportInternal- See Also:
-
close
public void close()Description copied from interface:HBCIPassportSchließ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:
closein interfaceHBCIPassport- Overrides:
closein classAbstractHBCIPassport- See Also:
-
saveBankData
public void saveBankData()Description copied from interface:HBCIPassportChipcardSchreiben 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:
saveBankDatain interfaceHBCIPassportChipcard- See Also:
-
resetPassphrase
public void resetPassphrase()- Specified by:
resetPassphrasein interfaceHBCIPassportInternal- See Also:
-
hasInstSigKey
public boolean hasInstSigKey()- Specified by:
hasInstSigKeyin interfaceHBCIPassport- See Also:
-
hasInstEncKey
public boolean hasInstEncKey()- Specified by:
hasInstEncKeyin interfaceHBCIPassport- See Also:
-
hasMySigKey
public boolean hasMySigKey()- Specified by:
hasMySigKeyin interfaceHBCIPassport- See Also:
-
hasMyEncKey
public boolean hasMyEncKey()- Specified by:
hasMyEncKeyin interfaceHBCIPassport- See Also:
-
getMyPublicSigKey
- Specified by:
getMyPublicSigKeyin interfaceHBCIPassport- See Also:
-
getMyPublicEncKey
- Specified by:
getMyPublicEncKeyin interfaceHBCIPassport- See Also:
-
getMyPublicDigKey
- Specified by:
getMyPublicDigKeyin interfaceHBCIPassport- See Also:
-
getMyPrivateSigKey
- Specified by:
getMyPrivateSigKeyin interfaceHBCIPassport- See Also:
-
getMyPrivateEncKey
- Specified by:
getMyPrivateEncKeyin interfaceHBCIPassport- See Also:
-
getMyPrivateDigKey
- Specified by:
getMyPrivateDigKeyin interfaceHBCIPassport- See Also:
-
getInstSigKey
- Specified by:
getInstSigKeyin interfaceHBCIPassport- See Also:
-
getInstEncKey
- Specified by:
getInstEncKeyin interfaceHBCIPassport- See Also:
-
saveChanges
public void saveChanges()Description copied from interface:HBCIPassportSpeichern 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 vonsaveChangesist 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:
saveChangesin 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.
-