Package org.kapott.hbci.tools
Class CryptUtils
- java.lang.Object
-
- org.kapott.hbci.tools.CryptUtils
-
public class CryptUtils extends java.lang.Object
Hilfsklasse zum Erzeugen und Pruefen von Signaturen und Hashes sowie zum Ver- und Entschluessen.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CRYPT_ALG_AES
Verschluesselungsalgorithmus AES.static java.lang.String
CRYPT_ALG_AES_CBC
Ciphermoduss fuer AES.static java.lang.String
CRYPT_ALG_RSA
Verschluesselungsalgorithmus RSA.static java.lang.String
HASH_ALG_RIPE_MD160
Hash-Algorithmus RIPEMD160.static java.lang.String
HASH_ALG_SHA1
Hash-Algorithmus SHA1.static java.lang.String
HASH_ALG_SHA256
Hash-Algorithmus SHA-256.static java.lang.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(java.security.interfaces.RSAPublicKey key)
Liefert die Anzahl der Bytes fuer den Schluessel.static java.lang.String
getSecurityProvider()
Liefert einen optional als Kernel-Parameter definierten Security-Provier.static byte[]
hash(byte[] data, java.lang.String alg)
Hasht die Daten.static java.lang.String
hash(java.lang.String data, java.lang.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, java.security.interfaces.RSAPublicKey key)
Fuehrt ein Null-Padding links auf die Laenge des Schluessels durch.static byte[]
sign(byte[] data, java.security.PrivateKey key, java.lang.String signAlg, java.lang.String hashAlg)
Signiert die Daten.static boolean
verifySignature(byte[] data, byte[] signature, java.security.PublicKey key, java.lang.String signAlg, java.lang.String hashAlg)
Prueft die Gueltigkeit der Signatur.
-
-
-
Field Detail
-
HASH_ALG_RIPE_MD160
public static final java.lang.String HASH_ALG_RIPE_MD160
Hash-Algorithmus RIPEMD160.- See Also:
- Constant Field Values
-
HASH_ALG_SHA256
public static final java.lang.String HASH_ALG_SHA256
Hash-Algorithmus SHA-256.- See Also:
- Constant Field Values
-
HASH_ALG_SHA1
public static final java.lang.String HASH_ALG_SHA1
Hash-Algorithmus SHA1.- See Also:
- Constant Field Values
-
SIGN_ALG_RSA
public static final java.lang.String SIGN_ALG_RSA
Signatur-Alorithmus RSASSA-PSS (PKCS1)- See Also:
- Constant Field Values
-
CRYPT_ALG_AES
public static final java.lang.String CRYPT_ALG_AES
Verschluesselungsalgorithmus AES.- See Also:
- Constant Field Values
-
CRYPT_ALG_RSA
public static final java.lang.String CRYPT_ALG_RSA
Verschluesselungsalgorithmus RSA.- See Also:
- Constant Field Values
-
CRYPT_ALG_AES_CBC
public static final java.lang.String CRYPT_ALG_AES_CBC
Ciphermoduss fuer AES.- See Also:
- Constant Field Values
-
-
Method Detail
-
getSecurityProvider
public static java.lang.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 java.lang.String hash(java.lang.String data, java.lang.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, java.lang.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, java.security.PublicKey key, java.lang.String signAlg, java.lang.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, java.security.PrivateKey key, java.lang.String signAlg, java.lang.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(java.security.interfaces.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, java.security.interfaces.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.
-
-