Class HmacUtils


  • public final class HmacUtils
    extends Object
    Simplifies common Mac tasks. This class is immutable and thread-safe. However the Mac may not be.

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

    Sample usage:

     import static HmacAlgorithms.*;
     byte[] key = {1,2,3,4}; // don't use this actual key!
     String valueToDigest = "The quick brown fox jumps over the lazy dog";
     byte[] hmac = new HmacUtils(HMAC_SHA_224, key).hmac(valueToDigest);
     // Mac re-use
     HmacUtils hm1 = new HmacUtils("HmacAlgoName", key); // use a valid name here!
     String hexPom = hm1.hmacHex(new File("pom.xml"));
     String hexNot = hm1.hmacHex(new File("NOTICE.txt"));
     
    Since:
    1.10
    • Constructor Summary

      Constructors 
      Constructor Description
      HmacUtils()
      Deprecated.
      since 1.11; only useful to preserve binary compatibility
      HmacUtils​(String algorithm, byte[] key)
      Creates an instance using the provided algorithm type.
      HmacUtils​(String algorithm, String key)
      Creates an instance using the provided algorithm type.
      HmacUtils​(HmacAlgorithms algorithm, byte[] key)
      Creates an instance using the provided algorithm type.
      HmacUtils​(HmacAlgorithms algorithm, String key)
      Creates an instance using the provided algorithm type.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static Mac getHmacMd5​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_MD5, byte[])
      static Mac getHmacSha1​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_1, byte[])
      static Mac getHmacSha256​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_256, byte[])
      static Mac getHmacSha384​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_384, byte[])
      static Mac getHmacSha512​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_512, byte[])
      static Mac getInitializedMac​(String algorithm, byte[] key)
      Returns an initialized Mac for the given algorithm.
      static Mac getInitializedMac​(HmacAlgorithms algorithm, byte[] key)
      Returns an initialized Mac for the given algorithm.
      byte[] hmac​(byte[] valueToDigest)
      Returns the digest for the input data.
      byte[] hmac​(File valueToDigest)
      Returns the digest for the file.
      byte[] hmac​(InputStream valueToDigest)
      Returns the digest for the stream.
      byte[] hmac​(String valueToDigest)
      Returns the digest for the input data.
      byte[] hmac​(ByteBuffer valueToDigest)
      Returns the digest for the input data.
      String hmacHex​(byte[] valueToDigest)
      Returns the digest for the input data.
      String hmacHex​(File valueToDigest)
      Returns the digest for the file.
      String hmacHex​(InputStream valueToDigest)
      Returns the digest for the stream.
      String hmacHex​(String valueToDigest)
      Returns the digest for the input data.
      String hmacHex​(ByteBuffer valueToDigest)
      Returns the digest for the input data.
      static byte[] hmacMd5​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(byte[])
      static byte[] hmacMd5​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(InputStream)
      static byte[] hmacMd5​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmac(String)
      static String hmacMd5Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(byte[])
      static String hmacMd5Hex​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(InputStream)
      static String hmacMd5Hex​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmacHex(String)
      static byte[] hmacSha1​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(byte[])
      static byte[] hmacSha1​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(InputStream)
      static byte[] hmacSha1​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmac(String)
      static String hmacSha1Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(byte[])
      static String hmacSha1Hex​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(InputStream)
      static String hmacSha1Hex​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmacHex(String)
      static byte[] hmacSha256​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(byte[])
      static byte[] hmacSha256​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(InputStream)
      static byte[] hmacSha256​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmac(String)
      static String hmacSha256Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(byte[])
      static String hmacSha256Hex​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(InputStream)
      static String hmacSha256Hex​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmacHex(String)
      static byte[] hmacSha384​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(byte[])
      static byte[] hmacSha384​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(InputStream)
      static byte[] hmacSha384​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmac(String)
      static String hmacSha384Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(byte[])
      static String hmacSha384Hex​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(InputStream)
      static String hmacSha384Hex​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmacHex(String)
      static byte[] hmacSha512​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(byte[])
      static byte[] hmacSha512​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(InputStream)
      static byte[] hmacSha512​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmac(String)
      static String hmacSha512Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(byte[])
      static String hmacSha512Hex​(byte[] key, InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(InputStream)
      static String hmacSha512Hex​(String key, String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmacHex(String)
      static boolean isAvailable​(String name)
      Returns whether this algorithm is available
      static boolean isAvailable​(HmacAlgorithms name)
      Returns whether this algorithm is available
      static Mac updateHmac​(Mac mac, byte[] valueToDigest)
      Resets and then updates the given Mac with the value.
      static Mac updateHmac​(Mac mac, InputStream valueToDigest)
      Resets and then updates the given Mac with the value.
      static Mac updateHmac​(Mac mac, String valueToDigest)
      Resets and then updates the given Mac with the value.
    • Constructor Detail

      • HmacUtils

        @Deprecated
        public HmacUtils()
        Deprecated.
        since 1.11; only useful to preserve binary compatibility
        Preserves binary compatibility only. As for previous versions does not provide useful behavior
      • HmacUtils

        public HmacUtils​(String algorithm,
                         byte[] key)
        Creates an instance using the provided algorithm type.
        Parameters:
        algorithm - to use
        key - the key to use
        Throws:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        Since:
        1.11
    • Method Detail

      • isAvailable

        public static boolean isAvailable​(String name)
        Returns whether this algorithm is available
        Parameters:
        name - the name to check
        Returns:
        whether this algorithm is available
        Since:
        1.11
      • isAvailable

        public static boolean isAvailable​(HmacAlgorithms name)
        Returns whether this algorithm is available
        Parameters:
        name - the name to check
        Returns:
        whether this algorithm is available
        Since:
        1.11
      • getHmacMd5

        @Deprecated
        public static Mac getHmacMd5​(byte[] key)
        Deprecated.
        (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_MD5, byte[])
        Returns an initialized Mac for the HmacMD5 algorithm.

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

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

        @Deprecated
        public static Mac getHmacSha1​(byte[] key)
        Deprecated.
        (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_1, byte[])
        Returns an initialized Mac for the HmacSHA1 algorithm.

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

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

        @Deprecated
        public static Mac getHmacSha256​(byte[] key)
        Deprecated.
        (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_256, byte[])
        Returns an initialized Mac for the HmacSHA256 algorithm.

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

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

        @Deprecated
        public static Mac getHmacSha384​(byte[] key)
        Deprecated.
        (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_384, byte[])
        Returns an initialized Mac for the HmacSHA384 algorithm.

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

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

        @Deprecated
        public static Mac getHmacSha512​(byte[] key)
        Deprecated.
        (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_512, byte[])
        Returns an initialized Mac for the HmacSHA512 algorithm.

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

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

        @Deprecated
        public static byte[] hmacMd5​(byte[] key,
                                     byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(byte[])
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5

        @Deprecated
        public static byte[] hmacMd5​(byte[] key,
                                     InputStream valueToDigest)
                              throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(InputStream)
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5

        @Deprecated
        public static byte[] hmacMd5​(String key,
                                     String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmac(String)
        Returns a HmacMD5 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static String hmacMd5Hex​(byte[] key,
                                        byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(byte[])
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static String hmacMd5Hex​(byte[] key,
                                        InputStream valueToDigest)
                                 throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(InputStream)
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static String hmacMd5Hex​(String key,
                                        String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmacHex(String)
        Returns a HmacMD5 Message Authentication Code (MAC) as a hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        @Deprecated
        public static byte[] hmacSha1​(byte[] key,
                                      byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(byte[])
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        @Deprecated
        public static byte[] hmacSha1​(byte[] key,
                                      InputStream valueToDigest)
                               throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(InputStream)
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1

        @Deprecated
        public static byte[] hmacSha1​(String key,
                                      String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmac(String)
        Returns a HmacSHA1 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static String hmacSha1Hex​(byte[] key,
                                         byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(byte[])
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static String hmacSha1Hex​(byte[] key,
                                         InputStream valueToDigest)
                                  throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(InputStream)
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static String hmacSha1Hex​(String key,
                                         String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmacHex(String)
        Returns a HmacSHA1 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        @Deprecated
        public static byte[] hmacSha256​(byte[] key,
                                        byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(byte[])
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        @Deprecated
        public static byte[] hmacSha256​(byte[] key,
                                        InputStream valueToDigest)
                                 throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(InputStream)
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256

        @Deprecated
        public static byte[] hmacSha256​(String key,
                                        String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmac(String)
        Returns a HmacSHA256 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static String hmacSha256Hex​(byte[] key,
                                           byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(byte[])
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static String hmacSha256Hex​(byte[] key,
                                           InputStream valueToDigest)
                                    throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(InputStream)
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static String hmacSha256Hex​(String key,
                                           String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmacHex(String)
        Returns a HmacSHA256 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        @Deprecated
        public static byte[] hmacSha384​(byte[] key,
                                        byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(byte[])
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        @Deprecated
        public static byte[] hmacSha384​(byte[] key,
                                        InputStream valueToDigest)
                                 throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(InputStream)
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384

        @Deprecated
        public static byte[] hmacSha384​(String key,
                                        String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmac(String)
        Returns a HmacSHA384 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static String hmacSha384Hex​(byte[] key,
                                           byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(byte[])
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static String hmacSha384Hex​(byte[] key,
                                           InputStream valueToDigest)
                                    throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(InputStream)
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static String hmacSha384Hex​(String key,
                                           String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmacHex(String)
        Returns a HmacSHA384 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        @Deprecated
        public static byte[] hmacSha512​(byte[] key,
                                        byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(byte[])
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        @Deprecated
        public static byte[] hmacSha512​(byte[] key,
                                        InputStream valueToDigest)
                                 throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(InputStream)
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512

        @Deprecated
        public static byte[] hmacSha512​(String key,
                                        String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmac(String)
        Returns a HmacSHA512 Message Authentication Code (MAC) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static String hmacSha512Hex​(byte[] key,
                                           byte[] valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(byte[])
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static String hmacSha512Hex​(byte[] key,
                                           InputStream valueToDigest)
                                    throws IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(InputStream)
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IOException - If an I/O error occurs.
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static String hmacSha512Hex​(String key,
                                           String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmacHex(String)
        Returns a HmacSHA512 Message Authentication Code (MAC) as hex string (lowercase) for the given key and value.
        Parameters:
        key - The 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:
        IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • updateHmac

        public static Mac updateHmac​(Mac mac,
                                     byte[] valueToDigest)
        Resets and then updates the given Mac with the value.
        Parameters:
        mac - the initialized Mac to update
        valueToDigest - the value to update the Mac with (maybe null or empty)
        Returns:
        the updated Mac
        Throws:
        IllegalStateException - if the Mac was not initialized
      • updateHmac

        public static Mac updateHmac​(Mac mac,
                                     InputStream valueToDigest)
                              throws IOException
        Resets and then updates the given Mac with the value.
        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:
        IOException - If an I/O error occurs.
        IllegalStateException - If the Mac was not initialized
      • updateHmac

        public static Mac updateHmac​(Mac mac,
                                     String valueToDigest)
        Resets and then updates the given Mac with the value.
        Parameters:
        mac - the initialized Mac to update
        valueToDigest - the value to update the Mac with (maybe null or empty)
        Returns:
        the updated Mac
        Throws:
        IllegalStateException - if the Mac was not initialized
      • hmac

        public byte[] hmac​(byte[] valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a byte[]
        Since:
        1.11
      • hmacHex

        public String hmacHex​(byte[] valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a hex String
        Since:
        1.11
      • hmac

        public byte[] hmac​(String valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use, treated as UTF-8
        Returns:
        the digest as a byte[]
        Since:
        1.11
      • hmacHex

        public String hmacHex​(String valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use, treated as UTF-8
        Returns:
        the digest as a hex String
        Since:
        1.11
      • hmac

        public byte[] hmac​(ByteBuffer valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a byte[]
        Since:
        1.11
      • hmacHex

        public String hmacHex​(ByteBuffer valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use
        Returns:
        the digest as a hex String
        Since:
        1.11
      • hmac

        public byte[] hmac​(InputStream valueToDigest)
                    throws IOException
        Returns the digest for the stream.
        Parameters:
        valueToDigest - the data to use

        The InputStream must not be null and will not be closed

        Returns:
        the digest
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11
      • hmacHex

        public String hmacHex​(InputStream valueToDigest)
                       throws IOException
        Returns the digest for the stream.
        Parameters:
        valueToDigest - the data to use

        The InputStream must not be null and will not be closed

        Returns:
        the digest as a hex String
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11
      • hmac

        public byte[] hmac​(File valueToDigest)
                    throws IOException
        Returns the digest for the file.
        Parameters:
        valueToDigest - the file to use
        Returns:
        the digest
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11
      • hmacHex

        public String hmacHex​(File valueToDigest)
                       throws IOException
        Returns the digest for the file.
        Parameters:
        valueToDigest - the file to use
        Returns:
        the digest as a hex String
        Throws:
        IOException - If an I/O error occurs.
        Since:
        1.11