Removed hard coded key size to key sizes that match HMAC algorithms
parent
7abe5c31d1
commit
e8c10e404f
|
@ -74,6 +74,24 @@ public class CryptoBenchmark {
|
||||||
return new byte[size];
|
return new byte[size];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int getHmacKeySize(String algorithm) {
|
||||||
|
// Key sizes in bytes based on hash block sizes
|
||||||
|
switch (algorithm) {
|
||||||
|
case "HmacMD5":
|
||||||
|
return 64;
|
||||||
|
case "HmacSHA1":
|
||||||
|
return 64;
|
||||||
|
case "HmacSHA256":
|
||||||
|
return 64;
|
||||||
|
case "HmacSHA384":
|
||||||
|
return 128;
|
||||||
|
case "HmacSHA512":
|
||||||
|
return 128;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Unsupported HMAC algorithm: " + algorithm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void printProviderInfo(Provider provider) {
|
private static void printProviderInfo(Provider provider) {
|
||||||
System.out.printf("%s version: %.1f%n", provider.getName(), provider.getVersion());
|
System.out.printf("%s version: %.1f%n", provider.getName(), provider.getVersion());
|
||||||
}
|
}
|
||||||
|
@ -421,9 +439,10 @@ public class CryptoBenchmark {
|
||||||
/* Initialize Mac with specific provider */
|
/* Initialize Mac with specific provider */
|
||||||
mac = Mac.getInstance(algorithm, providerName);
|
mac = Mac.getInstance(algorithm, providerName);
|
||||||
|
|
||||||
/* Initialize Mac with a random key */
|
/* Initialize Mac with a random key of appropriate length */
|
||||||
SecureRandom secureRandom = new SecureRandom();
|
SecureRandom secureRandom = new SecureRandom();
|
||||||
byte[] keyBytes = new byte[64];
|
int keySize = getHmacKeySize(algorithm);
|
||||||
|
byte[] keyBytes = new byte[keySize];
|
||||||
secureRandom.nextBytes(keyBytes);
|
secureRandom.nextBytes(keyBytes);
|
||||||
SecretKeySpec key = new SecretKeySpec(keyBytes, algorithm);
|
SecretKeySpec key = new SecretKeySpec(keyBytes, algorithm);
|
||||||
mac.init(key);
|
mac.init(key);
|
||||||
|
|
Loading…
Reference in New Issue