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 final String`
`CRYPT_ALG_AES`
Verschluesselungsalgorithmus AES.
`static final String`
`CRYPT_ALG_AES_CBC`
Ciphermoduss fuer AES.
`static final String`
`CRYPT_ALG_RSA`
Verschluesselungsalgorithmus RSA.
`static final String`
`HASH_ALG_RIPE_MD160`
Hash-Algorithmus RIPEMD160.
`static final String`
`HASH_ALG_SHA1`
Hash-Algorithmus SHA1.
`static final String`
`HASH_ALG_SHA256`
Hash-Algorithmus SHA-256.
`static final String`
`SIGN_ALG_RSA`
Signatur-Alorithmus RSASSA-PSS (PKCS1)

## Constructor Summary

Constructors
Constructor
Description
`CryptUtils()`

## Method Summary

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 final byte[]`
`hash(byte[] data, String alg)`
Hasht die Daten.
`static final 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 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.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### 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

## Constructor Details

### CryptUtils

public CryptUtils()

## Method Details

### 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.