Class HmacUtils


  • public final class HmacUtils
    extends java.lang.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​(java.lang.String algorithm, byte[] key)
      Creates an instance using the provided algorithm type.
      HmacUtils​(java.lang.String algorithm, java.lang.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, java.lang.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 javax.crypto.Mac getHmacMd5​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_MD5, byte[]).
      static javax.crypto.Mac getHmacSha1​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_1, byte[]).
      static javax.crypto.Mac getHmacSha256​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_256, byte[]).
      static javax.crypto.Mac getHmacSha384​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_384, byte[]).
      static javax.crypto.Mac getHmacSha512​(byte[] key)
      Deprecated.
      (1.11) Use getInitializedMac(HmacAlgorithms.HMAC_SHA_512, byte[]).
      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.
      byte[] hmac​(byte[] valueToDigest)
      Returns the digest for the input data.
      byte[] hmac​(java.io.File valueToDigest)
      Returns the digest for the file.
      byte[] hmac​(java.io.InputStream valueToDigest)
      Returns the digest for the stream.
      byte[] hmac​(java.lang.String valueToDigest)
      Returns the digest for the input data.
      byte[] hmac​(java.nio.ByteBuffer valueToDigest)
      Returns the digest for the input data.
      byte[] hmac​(java.nio.file.Path valueToDigest)
      Returns the digest for the file.
      java.lang.String hmacHex​(byte[] valueToDigest)
      Returns the digest for the input data.
      java.lang.String hmacHex​(java.io.File valueToDigest)
      Returns the digest for the file.
      java.lang.String hmacHex​(java.io.InputStream valueToDigest)
      Returns the digest for the stream.
      java.lang.String hmacHex​(java.lang.String valueToDigest)
      Returns the digest for the input data.
      java.lang.String hmacHex​(java.nio.ByteBuffer valueToDigest)
      Returns the digest for the input data.
      java.lang.String hmacHex​(java.nio.file.Path valueToDigest)
      Returns the digest for the path.
      static byte[] hmacMd5​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(byte[]).
      static byte[] hmacMd5​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmac(InputStream).
      static byte[] hmacMd5​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, String).hmac(String).
      static java.lang.String hmacMd5Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(byte[]).
      static java.lang.String hmacMd5Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(InputStream).
      static java.lang.String hmacMd5Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmac(InputStream).
      static byte[] hmacSha1​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, String).hmac(String).
      static java.lang.String hmacSha1Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(byte[])
      static java.lang.String hmacSha1Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(InputStream).
      static java.lang.String hmacSha1Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmac(InputStream).
      static byte[] hmacSha256​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, String).hmac(String).
      static java.lang.String hmacSha256Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(byte[]).
      static java.lang.String hmacSha256Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(InputStream).
      static java.lang.String hmacSha256Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmac(InputStream).
      static byte[] hmacSha384​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, String).hmac(String).
      static java.lang.String hmacSha384Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(byte[]).
      static java.lang.String hmacSha384Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(InputStream).
      static java.lang.String hmacSha384Hex​(java.lang.String key, java.lang.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, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmac(InputStream).
      static byte[] hmacSha512​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmac(String).
      static java.lang.String hmacSha512Hex​(byte[] key, byte[] valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(byte[]).
      static java.lang.String hmacSha512Hex​(byte[] key, java.io.InputStream valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(InputStream).
      static java.lang.String hmacSha512Hex​(java.lang.String key, java.lang.String valueToDigest)
      Deprecated.
      (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmacHex(String).
      static boolean isAvailable​(java.lang.String name)
      Tests whether this algorithm is available
      static boolean isAvailable​(HmacAlgorithms hmacAlgorithms)
      Tests whether this algorithm is available
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, byte[] valueToDigest)
      Resets and then updates the given Mac with the value.
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, java.io.InputStream valueToDigest)
      Resets and then updates the given Mac with the value.
      static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac, java.lang.String valueToDigest)
      Resets and then updates the given Mac with the value.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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​(HmacAlgorithms algorithm,
                         byte[] key)
        Creates an instance using the provided algorithm type.
        Parameters:
        algorithm - to use.
        key - the key to use.
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
        Since:
        1.11
      • HmacUtils

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

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

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

      • getHmacMd5

        @Deprecated
        public static javax.crypto.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:
        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

        @Deprecated
        public static javax.crypto.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:
        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

        @Deprecated
        public static javax.crypto.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:
        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

        @Deprecated
        public static javax.crypto.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:
        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

        @Deprecated
        public static javax.crypto.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:
        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 - The 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 - The 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

        @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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5

        @Deprecated
        public static byte[] hmacMd5​(byte[] key,
                                     java.io.InputStream valueToDigest)
                              throws java.io.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:
        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

        @Deprecated
        public static byte[] hmacMd5​(java.lang.String key,
                                     java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static java.lang.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 hexadecimal 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 hexadecimal string (lowercase).
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacMd5Hex

        @Deprecated
        public static java.lang.String hmacMd5Hex​(byte[] key,
                                                  java.io.InputStream valueToDigest)
                                           throws java.io.IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_MD5, byte[]).hmacHex(InputStream).
        Returns a HmacMD5 Message Authentication Code (MAC) as a hexadecimal 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 hexadecimal 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

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

        @Deprecated
        public static byte[] hmacSha1​(byte[] key,
                                      java.io.InputStream valueToDigest)
                               throws java.io.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:
        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

        @Deprecated
        public static byte[] hmacSha1​(java.lang.String key,
                                      java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static java.lang.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 hexadecimal 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 hexadecimal string (lowercase).
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha1Hex

        @Deprecated
        public static java.lang.String hmacSha1Hex​(byte[] key,
                                                   java.io.InputStream valueToDigest)
                                            throws java.io.IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_1, byte[]).hmacHex(InputStream).
        Returns a HmacSHA1 Message Authentication Code (MAC) as hexadecimal 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 hexadecimal 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

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

        @Deprecated
        public static byte[] hmacSha256​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.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:
        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.
      • hmacSha256

        @Deprecated
        public static byte[] hmacSha256​(java.lang.String key,
                                        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static java.lang.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 hexadecimal 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 hexadecimal string (lowercase).
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha256Hex

        @Deprecated
        public static java.lang.String hmacSha256Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_256, byte[]).hmacHex(InputStream).
        Returns a HmacSHA256 Message Authentication Code (MAC) as hexadecimal 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 hexadecimal 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

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

        @Deprecated
        public static byte[] hmacSha384​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.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:
        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

        @Deprecated
        public static byte[] hmacSha384​(java.lang.String key,
                                        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static java.lang.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 hexadecimal 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 hexadecimal string (lowercase).
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha384Hex

        @Deprecated
        public static java.lang.String hmacSha384Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_384, byte[]).hmacHex(InputStream).
        Returns a HmacSHA384 Message Authentication Code (MAC) as hexadecimal 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 hexadecimal 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

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

        @Deprecated
        public static byte[] hmacSha512​(byte[] key,
                                        java.io.InputStream valueToDigest)
                                 throws java.io.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:
        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

        @Deprecated
        public static byte[] hmacSha512​(java.lang.String key,
                                        java.lang.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:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static java.lang.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 hexadecimal 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 hexadecimal string (lowercase).
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • hmacSha512Hex

        @Deprecated
        public static java.lang.String hmacSha512Hex​(byte[] key,
                                                     java.io.InputStream valueToDigest)
                                              throws java.io.IOException
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, byte[]).hmacHex(InputStream).
        Returns a HmacSHA512 Message Authentication Code (MAC) as hexadecimal 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 hexadecimal 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

        @Deprecated
        public static java.lang.String hmacSha512Hex​(java.lang.String key,
                                                     java.lang.String valueToDigest)
        Deprecated.
        (1.11) Use new HmacUtils(HmacAlgorithms.HMAC_SHA_512, String).hmacHex(String).
        Returns a HmacSHA512 Message Authentication Code (MAC) as hexadecimal 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 hexadecimal string (lowercase).
        Throws:
        java.lang.IllegalArgumentException - when a NoSuchAlgorithmException is caught or key is null or key is invalid.
      • isAvailable

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

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

        public static javax.crypto.Mac updateHmac​(javax.crypto.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:
        java.lang.IllegalStateException - if the Mac was not initialized.
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac,
                                                  java.io.InputStream valueToDigest)
                                           throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        java.lang.IllegalStateException - If the Mac was not initialized.
      • updateHmac

        public static javax.crypto.Mac updateHmac​(javax.crypto.Mac mac,
                                                  java.lang.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:
        java.lang.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
      • hmac

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

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

        public byte[] hmac​(java.io.InputStream valueToDigest)
                    throws java.io.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:
        java.io.IOException - If an I/O error occurs.
        Since:
        1.11
      • hmac

        public byte[] hmac​(java.nio.file.Path valueToDigest)
                    throws java.io.IOException
        Returns the digest for the file.
        Parameters:
        valueToDigest - the path to use.
        Returns:
        the digest.
        Throws:
        java.io.IOException - If an I/O error occurs.
        Since:
        1.19.0
      • hmac

        public byte[] hmac​(java.lang.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 java.lang.String hmacHex​(byte[] valueToDigest)
        Returns the digest for the input data.
        Parameters:
        valueToDigest - the input to use.
        Returns:
        the digest as a hexadecimal String.
        Since:
        1.11
      • hmacHex

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

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

        public java.lang.String hmacHex​(java.io.InputStream valueToDigest)
                                 throws java.io.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 hexadecimal String.
        Throws:
        java.io.IOException - If an I/O error occurs.
        Since:
        1.11
      • hmacHex

        public java.lang.String hmacHex​(java.nio.file.Path valueToDigest)
                                 throws java.io.IOException
        Returns the digest for the path.
        Parameters:
        valueToDigest - the path to use.
        Returns:
        the digest as a hexadecimal String.
        Throws:
        java.io.IOException - If an I/O error occurs.
        Since:
        1.19.0
      • hmacHex

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