Package org.kapott.hbci.tools
Class CryptUtils
- java.lang.Object
-
- org.kapott.hbci.tools.CryptUtils
-
public class CryptUtils extends Object
Hilfsklasse zum Erzeugen und Pruefen von Signaturen und Hashes sowie zum Ver- und Entschluessen.
-
-
Field Summary
Fields Modifier and Type Field Description static String
CRYPT_ALG_AES
Verschluesselungsalgorithmus AES.static String
CRYPT_ALG_AES_CBC
Ciphermoduss fuer AES.static String
CRYPT_ALG_RSA
Verschluesselungsalgorithmus RSA.static String
HASH_ALG_RIPE_MD160
Hash-Algorithmus RIPEMD160.static String
HASH_ALG_SHA1
Hash-Algorithmus SHA1.static String
HASH_ALG_SHA256
Hash-Algorithmus SHA-256.static String
SIGN_ALG_RSA
Signatur-Alorithmus RSASSA-PSS (PKCS1)
-
Constructor Summary
Constructors Constructor Description CryptUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
getCryptDataSize(RSAPublicKey key)
Liefert die Anzahl der Bytes fuer den Schluessel.static String
getSecurityProvider()
Liefert einen optional als Kernel-Parameter definierten Security-Provier.static byte[]
hash(byte[] data, String alg)
Hasht die Daten.static String
hash(String data, String alg)
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 byte[]
sign(byte[] data, PrivateKey key, String signAlg, String hashAlg)
Signiert die Daten.static boolean
verifySignature(byte[] data, byte[] signature, PublicKey key, String signAlg, String hashAlg)
Prueft die Gueltigkeit der Signatur.
-
-
-
Field Detail
-
HASH_ALG_RIPE_MD160
public static final String HASH_ALG_RIPE_MD160
Hash-Algorithmus RIPEMD160.- See Also:
- Constant Field Values
-
HASH_ALG_SHA256
public static final String HASH_ALG_SHA256
Hash-Algorithmus SHA-256.- See Also:
- Constant Field Values
-
HASH_ALG_SHA1
public static final String HASH_ALG_SHA1
Hash-Algorithmus SHA1.- See Also:
- Constant Field Values
-
SIGN_ALG_RSA
public static final String SIGN_ALG_RSA
Signatur-Alorithmus RSASSA-PSS (PKCS1)- See Also:
- Constant Field Values
-
CRYPT_ALG_AES
public static final String CRYPT_ALG_AES
Verschluesselungsalgorithmus AES.- See Also:
- Constant Field Values
-
CRYPT_ALG_RSA
public static final String CRYPT_ALG_RSA
Verschluesselungsalgorithmus RSA.- See Also:
- Constant Field Values
-
CRYPT_ALG_AES_CBC
public static final String CRYPT_ALG_AES_CBC
Ciphermoduss fuer AES.- See Also:
- Constant Field Values
-
-
Method Detail
-
getSecurityProvider
public static String getSecurityProvider()
Liefert einen optional als Kernel-Parameter definierten Security-Provier.- Returns:
- der Security-Provider oder NULL, wenn keiner definiert ist.
-
hash
public static final String hash(String data, String alg) throws HBCI_Exception
Hasht die Daten.- Parameters:
data
- die zu hashenden Daten.alg
- der zu verwendende Algorithmus.- Returns:
- der Hash.
- Throws:
HBCI_Exception
-
hash
public static final byte[] hash(byte[] data, String alg) throws HBCI_Exception
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
public static int getCryptDataSize(RSAPublicKey key)
Liefert die Anzahl der Bytes fuer den Schluessel.- Parameters:
key
- der Schluessel.- Returns:
- die Laenge in Bytes.
-
padLeft
public static byte[] padLeft(byte[] buffer, RSAPublicKey key)
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.
-
-