Class 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
    • Constructor Detail

      • CryptUtils

        public CryptUtils()
    • 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.