32 import java.security.Key;
33 import java.security.KeyFactory;
34 import java.security.KeyPair;
35 import java.security.KeyPairGenerator;
36 import java.security.NoSuchAlgorithmException;
37 import java.security.NoSuchProviderException;
38 import java.security.PrivateKey;
39 import java.security.PublicKey;
40 import java.security.SecureRandom;
41 import java.security.Signature;
42 import java.security.interfaces.EdECPrivateKey;
43 import java.security.interfaces.EdECPublicKey;
44 import java.security.spec.PKCS8EncodedKeySpec;
45 import java.security.spec.X509EncodedKeySpec;
46 import java.security.spec.EdECPrivateKeySpec;
47 import java.security.spec.EdECPublicKeySpec;
48 import java.security.spec.InvalidKeySpecException;
49 import java.security.spec.NamedParameterSpec;
50 import java.security.spec.EdDSAParameterSpec;
51 import java.util.Arrays;
52 import jdk.test.lib.Convert;
53
54 /*
55 * @test
56 * @bug 8209632
57 * @summary Test Signature with variation of serialized EDDSA Keys.
58 * @library /test/lib
59 * @build jdk.test.lib.Convert
60 * @run main EdDSATest
61 */
62 public class EdDSATest {
63
64 private static final String EDDSA = "EdDSA";
65 private static final String ED25519 = "Ed25519";
66 private static final String ED448 = "Ed448";
67 private static final String OIDN25519 = "1.3.101.112";
68 private static final String OID25519 = "OID.1.3.101.112";
69 private static final String OIDN448 = "1.3.101.113";
70 private static final String OID448 = "OID.1.3.101.113";
71 private static final String PROVIDER = "SunEC";
72 private static final byte[] MSG = "TEST".getBytes();
332 private static <T extends Object> byte[] serialize(T key)
333 throws IOException {
334
335 try (ByteArrayOutputStream bos = new ByteArrayOutputStream();
336 ObjectOutputStream oos = new ObjectOutputStream(bos)) {
337 oos.writeObject(key);
338 return bos.toByteArray();
339 }
340 }
341
342 private static void equals(Object actual, Object expected) {
343 if (!actual.equals(expected)) {
344 throw new RuntimeException(String.format("Actual: %s, Expected: %s",
345 actual, expected));
346 }
347 }
348
349 private static void equals(byte[] actual, byte[] expected) {
350 if (!Arrays.equals(actual, expected)) {
351 throw new RuntimeException(String.format("Actual array: %s, "
352 + "Expected array:%s", Convert.byteArrayToHexString(actual),
353 Convert.byteArrayToHexString(expected)));
354 }
355 }
356 }
|
32 import java.security.Key;
33 import java.security.KeyFactory;
34 import java.security.KeyPair;
35 import java.security.KeyPairGenerator;
36 import java.security.NoSuchAlgorithmException;
37 import java.security.NoSuchProviderException;
38 import java.security.PrivateKey;
39 import java.security.PublicKey;
40 import java.security.SecureRandom;
41 import java.security.Signature;
42 import java.security.interfaces.EdECPrivateKey;
43 import java.security.interfaces.EdECPublicKey;
44 import java.security.spec.PKCS8EncodedKeySpec;
45 import java.security.spec.X509EncodedKeySpec;
46 import java.security.spec.EdECPrivateKeySpec;
47 import java.security.spec.EdECPublicKeySpec;
48 import java.security.spec.InvalidKeySpecException;
49 import java.security.spec.NamedParameterSpec;
50 import java.security.spec.EdDSAParameterSpec;
51 import java.util.Arrays;
52 import java.util.Hex;
53
54 /*
55 * @test
56 * @bug 8209632
57 * @summary Test Signature with variation of serialized EDDSA Keys.
58 * @library /test/lib
59 * @build jdk.test.lib.Convert
60 * @run main EdDSATest
61 */
62 public class EdDSATest {
63
64 private static final String EDDSA = "EdDSA";
65 private static final String ED25519 = "Ed25519";
66 private static final String ED448 = "Ed448";
67 private static final String OIDN25519 = "1.3.101.112";
68 private static final String OID25519 = "OID.1.3.101.112";
69 private static final String OIDN448 = "1.3.101.113";
70 private static final String OID448 = "OID.1.3.101.113";
71 private static final String PROVIDER = "SunEC";
72 private static final byte[] MSG = "TEST".getBytes();
332 private static <T extends Object> byte[] serialize(T key)
333 throws IOException {
334
335 try (ByteArrayOutputStream bos = new ByteArrayOutputStream();
336 ObjectOutputStream oos = new ObjectOutputStream(bos)) {
337 oos.writeObject(key);
338 return bos.toByteArray();
339 }
340 }
341
342 private static void equals(Object actual, Object expected) {
343 if (!actual.equals(expected)) {
344 throw new RuntimeException(String.format("Actual: %s, Expected: %s",
345 actual, expected));
346 }
347 }
348
349 private static void equals(byte[] actual, byte[] expected) {
350 if (!Arrays.equals(actual, expected)) {
351 throw new RuntimeException(String.format("Actual array: %s, "
352 + "Expected array:%s", Hex.encoder().encode(actual),
353 Hex.encoder().encode(expected)));
354 }
355 }
356 }
|