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.
INILetter
,
Serialized FormFOR_LOAD, FOR_SAVE
CIPHER_ITERATIONS, CIPHER_SALT
keys
ROLE_CON, ROLE_ISS, ROLE_WIT
Constructor | Description |
---|---|
HBCIPassportRDHNew(java.lang.Object initObject) |
|
HBCIPassportRDHNew(java.lang.Object init,
int dummy) |
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) |
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
createMsgKey, getCommInstance, getCryptAlg, getCryptDataSize, getCryptFunction, getCryptKeyType, getCryptMode, getHashAlg, getPassportTypeName, getProfileMethod, getSigAlg, getSigFunction, getSigMode, getSignatureInstance, getSignatureParamSpec, getSysStatus, hash, isSupported, needInstKeys, needUserKeys, needUserSig
close, getFilename, getPassportKey, resetPassphrase, setFilename, setPassportKey
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
public HBCIPassportRDHNew(java.lang.Object init, int dummy)
public HBCIPassportRDHNew(java.lang.Object initObject)
protected java.lang.String getElementValue(org.w3c.dom.Element root, java.lang.String name)
protected java.util.Properties getElementProps(org.w3c.dom.Element root, java.lang.String name)
protected HBCIKey getElementKey(org.w3c.dom.Element root, java.lang.String owner, java.lang.String type, java.lang.String part) throws java.lang.Exception
java.lang.Exception
public void saveChanges()
HBCIPassport
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.HBCIPassport.saveChanges()
protected void createElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String elemName, java.lang.String elemValue)
protected void createPropsElement(org.w3c.dom.Document doc, org.w3c.dom.Element root, java.lang.String elemName, java.util.Properties p)
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)
public void setProfileVersion(java.lang.String version)
setProfileVersion
in interface HBCIPassportInternal
setProfileVersion
in class AbstractHBCIPassport
public java.lang.String getProfileVersion()
Copyright © 2018. All rights reserved.