< prev index next >
test/sun/security/pkcs/pkcs8/PKCS8Test.java
Print this page
*** 41,51 ****
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();
--- 41,50 ----
*** 189,210 ****
}
public static void main(String[] args)
throws IOException, InvalidKeyException {
! byte[] encodedKey = getEncodedKey();
byte[] expectedBytes = new byte[EXPECTED.length];
for (int i = 0; i < EXPECTED.length; i++) {
expectedBytes[i] = (byte) EXPECTED[i];
}
dumpByteArray("encodedKey :", encodedKey);
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);
--- 188,220 ----
}
public static void main(String[] args)
throws IOException, 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);
!
! byte[] encodedKey = priv.getEncoded();
byte[] expectedBytes = new byte[EXPECTED.length];
for (int i = 0; i < EXPECTED.length; i++) {
expectedBytes[i] = (byte) EXPECTED[i];
}
dumpByteArray("encodedKey :", encodedKey);
if (!Arrays.equals(encodedKey, expectedBytes)) {
raiseException(new String(expectedBytes), new String(encodedKey));
}
+ // skip Solaris since the DSAPrivateKeys returned by SunPKCS11 Provider
+ // are not a subclasses of PKCS8Key
+ if (!System.getProperty("os.name").equalsIgnoreCase("sunos")) {
PKCS8Key decodedKey = PKCS8Key.parse(new DerValue(encodedKey));
+
String alg = decodedKey.getAlgorithm();
AlgorithmId algId = decodedKey.getAlgorithmId();
out.println("Algorithm :" + alg);
out.println("AlgorithmId: " + algId);
*** 240,250 ****
.parse(new DerValue(newEncodedKey));
throw new RuntimeException(
"key1: Expected an IOException during " + "parsing");
} catch (IOException e) {
! System.out.println("newEncodedKey: should have excess data due to "
+ "attributes, which are not supported");
}
try {
byte[] newEncodedKey2 = new byte[NEW_ENCODED_KEY_INTS_2.length];
--- 250,261 ----
.parse(new DerValue(newEncodedKey));
throw new RuntimeException(
"key1: Expected an IOException during " + "parsing");
} catch (IOException e) {
! System.out.println(
! "newEncodedKey: should have excess data due to "
+ "attributes, which are not supported");
}
try {
byte[] newEncodedKey2 = new byte[NEW_ENCODED_KEY_INTS_2.length];
*** 263,294 ****
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();
- }
-
}
--- 274,287 ----
< prev index next >