| 270 | } |
| 271 | |
| 272 | private static byte[] hmacRaw(String hsName, String data, Object secret) { |
| 273 | // hsName = HS256/HS384/HS512 |
| 274 | String jce = switch (hsName) { |
| 275 | case "HS256" -> "HmacSHA256"; |
| 276 | case "HS384" -> "HmacSHA384"; |
| 277 | case "HS512" -> "HmacSHA512"; |
| 278 | default -> throw new IllegalArgumentException("Unsupported HS algorithm: " + hsName); |
| 279 | }; |
| 280 | return hmac(jce, toUtf8(data), (secret instanceof String) ? toUtf8(secret) : (byte[]) secret); |
| 281 | } |
| 282 | |
| 283 | // ==================================================== |
| 284 | // Raw sign helpers |