Package org.kapott.hbci.tools
Class CryptUtils
- java.lang.Object
-
- org.kapott.hbci.tools.CryptUtils
-
public class CryptUtils extends java.lang.ObjectHilfsklasse zum Erzeugen und Pruefen von Signaturen und Hashes sowie zum Ver- und Entschluessen.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCRYPT_ALG_AESVerschluesselungsalgorithmus AES.static java.lang.StringCRYPT_ALG_AES_CBCCiphermoduss fuer AES.static java.lang.StringCRYPT_ALG_RSAVerschluesselungsalgorithmus RSA.static java.lang.StringHASH_ALG_RIPE_MD160Hash-Algorithmus RIPEMD160.static java.lang.StringHASH_ALG_SHA1Hash-Algorithmus SHA1.static java.lang.StringHASH_ALG_SHA256Hash-Algorithmus SHA-256.static java.lang.StringSIGN_ALG_RSASignatur-Alorithmus RSASSA-PSS (PKCS1)
-
Constructor Summary
Constructors Constructor Description CryptUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intgetCryptDataSize(java.security.interfaces.RSAPublicKey key)Liefert die Anzahl der Bytes fuer den Schluessel.static java.lang.StringgetSecurityProvider()Liefert einen optional als Kernel-Parameter definierten Security-Provier.static byte[]hash(byte[] data, java.lang.String alg)Hasht die Daten.static java.lang.Stringhash(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 booleanverifySignature(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_ExceptionHasht 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_ExceptionHasht 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_ExceptionPrueft 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_ExceptionSigniert 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.
-
-