Class AESFormat
java.lang.Object
org.kapott.hbci.passport.storage.format.AbstractFormat
org.kapott.hbci.passport.storage.format.AESFormat
- All Implemented Interfaces:
PassportFormat
Implementierung des neuen AES-basierten Formats.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private static final int
private static final String
private static final String
private static final int
private static final String
private static final String
private static final int
private static final SecureRandom
private static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String
Liefert den zu verwendenden Cipher-Algorithmus.private SecretKey
getPassportKey
(char[] password, byte[] salt) Erzeugt den Secret-Key aus Passwort und Salt.private SecretKey
getPassportKey
(HBCIPassport passport, byte[] salt, boolean forSaving) Fragt den User per Callback nach dem Passwort fuer die Passport-Datei.load
(HBCIPassport passport, byte[] data) Liest die Passport-Datei.byte[]
save
(HBCIPassport passport, PassportData data) Speichert die Passport-Daten-boolean
Testet, ob das Format auf dem System unterstuetzt wird.Methods inherited from class org.kapott.hbci.passport.storage.format.AbstractFormat
getCipher, getPassword, getRetries
-
Field Details
-
FORMAT_NAME
- See Also:
-
FORMAT_VERSION
private static final int FORMAT_VERSION- See Also:
-
ENCODING
- See Also:
-
RAND
-
KEY_ALG_NAME
- See Also:
-
KEY_ALG
- See Also:
-
CIPHER_ALG
- See Also:
-
CIPHER_ITERATIONS
private static final int CIPHER_ITERATIONS- See Also:
-
KEY_SIZE
private static final int KEY_SIZE- See Also:
-
SALT_SIZE
private static final int SALT_SIZE- See Also:
-
-
Constructor Details
-
AESFormat
public AESFormat()
-
-
Method Details
-
load
Description copied from interface:PassportFormat
Liest die Passport-Datei.- Parameters:
passport
- der Passport, fuer den die Daten gelesen werden sollen.data
- das Byte-Array mit dem Datei-Inhalt. Wir uebergeben hier keinen Stream, damit wir mehrere Formate mit den selben Daten durchprobieren koennen, ohne jedesmal den Stream neu oeffnen zu muessen (mark/reset unterstuetzen viele InputStream-Implementierungen nicht). Und da wir die Daten zur Deserialisierung ohnehin komplett lesen muessen, koennen wir sie auch gleich in ein Byte-Array lesen.- Returns:
- die gelesenen Daten des Passport.
- Throws:
UnsupportedOperationException
- wenn die Implementierung dieses Dateiformat nicht unterstuetzt.- See Also:
-
save
Description copied from interface:PassportFormat
Speichert die Passport-Daten-- Parameters:
passport
- der Passport, fuer den die Daten gespeichert werden sollen.data
- die zu speichernden Daten.- Returns:
- die gespeicherten Daten als Byte-Array.
- Throws:
UnsupportedOperationException
- See Also:
-
getCipherAlg
Description copied from class:AbstractFormat
Liefert den zu verwendenden Cipher-Algorithmus.- Specified by:
getCipherAlg
in classAbstractFormat
- Returns:
- der zu verwendende Cipher-Algorithmus.
- See Also:
-
supported
public boolean supported()Description copied from interface:PassportFormat
Testet, ob das Format auf dem System unterstuetzt wird.- Specified by:
supported
in interfacePassportFormat
- Overrides:
supported
in classAbstractFormat
- Returns:
- true, wenn es unterstuetzt wird.
- See Also:
-
getPassportKey
private SecretKey getPassportKey(HBCIPassport passport, byte[] salt, boolean forSaving) throws GeneralSecurityException Fragt den User per Callback nach dem Passwort fuer die Passport-Datei.- Parameters:
passport
- der Passport.salt
- das zu verwendende Salt.forSaving
- true, wenn das Passwort zum Speichern erfragt werden soll.- Returns:
- der Secret-Key.
- Throws:
GeneralSecurityException
- wenn das Passwort nicht ermittelt werden konnte.
-
getPassportKey
Erzeugt den Secret-Key aus Passwort und Salt.- Parameters:
password
- das zu verwendende Passwort.salt
- das zu verwendende Salt.- Returns:
- der Secret-Key.
- Throws:
GeneralSecurityException
- wenn das Passwort nicht ermittelt werden konnte.
-