Class AESFormat
- java.lang.Object
-
- org.kapott.hbci.passport.storage.format.AbstractFormat
-
- org.kapott.hbci.passport.storage.format.AESFormat
-
- All Implemented Interfaces:
PassportFormat
public class AESFormat extends AbstractFormat
Implementierung des neuen AES-basierten Formats.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
CIPHER_ALG
private static int
CIPHER_ITERATIONS
private static java.lang.String
ENCODING
private static java.lang.String
FORMAT_NAME
private static int
FORMAT_VERSION
private static java.lang.String
KEY_ALG
private static java.lang.String
KEY_ALG_NAME
private static int
KEY_SIZE
private static java.security.SecureRandom
RAND
private static int
SALT_SIZE
-
Constructor Summary
Constructors Constructor Description AESFormat()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
getCipherAlg()
Liefert den zu verwendenden Cipher-Algorithmus.private javax.crypto.SecretKey
getPassportKey(char[] password, byte[] salt)
Erzeugt den Secret-Key aus Passwort und Salt.private javax.crypto.SecretKey
getPassportKey(HBCIPassport passport, byte[] salt, boolean forSaving)
Fragt den User per Callback nach dem Passwort fuer die Passport-Datei.PassportData
load(HBCIPassport passport, byte[] data)
Liest die Passport-Datei.byte[]
save(HBCIPassport passport, PassportData data)
Speichert die Passport-Daten-boolean
supported()
Testet, ob das Format auf dem System unterstuetzt wird.-
Methods inherited from class org.kapott.hbci.passport.storage.format.AbstractFormat
getCipher, getPassword, getRetries
-
-
-
-
Field Detail
-
FORMAT_NAME
private static final java.lang.String FORMAT_NAME
- See Also:
- Constant Field Values
-
FORMAT_VERSION
private static final int FORMAT_VERSION
- See Also:
- Constant Field Values
-
ENCODING
private static final java.lang.String ENCODING
- See Also:
- Constant Field Values
-
RAND
private static final java.security.SecureRandom RAND
-
KEY_ALG_NAME
private static final java.lang.String KEY_ALG_NAME
- See Also:
- Constant Field Values
-
KEY_ALG
private static final java.lang.String KEY_ALG
- See Also:
- Constant Field Values
-
CIPHER_ALG
private static final java.lang.String CIPHER_ALG
- See Also:
- Constant Field Values
-
CIPHER_ITERATIONS
private static final int CIPHER_ITERATIONS
- See Also:
- Constant Field Values
-
KEY_SIZE
private static final int KEY_SIZE
- See Also:
- Constant Field Values
-
SALT_SIZE
private static final int SALT_SIZE
- See Also:
- Constant Field Values
-
-
Method Detail
-
load
public PassportData load(HBCIPassport passport, byte[] data) throws java.lang.UnsupportedOperationException
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:
java.lang.UnsupportedOperationException
- wenn die Implementierung dieses Dateiformat nicht unterstuetzt.- See Also:
PassportFormat.load(org.kapott.hbci.passport.HBCIPassport, byte[])
-
save
public byte[] save(HBCIPassport passport, PassportData data) throws java.lang.UnsupportedOperationException
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:
java.lang.UnsupportedOperationException
- See Also:
PassportFormat.save(org.kapott.hbci.passport.HBCIPassport, org.kapott.hbci.passport.storage.PassportData)
-
getCipherAlg
protected java.lang.String 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:
AbstractFormat.getCipherAlg()
-
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:
AbstractFormat.supported()
-
getPassportKey
private javax.crypto.SecretKey getPassportKey(HBCIPassport passport, byte[] salt, boolean forSaving) throws java.security.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:
java.security.GeneralSecurityException
- wenn das Passwort nicht ermittelt werden konnte.
-
getPassportKey
private javax.crypto.SecretKey getPassportKey(char[] password, byte[] salt) throws java.security.GeneralSecurityException
Erzeugt den Secret-Key aus Passwort und Salt.- Parameters:
password
- das zu verwendende Passwort.salt
- das zu verwendende Salt.- Returns:
- der Secret-Key.
- Throws:
java.security.GeneralSecurityException
- wenn das Passwort nicht ermittelt werden konnte.
-
-