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.StringCIPHER_ALGprivate static intCIPHER_ITERATIONSprivate static java.lang.StringENCODINGprivate static java.lang.StringFORMAT_NAMEprivate static intFORMAT_VERSIONprivate static java.lang.StringKEY_ALGprivate static java.lang.StringKEY_ALG_NAMEprivate static intKEY_SIZEprivate static java.security.SecureRandomRANDprivate static intSALT_SIZE
-
Constructor Summary
Constructors Constructor Description AESFormat()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringgetCipherAlg()Liefert den zu verwendenden Cipher-Algorithmus.private javax.crypto.SecretKeygetPassportKey(char[] password, byte[] salt)Erzeugt den Secret-Key aus Passwort und Salt.private javax.crypto.SecretKeygetPassportKey(HBCIPassport passport, byte[] salt, boolean forSaving)Fragt den User per Callback nach dem Passwort fuer die Passport-Datei.PassportDataload(HBCIPassport passport, byte[] data)Liest die Passport-Datei.byte[]save(HBCIPassport passport, PassportData data)Speichert die Passport-Daten-booleansupported()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:PassportFormatLiest 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:PassportFormatSpeichert 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:AbstractFormatLiefert den zu verwendenden Cipher-Algorithmus.- Specified by:
getCipherAlgin classAbstractFormat- Returns:
- der zu verwendende Cipher-Algorithmus.
- See Also:
AbstractFormat.getCipherAlg()
-
supported
public boolean supported()
Description copied from interface:PassportFormatTestet, ob das Format auf dem System unterstuetzt wird.- Specified by:
supportedin interfacePassportFormat- Overrides:
supportedin 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.GeneralSecurityExceptionErzeugt 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.
-
-