Package org.kapott.hbci.tools
Class CryptUtils
java.lang.Object
org.kapott.hbci.tools.CryptUtils
Hilfsklasse zum Erzeugen und Pruefen von Signaturen und Hashes sowie zum Ver- und Entschluessen.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Verschluesselungsalgorithmus AES.static final String
Ciphermoduss fuer AES.static final String
Verschluesselungsalgorithmus RSA.static final String
Hash-Algorithmus RIPEMD160.static final String
Hash-Algorithmus SHA1.static final String
Hash-Algorithmus SHA-256.static final String
Signatur-Alorithmus RSASSA-PSS (PKCS1) -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
Liefert die Anzahl der Bytes fuer den Schluessel.static String
Liefert einen optional als Kernel-Parameter definierten Security-Provier.static final byte[]
Hasht die Daten.static final String
Hasht die Daten.static byte[]
padLeft
(byte[] buffer, int size) Fuehrt ein Null-Padding links auf die angegebene Laenge durch.static byte[]
padLeft
(byte[] buffer, RSAPublicKey key) Fuehrt ein Null-Padding links auf die Laenge des Schluessels durch.static final byte[]
sign
(byte[] data, PrivateKey key, String signAlg, String hashAlg) Signiert die Daten.static final boolean
verifySignature
(byte[] data, byte[] signature, PublicKey key, String signAlg, String hashAlg) Prueft die Gueltigkeit der Signatur.
-
Field Details
-
HASH_ALG_RIPE_MD160
Hash-Algorithmus RIPEMD160.- See Also:
-
HASH_ALG_SHA256
Hash-Algorithmus SHA-256.- See Also:
-
HASH_ALG_SHA1
Hash-Algorithmus SHA1.- See Also:
-
SIGN_ALG_RSA
Signatur-Alorithmus RSASSA-PSS (PKCS1)- See Also:
-
CRYPT_ALG_AES
Verschluesselungsalgorithmus AES.- See Also:
-
CRYPT_ALG_RSA
Verschluesselungsalgorithmus RSA.- See Also:
-
CRYPT_ALG_AES_CBC
Ciphermoduss fuer AES.- See Also:
-
-
Constructor Details
-
CryptUtils
public CryptUtils()
-
-
Method Details
-
getSecurityProvider
Liefert einen optional als Kernel-Parameter definierten Security-Provier.- Returns:
- der Security-Provider oder NULL, wenn keiner definiert ist.
-
hash
Hasht die Daten.- Parameters:
data
- die zu hashenden Daten.alg
- der zu verwendende Algorithmus.- Returns:
- der Hash.
- Throws:
HBCI_Exception
-
hash
Hasht die Daten.- Parameters:
data
- die zu hashenden Daten.alg
- der zu verwendende Algorithmus.- Returns:
- der Hash.
- Throws:
HBCI_Exception
-
verifySignature
public static final boolean verifySignature(byte[] data, byte[] signature, PublicKey key, String signAlg, String hashAlg) throws HBCI_Exception Prueft die Gueltigkeit der Signatur.- Parameters:
data
- die zu pruefenden Daten.signature
- die Signatur.key
- der Public-Key zur Signatur.signAlg
- der verwendete Signatur-Algorithmus.hashAlg
- der verwendete Hash-Algorithmus.- Returns:
- true, wenn die Signatur ok war.
- Throws:
HBCI_Exception
-
sign
public static final byte[] sign(byte[] data, PrivateKey key, String signAlg, String hashAlg) throws HBCI_Exception Signiert die Daten.- Parameters:
data
- die zu hashenden Daten.key
- der fuer die Signatur zu verwendende Private-Key.signAlg
- der zu verwendende Signatur-Algorithmus.hashAlg
- der zu verwendende Hash-Algorithmus.- Returns:
- die Signatur.
- Throws:
HBCI_Exception
-
getCryptDataSize
Liefert die Anzahl der Bytes fuer den Schluessel.- Parameters:
key
- der Schluessel.- Returns:
- die Laenge in Bytes.
-
padLeft
Fuehrt ein Null-Padding links auf die Laenge des Schluessels durch.- Parameters:
buffer
- der Buffer.key
- der Schluessel.- Returns:
- der ggf. angepasste Buffer.
-
padLeft
public static byte[] padLeft(byte[] buffer, int size) Fuehrt ein Null-Padding links auf die angegebene Laenge durch.- Parameters:
buffer
- der Buffer.size
- die Laenge.- Returns:
- der ggf. angepasste Buffer.
-