Add varargs variant to HmacUtil

This commit is contained in:
Ravi Khadiwala 2024-02-26 10:56:14 -06:00 committed by ravi-signal
parent 2adf1e5017
commit 4e5dd914dd
1 changed files with 14 additions and 2 deletions

View File

@ -27,16 +27,28 @@ public final class HmacUtils {
}
});
public static byte[] hmac256(final byte[] key, final byte[] input) {
private static Mac initializedThreadLocalMac(final byte[] key) {
try {
final Mac mac = THREAD_LOCAL_HMAC_SHA_256.get();
mac.init(new SecretKeySpec(key, HMAC_SHA_256));
return mac.doFinal(input);
return mac;
} catch (final InvalidKeyException e) {
throw new RuntimeException(e);
}
}
public static byte[] hmac256(final byte[] key, final byte[] input) {
return initializedThreadLocalMac(key).doFinal(input);
}
public static byte[] hmac256(final byte[] key, final byte[]... inputs) {
final Mac mac = initializedThreadLocalMac(key);
for (byte[] input : inputs) {
mac.update(input);
}
return mac.doFinal();
}
public static byte[] hmac256(final byte[] key, final String input) {
return hmac256(key, input.getBytes(StandardCharsets.UTF_8));
}