Class HBCIPassportRSA
- java.lang.Object
-
- org.kapott.hbci.passport.AbstractHBCIPassport
-
- org.kapott.hbci.passport.AbstractRDHPassport
-
- org.kapott.hbci.passport.HBCIPassportRSA
-
- All Implemented Interfaces:
java.io.Serializable
,HBCIPassport
,HBCIPassportChipcard
,HBCIPassportInternal
public class HBCIPassportRSA extends AbstractRDHPassport implements HBCIPassportChipcard
HBCI-Passport fuer RDH-Chipkarten.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
CIPHER_ITERATIONS
protected static byte[]
CIPHER_SALT
-
Fields inherited from class org.kapott.hbci.passport.AbstractHBCIPassport
FOR_LOAD, FOR_SAVE
-
Fields inherited from interface org.kapott.hbci.passport.HBCIPassport
ROLE_CON, ROLE_ISS, ROLE_WIT
-
-
Constructor Summary
Constructors Constructor Description HBCIPassportRSA(java.lang.Object init)
ct.HBCIPassportRSA(java.lang.Object init, int dummy)
ct.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Schließen eines Passport-Objektes.protected void
closeCT()
protected byte[]
ctDecipher(byte[] data)
protected byte[]
ctEncipher(byte[] data)
protected void
ctEnterPIN()
protected void
ctReadBankData()
protected void
ctReadKeyData()
protected void
ctSaveBankData()
protected void
ctSaveSigId()
protected byte[]
ctSign(byte[] data)
protected boolean
ctVerify(byte[] data, byte[] sig)
byte[]
decrypt(byte[] cryptedKey, byte[] cryptedMsg)
byte[][]
encrypt(byte[] plainMsg)
java.lang.String
getBankId()
java.lang.String
getCardId()
java.lang.String
getCustomerId()
Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird.java.lang.String
getDefaultCustomerId()
int
getEntryIdx()
java.lang.String
getFileName()
Gibt den Dateinamen für die zusätzliche Schlüsseldatei zurück.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()
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()
protected javax.crypto.SecretKey
getPassportKey()
java.lang.String
getProfileVersion()
byte[]
getSoftPin()
int
getUseSoftPin()
byte[]
hash(byte[] data)
boolean
hasInstEncKey()
boolean
hasInstSigKey()
boolean
hasMyEncKey()
boolean
hasMySigKey()
protected void
initCT()
Initialisiert die Karte.boolean
isPINEntered()
void
readBankData()
void
readKeyData()
void
resetPassphrase()
void
saveBankData()
Schreiben der aktuellen Zugangsdaten auf die Chipkarte.void
saveChanges()
Speichern der Änderungen an den Passport-Daten.void
setBankId(java.lang.String bankId)
void
setCardId(java.lang.String cardid)
void
setDefaultCustomerId(java.lang.String defaultCustomerId)
void
setEntryIdx(int entryIdx)
void
setFileName(java.lang.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)
protected void
setPassportKey(javax.crypto.SecretKey passportKey)
void
setPINEntered(boolean pinEntered)
void
setProfileVersion(java.lang.String version)
void
setSoftPin(byte[] softPin)
void
setUseSoftPin(int useSoftPin)
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
-
Methods inherited from class org.kapott.hbci.passport.AbstractHBCIPassport
afterCustomDialogInitHook, askForMissingData, beforeCustomDialogHook, calculatePassportKey, 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, postInitResponseHook, safeReplace, 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 Detail
-
CIPHER_SALT
protected static final byte[] CIPHER_SALT
-
CIPHER_ITERATIONS
protected static final int CIPHER_ITERATIONS
- See Also:
- Constant Field Values
-
-
Method Detail
-
getCustomerId
public java.lang.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 interfaceHBCIPassport
- Overrides:
getCustomerId
in classAbstractHBCIPassport
- Returns:
- Kunden-ID für die HBCI-Kommunikation
-
getDefaultCustomerId
public java.lang.String getDefaultCustomerId()
-
setDefaultCustomerId
public void setDefaultCustomerId(java.lang.String defaultCustomerId)
-
setBankId
public void setBankId(java.lang.String bankId)
-
getBankId
public java.lang.String getBankId()
-
setFileName
public void setFileName(java.lang.String filename)
Description copied from interface:HBCIPassportChipcard
Legt den Dateinamen fuer die zusaetzliche Schluesseldatei fest.- Specified by:
setFileName
in interfaceHBCIPassportChipcard
- See Also:
HBCIPassportChipcard.setFileName(java.lang.String)
-
getFileName
public java.lang.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 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:
HBCIPassportChipcard.getFileName()
-
setCardId
public void setCardId(java.lang.String cardid)
-
getCardId
public java.lang.String getCardId()
-
setPINEntered
public void setPINEntered(boolean pinEntered)
-
isPINEntered
public boolean isPINEntered()
-
setUseSoftPin
public void setUseSoftPin(int useSoftPin)
-
getUseSoftPin
public int getUseSoftPin()
-
setSoftPin
public void setSoftPin(byte[] softPin)
-
getSoftPin
public byte[] getSoftPin()
-
setPassportKey
protected void setPassportKey(javax.crypto.SecretKey passportKey)
-
getPassportKey
protected javax.crypto.SecretKey getPassportKey()
-
setEntryIdx
public void setEntryIdx(int entryIdx)
-
getEntryIdx
public int getEntryIdx()
-
setProfileVersion
public void setProfileVersion(java.lang.String version)
- Specified by:
setProfileVersion
in interfaceHBCIPassportInternal
- Overrides:
setProfileVersion
in classAbstractHBCIPassport
-
getProfileVersion
public java.lang.String getProfileVersion()
- Specified by:
getProfileVersion
in interfaceHBCIPassportInternal
-
setInstSigKey
public void setInstSigKey(HBCIKey key)
- Specified by:
setInstSigKey
in interfaceHBCIPassportInternal
-
setInstEncKey
public void setInstEncKey(HBCIKey key)
- Specified by:
setInstEncKey
in interfaceHBCIPassportInternal
-
setMyPublicSigKey
public void setMyPublicSigKey(HBCIKey key)
- Specified by:
setMyPublicSigKey
in interfaceHBCIPassportInternal
-
setMyPrivateSigKey
public void setMyPrivateSigKey(HBCIKey key)
- Specified by:
setMyPrivateSigKey
in interfaceHBCIPassportInternal
-
setMyPublicEncKey
public void setMyPublicEncKey(HBCIKey key)
- Specified by:
setMyPublicEncKey
in interfaceHBCIPassportInternal
-
setMyPrivateEncKey
public void setMyPrivateEncKey(HBCIKey key)
- Specified by:
setMyPrivateEncKey
in interfaceHBCIPassportInternal
-
setMyPublicDigKey
public void setMyPublicDigKey(HBCIKey key)
- Specified by:
setMyPublicDigKey
in interfaceHBCIPassportInternal
-
setMyPrivateDigKey
public void setMyPrivateDigKey(HBCIKey key)
- Specified by:
setMyPrivateDigKey
in interfaceHBCIPassportInternal
-
getInstSigKeyName
public java.lang.String getInstSigKeyName()
- Specified by:
getInstSigKeyName
in interfaceHBCIPassportInternal
-
getInstSigKeyNum
public java.lang.String getInstSigKeyNum()
- Specified by:
getInstSigKeyNum
in interfaceHBCIPassportInternal
-
getInstSigKeyVersion
public java.lang.String getInstSigKeyVersion()
- Specified by:
getInstSigKeyVersion
in interfaceHBCIPassportInternal
-
getInstEncKeyName
public java.lang.String getInstEncKeyName()
- Specified by:
getInstEncKeyName
in interfaceHBCIPassportInternal
-
getInstEncKeyNum
public java.lang.String getInstEncKeyNum()
- Specified by:
getInstEncKeyNum
in interfaceHBCIPassportInternal
-
getInstEncKeyVersion
public java.lang.String getInstEncKeyVersion()
- Specified by:
getInstEncKeyVersion
in interfaceHBCIPassportInternal
-
getMySigKeyName
public java.lang.String getMySigKeyName()
- Specified by:
getMySigKeyName
in interfaceHBCIPassportInternal
-
getMySigKeyNum
public java.lang.String getMySigKeyNum()
- Specified by:
getMySigKeyNum
in interfaceHBCIPassportInternal
-
getMySigKeyVersion
public java.lang.String getMySigKeyVersion()
- Specified by:
getMySigKeyVersion
in interfaceHBCIPassportInternal
-
getMyEncKeyName
public java.lang.String getMyEncKeyName()
- Specified by:
getMyEncKeyName
in interfaceHBCIPassportInternal
-
getMyEncKeyNum
public java.lang.String getMyEncKeyNum()
- Specified by:
getMyEncKeyNum
in interfaceHBCIPassportInternal
-
getMyEncKeyVersion
public java.lang.String getMyEncKeyVersion()
- Specified by:
getMyEncKeyVersion
in interfaceHBCIPassportInternal
-
hash
public byte[] hash(byte[] data)
- Specified by:
hash
in interfaceHBCIPassportInternal
- Overrides:
hash
in classAbstractRDHPassport
-
sign
public byte[] sign(byte[] data)
- Specified by:
sign
in interfaceHBCIPassportInternal
-
verify
public boolean verify(byte[] data, byte[] sig)
- Specified by:
verify
in interfaceHBCIPassportInternal
-
encrypt
public byte[][] encrypt(byte[] plainMsg)
- Specified by:
encrypt
in interfaceHBCIPassportInternal
-
decrypt
public byte[] decrypt(byte[] cryptedKey, byte[] cryptedMsg)
- Specified by:
decrypt
in interfaceHBCIPassportInternal
-
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
-
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:
HBCIPassportChipcard.saveBankData()
-
resetPassphrase
public void resetPassphrase()
- Specified by:
resetPassphrase
in interfaceHBCIPassportInternal
-
hasInstSigKey
public boolean hasInstSigKey()
- Specified by:
hasInstSigKey
in interfaceHBCIPassport
-
hasInstEncKey
public boolean hasInstEncKey()
- Specified by:
hasInstEncKey
in interfaceHBCIPassport
-
hasMySigKey
public boolean hasMySigKey()
- Specified by:
hasMySigKey
in interfaceHBCIPassport
-
hasMyEncKey
public boolean hasMyEncKey()
- Specified by:
hasMyEncKey
in interfaceHBCIPassport
-
getMyPublicSigKey
public HBCIKey getMyPublicSigKey()
- Specified by:
getMyPublicSigKey
in interfaceHBCIPassport
-
getMyPublicEncKey
public HBCIKey getMyPublicEncKey()
- Specified by:
getMyPublicEncKey
in interfaceHBCIPassport
-
getMyPublicDigKey
public HBCIKey getMyPublicDigKey()
- Specified by:
getMyPublicDigKey
in interfaceHBCIPassport
-
getMyPrivateSigKey
public HBCIKey getMyPrivateSigKey()
- Specified by:
getMyPrivateSigKey
in interfaceHBCIPassport
-
getMyPrivateEncKey
public HBCIKey getMyPrivateEncKey()
- Specified by:
getMyPrivateEncKey
in interfaceHBCIPassport
-
getMyPrivateDigKey
public HBCIKey getMyPrivateDigKey()
- Specified by:
getMyPrivateDigKey
in interfaceHBCIPassport
-
getInstSigKey
public HBCIKey getInstSigKey()
- Specified by:
getInstSigKey
in interfaceHBCIPassport
-
getInstEncKey
public HBCIKey getInstEncKey()
- Specified by:
getInstEncKey
in interfaceHBCIPassport
-
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
-
readBankData
public void readBankData()
-
readKeyData
public void readKeyData()
-
initCT
protected void initCT()
Initialisiert die Karte.
-
ctEnterPIN
protected void ctEnterPIN()
-
ctReadBankData
protected void ctReadBankData()
-
ctSaveBankData
protected void ctSaveBankData()
-
ctReadKeyData
protected void ctReadKeyData()
-
ctSaveSigId
protected void ctSaveSigId()
-
ctSign
protected byte[] ctSign(byte[] data)
-
ctVerify
protected boolean ctVerify(byte[] data, byte[] sig)
-
ctEncipher
protected byte[] ctEncipher(byte[] data)
-
ctDecipher
protected byte[] ctDecipher(byte[] data)
-
closeCT
protected void closeCT()
-
-