--- a/jdk/test/ProblemList.txt Tue Nov 24 14:46:09 2015 +0530
+++ b/jdk/test/ProblemList.txt Wed Nov 25 09:42:34 2015 +0800
@@ -217,9 +217,6 @@
# jdk_security
-# 8143377
-sun/security/pkcs/pkcs8/PKCS8Test.java solaris-all
-
# 7157786
sun/security/pkcs11/ec/TestKeyFactory.java generic-all
--- a/jdk/test/sun/security/pkcs/pkcs8/PKCS8Test.java Tue Nov 24 14:46:09 2015 +0530
+++ b/jdk/test/sun/security/pkcs/pkcs8/PKCS8Test.java Wed Nov 25 09:42:34 2015 +0800
@@ -25,6 +25,7 @@
* @test
* @bug 8048357
* @summary PKCS8 Standards Conformance Tests
+ * @requires (os.family != "solaris")
* @modules java.base/sun.security.pkcs
* java.base/sun.security.util
* java.base/sun.security.provider
@@ -33,6 +34,11 @@
* @compile -XDignore.symbol.file PKCS8Test.java
* @run main PKCS8Test
*/
+
+/*
+ * Skip Solaris since the DSAPrivateKeys returned by
+ * SunPKCS11 Provider are not subclasses of PKCS8Key
+ */
import java.io.IOException;
import java.math.BigInteger;
import java.security.InvalidKeyException;
@@ -43,7 +49,6 @@
import sun.security.util.DerOutputStream;
import sun.security.util.DerValue;
import sun.security.x509.AlgorithmId;
-
import static java.lang.System.out;
public class PKCS8Test {
@@ -191,7 +196,14 @@
public static void main(String[] args)
throws IOException, InvalidKeyException {
- byte[] encodedKey = getEncodedKey();
+ BigInteger p = BigInteger.valueOf(1);
+ BigInteger q = BigInteger.valueOf(2);
+ BigInteger g = BigInteger.valueOf(3);
+ BigInteger x = BigInteger.valueOf(4);
+
+ DSAPrivateKey priv = new DSAPrivateKey(p, q, g, x);
+
+ byte[] encodedKey = priv.getEncoded();
byte[] expectedBytes = new byte[EXPECTED.length];
for (int i = 0; i < EXPECTED.length; i++) {
expectedBytes[i] = (byte) EXPECTED[i];
@@ -203,6 +215,7 @@
}
PKCS8Key decodedKey = PKCS8Key.parse(new DerValue(encodedKey));
+
String alg = decodedKey.getAlgorithm();
AlgorithmId algId = decodedKey.getAlgorithmId();
out.println("Algorithm :" + alg);
@@ -265,30 +278,10 @@
+ EXCEPTION_MESSAGE + " get: " + e.getMessage());
}
}
-
- }
-
- // get a byte array from somewhere
- static byte[] getEncodedKey() throws InvalidKeyException {
- BigInteger p = BigInteger.valueOf(1);
- BigInteger q = BigInteger.valueOf(2);
- BigInteger g = BigInteger.valueOf(3);
- BigInteger x = BigInteger.valueOf(4);
-
- DSAPrivateKey priv = new DSAPrivateKey(p, q, g, x);
- return priv.getEncoded();
}
static void dumpByteArray(String nm, byte[] bytes) throws IOException {
out.println(nm + " length: " + bytes.length);
hexDump.encodeBuffer(bytes, out);
}
-
- static String toString(PKCS8Key key) {
- StringBuilder builder = new StringBuilder(key.getAlgorithm());
- builder.append('\n').append("parameters:")
- .append(key.getAlgorithmId().toString());
- return builder.toString();
- }
-
}