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 FormCIPHER_ITERATIONS, CIPHER_SALTkeyspropertiescallback, FOR_LOAD, FOR_SAVEROLE_CON, ROLE_ISS, ROLE_WIT| Constructor and Description |
|---|
HBCIPassportRDHNew(Properties properties,
HBCICallback callback,
Object initObject) |
HBCIPassportRDHNew(Properties properties,
HBCICallback callback,
Object init,
int dummy) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
createElement(Document doc,
Element root,
String elemName,
String elemValue) |
protected void |
createKeyElement(Document doc,
Element root,
String owner,
String type,
String part,
HBCIKey key) |
protected void |
createPropsElement(Document doc,
Element root,
String elemName,
Properties p) |
protected HBCIKey |
getElementKey(Element root,
String owner,
String type,
String part) |
protected Properties |
getElementProps(Element root,
String name) |
protected String |
getElementValue(Element root,
String name) |
String |
getProfileVersion() |
void |
saveChanges()
Speichern der Änderungen an den Passport-Daten.
|
void |
setProfileVersion(String version) |
close, getFilename, getPassportKey, resetPassphrase, setFilename, setPassportKeydecrypt, 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, verifycreateMsgKey, getCommInstance, getCryptAlg, getCryptDataSize, getCryptFunction, getCryptKeyType, getCryptMode, getHashAlg, getPassportTypeName, getProfileMethod, getProperties, getSigAlg, getSigFunction, getSigMode, getSignatureInstance, getSignatureParamSpec, getSysStatus, hash, isSupported, needInstKeys, needUserKeys, needUserSigafterCustomDialogInitHook, askForMissingData, beforeCustomDialogHook, calculatePassportKey, canMixSecMethods, changePassphrase, checkForCryptDataSize, clearBPD, clearInstEncKey, clearInstSigKey, clearMyDigKey, clearMyEncKey, clearMySigKey, clearUPD, closeComm, fillAccountInfo, getAccount, getAccounts, getBLZ, getBPD, getBPDVersion, getCallback, 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, syncSysIdpublic HBCIPassportRDHNew(Properties properties, HBCICallback callback, Object init, int dummy)
public HBCIPassportRDHNew(Properties properties, HBCICallback callback, Object initObject)
protected Properties getElementProps(Element root, String name)
protected HBCIKey getElementKey(Element root, String owner, String type, String part) throws Exception
Exceptionpublic void saveChanges()
HBCIPassportsaveChanges
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(Document doc, Element root, String elemName, String elemValue)
protected void createPropsElement(Document doc, Element root, String elemName, Properties p)
protected void createKeyElement(Document doc, Element root, String owner, String type, String part, HBCIKey key)
public void setProfileVersion(String version)
setProfileVersion in interface HBCIPassportInternalsetProfileVersion in class AbstractHBCIPassportpublic String getProfileVersion()
Copyright © 2017. All rights reserved.