< prev index next >
test/sun/security/pkcs/pkcs8/PKCS8Test.java
Print this page
@@ -23,24 +23,29 @@
/*
* @test
* @bug 8048357
* @summary PKCS8 Standards Conformance Tests
+ * @requires (os.family != "solaris")
* @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;
import java.util.Arrays;
import sun.misc.HexDumpEncoder;
import sun.security.pkcs.PKCS8Key;
import sun.security.provider.DSAPrivateKey;
import sun.security.util.DerOutputStream;
import sun.security.util.DerValue;
import sun.security.x509.AlgorithmId;
-
import static java.lang.System.out;
public class PKCS8Test {
static final HexDumpEncoder hexDump = new HexDumpEncoder();
@@ -184,11 +189,18 @@
}
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];
}
@@ -196,10 +208,11 @@
if (!Arrays.equals(encodedKey, expectedBytes)) {
raiseException(new String(expectedBytes), new String(encodedKey));
}
PKCS8Key decodedKey = PKCS8Key.parse(new DerValue(encodedKey));
+
String alg = decodedKey.getAlgorithm();
AlgorithmId algId = decodedKey.getAlgorithmId();
out.println("Algorithm :" + alg);
out.println("AlgorithmId: " + algId);
@@ -258,32 +271,12 @@
if (!EXCEPTION_MESSAGE.equals(e.getMessage())) {
throw new RuntimeException("Key2: expected: "
+ 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();
- }
-
}
< prev index next >