Class HBCIPassportRDHNew
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable
,HBCIPassport
,HBCIPassportInternal
public class HBCIPassportRDHNew extends AbstractRDHSWFileBasedPassport
Passport-Klasse für RDH-Zugänge mit Sicherheitsmedium "Datei". Bei dieser Variante werden sowohl die HBCI-Zugangsdaten wie auch die kryptografischen Schlüssel für die Signierung/Verschlüsselung der HBCI-Nachrichten in einer Datei gespeichert. Der Dateiname kann dabei beliebig vorgegeben werden. Da diese Datei vertrauliche Informationen enthält, wird der Inhalt verschlüsselt abgespeichert. Vor dem Erzeugen bzw. Einlesen wird via Callback-Mechanismus nach einem Passwort gefragt, aus dem der Schlüssel zur Verschlüsselung/Entschlüsselung der Schlüsseldatei berechnet wird.
Wie auch bei
HBCIPassportDDV
werden in der Schlüsseldatei zusätzliche Informationen gespeichert. Dazu gehören u.a. die BPD und die UPD sowie die HBCI-Version, die zuletzt mit diesem Passport benutzt wurde. Im Gegensatz zu den "Hilfsdateien" bei DDV-Passports darf die Schlüsseldatei bei RDH-Passports aber niemals manuell gelöscht werden, da dabei auch die kryptografischen Schlüssel des Kunden verlorengehen. Diese können nicht wieder hergestellt werden, so dass in einem solchen Fall ein manuelles Zurücksetzes des HBCI-Zuganges bei der Bank erfolgen muss!Die Schlüsseldateien, die HBCI4Java mit dieser Klasse erzeugt und verwaltet, sind nicht kompatibel zu den Schlüsseldateien anderer HBCI-Software (z.B. VR-NetWorld o.ä.). Es ist also nicht möglich, durch Auswahl des Sicherheitsverfahrens "RDH" oder "RDHNew" und Angabe einer schon existierenden Schlüsseldatei, die mit einer anderen HBCI-Software erstellt wurde, diese Schlüsseldatei unter HBCI4Java zu benutzen! Es ist jedoch im Prinzip möglich, mit der "anderen" Software die Kundenschlüssel sperren zu lassen und anschließend mit HBCI4Java eine völlig neue Schlüsseldatei zu erzeugen. Das hat aber zwei Nachteile: Zum einen muss nach dem Neuerzeugen der Schlüsseldatei auch ein neuer INI-Brief erzeugt und an die Bank gesandt werden, um die neuen Schlüssel freischalten zu lassen. Außerdem lässt sich natürlich die HBCI4Java-Schlüsseldatei nicht mehr in der "anderen" HBCI-Software benutzen. Ein Parallel-Betrieb verschiedener HBCI-Softwarelösungen, die alle auf dem RDH-Verfahren mit Sicherheitsmedium "Datei" (oder Diskette) basieren, ist meines Wissens nicht möglich.
Ein weiterer Ausweg aus diesem Problem wäre, eine technische Beschreibung des Formates der Schlüsseldateien der "anderen" HBCI-Software zu besorgen und diese dem Autor zukommen zu lassen, damit eine Passport-Variante implementiert werden kann, die mit Schlüsseldateien dieser "anderen" Software arbeiten kann.
- See Also:
INILetter
, Serialized Form
-
-
Field Summary
-
Fields inherited from class org.kapott.hbci.passport.AbstractRDHSWFileBasedPassport
CIPHER_ITERATIONS, CIPHER_SALT
-
Fields inherited from class org.kapott.hbci.passport.AbstractRDHSWPassport
keys
-
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 HBCIPassportRDHNew(java.lang.Object initObject)
HBCIPassportRDHNew(java.lang.Object init, int dummy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
createElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String elemName, java.lang.String elemValue)
protected void
createKeyElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String owner, java.lang.String type, java.lang.String part, HBCIKey key)
protected void
createPropsElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String elemName, java.util.Properties p)
protected HBCIKey
getElementKey(org.w3c.dom.Element root, java.lang.String owner, java.lang.String type, java.lang.String part)
protected java.util.Properties
getElementProps(org.w3c.dom.Element root, java.lang.String name)
protected java.lang.String
getElementValue(org.w3c.dom.Element root, java.lang.String name)
java.lang.String
getProfileVersion()
void
saveChanges()
Speichern der Änderungen an den Passport-Daten.void
setProfileVersion(java.lang.String version)
-
Methods inherited from class org.kapott.hbci.passport.AbstractRDHSWFileBasedPassport
close, getFilename, getPassportKey, resetPassphrase, setFilename, setPassportKey
-
Methods inherited from class org.kapott.hbci.passport.AbstractRDHSWPassport
decrypt, encrypt, generateNewUserKeys, getInstEncKey, getInstEncKeyName, getInstEncKeyNum, getInstEncKeyVersion, getInstSigKey, getInstSigKeyName, getInstSigKeyNum, getInstSigKeyVersion, getKey, getMyEncKeyName, getMyEncKeyNum, getMyEncKeyVersion, getMyPrivateDigKey, getMyPrivateEncKey, getMyPrivateSigKey, getMyPublicDigKey, getMyPublicEncKey, getMyPublicSigKey, getMySigKeyName, getMySigKeyNum, getMySigKeyVersion, hasInstEncKey, hasInstSigKey, hasMyEncKey, hasMySigKey, setInstEncKey, setInstSigKey, setKey, setMyDigKey, setMyEncKey, setMyPrivateDigKey, setMyPrivateEncKey, setMyPrivateSigKey, setMyPublicDigKey, setMyPublicEncKey, setMyPublicSigKey, setMySigKey, sign, verify
-
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, hash, 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, getAccount, getAccounts, getBLZ, getBPD, getBPDVersion, getCID, getClientData, getComm, getCommFilter, getCountry, getCustomerId, 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
-
-
-
-
Method Detail
-
getElementValue
protected java.lang.String getElementValue(org.w3c.dom.Element root, java.lang.String name)
-
getElementProps
protected java.util.Properties getElementProps(org.w3c.dom.Element root, java.lang.String name)
-
getElementKey
protected HBCIKey getElementKey(org.w3c.dom.Element root, java.lang.String owner, java.lang.String type, java.lang.String part) throws java.lang.Exception
- Throws:
java.lang.Exception
-
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.- See Also:
HBCIPassport.saveChanges()
-
createElement
protected void createElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String elemName, java.lang.String elemValue)
-
createPropsElement
protected void createPropsElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String elemName, java.util.Properties p)
-
createKeyElement
protected void createKeyElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String owner, java.lang.String type, java.lang.String part, HBCIKey key)
-
setProfileVersion
public void setProfileVersion(java.lang.String version)
- Specified by:
setProfileVersion
in interfaceHBCIPassportInternal
- Overrides:
setProfileVersion
in classAbstractHBCIPassport
-
getProfileVersion
public java.lang.String getProfileVersion()
-
-