Class HmacUtils


  • public final class HmacUtils
    extends java.lang.Object
    Simplifies common Mac tasks. This class is immutable and thread-safe.

    Note: Not all JCE implementations supports all algorithms. If not supported, an IllegalArgumentException is thrown.

    Since:
    1.10
    Version:
    $Id: HmacUtils.java 1634411 2014-10-27 00:35:43Z ggregory $
    • Constructor Summary

      Constructors 
      Constructor Description
      HmacUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static javax.crypto.Mac getHmacMd5​(byte[] key)
      Returns an initialized Mac for the HmacMD5 algorithm.
      static javax.crypto.Mac getHmacSha1​(byte[] key)
      Returns an initialized Mac for the HmacSHA1 algorithm.
      static javax.crypto.Mac getHmacSha256​(byte[] key)
      Returns an initialized Mac for the HmacSHA256 algorithm.
      static javax.crypto.Mac getHmacSha384​(byte[] key)
      Returns an initialized Mac for the HmacSHA384 algorithm.
      static javax.crypto.Mac getHmacSha512​(byte[] key)
      Returns an initialized Mac for the HmacSHA512 algorithm.
      static javax.crypto.Mac getInitializedMac​(java.lang.String algorithm, byte[] key)
      Returns an initialized Mac for the given algorithm.
      static javax.crypto.Mac getInitializedMac​(HmacAlgorithms algorithm, byte[] key)
      Returns an initialized Mac for the given algorithm.
      static byte[] hmacMd5​(byte[] key, byte[] valueToDigest)
      Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacMd5​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacMd5​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
      static java.lang.String hmacMd5Hex​(byte[] key, byte[] valueToDigest)
      Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
      static java.lang.String hmacMd5Hex​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
      static java.lang.String hmacMd5Hex​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
      static byte[] hmacSha1​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha1​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha1​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
      static java.lang.String hmacSha1Hex​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha1Hex​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha1Hex​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static byte[] hmacSha256​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha256​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha256​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
      static java.lang.String hmacSha256Hex​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha256Hex​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha256Hex​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static byte[] hmacSha384​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha384​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha384​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
      static java.lang.String hmacSha384Hex​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha384Hex​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha384Hex​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static byte[] hmacSha512​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha512​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
      static byte[] hmacSha512​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
      static java.lang.String hmacSha512Hex​(byte[] key, byte[] valueToDigest)
      Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha512Hex​(byte[] key, java.io.InputStream valueToDigest)
      Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static java.lang.String hmacSha512Hex​(java.lang.String key, java.lang.String valueToDigest)
      Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, byte[] valueToDigest)
      Updates the given Mac.
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, java.io.InputStream valueToDigest)
      Updates the given Mac.
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, java.lang.String valueToDigest)
      Updates the given Mac.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HmacUtils

        public HmacUtils()
    • Method Detail

      • getHmacMd5

        public static javax.crypto.Mac getHmacMd5​(byte[] key)
        Returns an initialized Mac for the HmacMD5 algorithm.

        Every implementation of the Java platform is required to support this standard Mac algorithm.

        Parameters:
        key - They key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        See Also:
        Mac.getInstance(String), Mac.init(Key)
      • getHmacSha1

        public static javax.crypto.Mac getHmacSha1​(byte[] key)
        Returns an initialized Mac for the HmacSHA1 algorithm.

        Every implementation of the Java platform is required to support this standard Mac algorithm.

        Parameters:
        key - They key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        See Also:
        Mac.getInstance(String), Mac.init(Key)
      • getHmacSha256

        public static javax.crypto.Mac getHmacSha256​(byte[] key)
        Returns an initialized Mac for the HmacSHA256 algorithm.

        Every implementation of the Java platform is required to support this standard Mac algorithm.

        Parameters:
        key - They key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        See Also:
        Mac.getInstance(String), Mac.init(Key)
      • getHmacSha384

        public static javax.crypto.Mac getHmacSha384​(byte[] key)
        Returns an initialized Mac for the HmacSHA384 algorithm.

        Every implementation of the Java platform is not required to support this Mac algorithm.

        Parameters:
        key - They key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        See Also:
        Mac.getInstance(String), Mac.init(Key)
      • getHmacSha512

        public static javax.crypto.Mac getHmacSha512​(byte[] key)
        Returns an initialized Mac for the HmacSHA512 algorithm.

        Every implementation of the Java platform is not required to support this Mac algorithm.

        Parameters:
        key - They key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        See Also:
        Mac.getInstance(String), Mac.init(Key)
      • getInitializedMac

        public static javax.crypto.Mac getInitializedMac​(HmacAlgorithms algorithm,
                                                         byte[] key)
        Returns an initialized Mac for the given algorithm.
        Parameters:
        algorithm - the name of the algorithm requested. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard algorithm names.
        key - They key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        See Also:
        Mac.getInstance(String), Mac.init(Key)
      • getInitializedMac

        public static javax.crypto.Mac getInitializedMac​(java.lang.String algorithm,
                                                         byte[] key)
        Returns an initialized Mac for the given algorithm.
        Parameters:
        algorithm - the name of the algorithm requested. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard algorithm names.
        key - They key for the keyed digest (must not be null)
        Returns:
        A Mac instance initialized with the given key.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        See Also:
        Mac.getInstance(String), Mac.init(Key)
      • hmacMd5

        public static byte[] hmacMd5​(byte[] key,
                                     byte[] valueToDigest)
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacMD5 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5

        public static byte[] hmacMd5​(byte[] key,
                                     java.io.InputStream valueToDigest)
                              throws java.io.IOException
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacMD5 MAC for the given key and value
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5

        public static byte[] hmacMd5​(java.lang.String key,
                                     java.lang.String valueToDigest)
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacMD5 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        public static java.lang.String hmacMd5Hex​(byte[] key,
                                                  byte[] valueToDigest)
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacMD5 MAC for the given key and value as a hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        public static java.lang.String hmacMd5Hex​(byte[] key,
                                                  java.io.InputStream valueToDigest)
                                           throws java.io.IOException
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacMD5 MAC for the given key and value as a hex string (lowercase)
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        public static java.lang.String hmacMd5Hex​(java.lang.String key,
                                                  java.lang.String valueToDigest)
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacMD5 MAC for the given key and value as a hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        public static byte[] hmacSha1​(byte[] key,
                                      byte[] valueToDigest)
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA1 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        public static byte[] hmacSha1​(byte[] key,
                                      java.io.InputStream valueToDigest)
                               throws java.io.IOException
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA1 MAC for the given key and value
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        public static byte[] hmacSha1​(java.lang.String key,
                                      java.lang.String valueToDigest)
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA1 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        public static java.lang.String hmacSha1Hex​(byte[] key,
                                                   byte[] valueToDigest)
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA1 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        public static java.lang.String hmacSha1Hex​(byte[] key,
                                                   java.io.InputStream valueToDigest)
                                            throws java.io.IOException
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA1 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        public static java.lang.String hmacSha1Hex​(java.lang.String key,
                                                   java.lang.String valueToDigest)
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA1 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        public static byte[] hmacSha256​(byte[] key,
                                        byte[] valueToDigest)
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA256 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        public static byte[] hmacSha256​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.IOException
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA256 MAC for the given key and value
        Throws:
        java.io.IOException - If an I/O error occurs. s * @throws IllegalArgumentException when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        public static byte[] hmacSha256​(java.lang.String key,
                                        java.lang.String valueToDigest)
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA256 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        public static java.lang.String hmacSha256Hex​(byte[] key,
                                                     byte[] valueToDigest)
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA256 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        public static java.lang.String hmacSha256Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.IOException
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA256 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        public static java.lang.String hmacSha256Hex​(java.lang.String key,
                                                     java.lang.String valueToDigest)
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA256 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        public static byte[] hmacSha384​(byte[] key,
                                        byte[] valueToDigest)
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA384 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        public static byte[] hmacSha384​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.IOException
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA384 MAC for the given key and value
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        public static byte[] hmacSha384​(java.lang.String key,
                                        java.lang.String valueToDigest)
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA384 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        public static java.lang.String hmacSha384Hex​(byte[] key,
                                                     byte[] valueToDigest)
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA384 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        public static java.lang.String hmacSha384Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.IOException
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA384 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        public static java.lang.String hmacSha384Hex​(java.lang.String key,
                                                     java.lang.String valueToDigest)
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA384 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        public static byte[] hmacSha512​(byte[] key,
                                        byte[] valueToDigest)
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA512 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        public static byte[] hmacSha512​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.IOException
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA512 MAC for the given key and value
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        public static byte[] hmacSha512​(java.lang.String key,
                                        java.lang.String valueToDigest)
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA512 MAC for the given key and value
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        public static java.lang.String hmacSha512Hex​(byte[] key,
                                                     byte[] valueToDigest)
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA512 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        public static java.lang.String hmacSha512Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.IOException
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest

        The InputStream must not be null and will not be closed

        Returns:
        HmacSHA512 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        public static java.lang.String hmacSha512Hex​(java.lang.String key,
                                                     java.lang.String valueToDigest)
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - They key for the keyed digest (must not be null)
        valueToDigest - The value (data) which should to digest (maybe empty or null)
        Returns:
        HmacSHA512 MAC for the given key and value as hex string (lowercase)
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac,
                                                  byte[] valueToDigest)
        Updates the given Mac. This generates a digest for valueToDigest and the key the Mac was initialized
        Parameters:
        mac - the initialized Mac to update
        valueToDigest - the value to update the Mac with (maybe null or empty)
        Returns:
        the updated Mac
        Throws:
        java.lang.IllegalStateException - if the Mac was not initialized
        Since:
        1.x
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac,
                                                  java.io.InputStream valueToDigest)
                                           throws java.io.IOException
        Updates the given Mac. This generates a digest for valueToDigest and the key the Mac was initialized
        Parameters:
        mac - the initialized Mac to update
        valueToDigest - the value to update the Mac with

        The InputStream must not be null and will not be closed

        Returns:
        the updated Mac
        Throws:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalStateException - If the Mac was not initialized
        Since:
        1.x
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac,
                                                  java.lang.String valueToDigest)
        Updates the given Mac. This generates a digest for valueToDigest and the key the Mac was initialized
        Parameters:
        mac - the initialized Mac to update
        valueToDigest - the value to update the Mac with (maybe null or empty)
        Returns:
        the updated Mac
        Throws:
        java.lang.IllegalStateException - if the Mac was not initialized
        Since:
        1.x