8190449: sun/security/pkcs11/KeyPairGenerator/TestDH2048.java fails on Solaris x64 5.10
Reviewed-by: igerasim
diff --git a/jdk/test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java b/jdk/test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java
index dda3ce0..1c27fd9 100644
--- a/jdk/test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java
+++ b/jdk/test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java
@@ -56,35 +56,21 @@
kpg.initialize(512);
KeyPair kp1 = kpg.generateKeyPair();
- kpg.initialize(768);
- kp1 = kpg.generateKeyPair();
-
- kpg.initialize(1024);
- kp1 = kpg.generateKeyPair();
-
- kpg.initialize(1536);
- kp1 = kpg.generateKeyPair();
-
- kpg.initialize(2048);
- kp1 = kpg.generateKeyPair();
-
+ int[] test_values = {768, 1024, 1536, 2048, 3072, 4096, 6144, 8192};
+ for (int i : test_values)
try {
- kpg.initialize(3072);
- kp1 = kpg.generateKeyPair();
-
- kpg.initialize(4096);
- kp1 = kpg.generateKeyPair();
-
- kpg.initialize(6144);
- kp1 = kpg.generateKeyPair();
-
- kpg.initialize(8192);
+ kpg.initialize(i);
kp1 = kpg.generateKeyPair();
} catch (InvalidParameterException ipe) {
// NSS (as of version 3.13) has a hard coded maximum limit
// of 2236 or 3072 bits for DHE keys.
- System.out.println("4096-bit DH key pair generation: " + ipe);
- if (!p.getName().equals("SunPKCS11-NSS")) {
+ // SunPKCS11-Solaris has limit of 4096 on older systems
+ String prov = p.getName();
+ System.out.println(i + "-bit DH key pair generation: " + ipe);
+ if ((prov.equals("SunPKCS11-NSS") && i > 2048) ||
+ (prov.equals("SunPKCS11-Solaris") && i > 4096)) {
+ // OK
+ } else {
throw ipe;
}
}