< prev index next >

test/jdk/sun/security/ec/xec/TestXDH.java

Print this page

        

*** 21,31 **** * questions. */ /* * @test ! * @bug 8171277 * @summary Test XDH key agreement * @library /test/lib * @build jdk.test.lib.Convert * @run main TestXDH */ --- 21,31 ---- * questions. */ /* * @test ! * @bug 8171277 8206915 * @summary Test XDH key agreement * @library /test/lib * @build jdk.test.lib.Convert * @run main TestXDH */
*** 64,82 **** private static void runBasicTest(String name, Object param) throws Exception { KeyPairGenerator kpg = KeyPairGenerator.getInstance(name); if (param instanceof Integer) { kpg.initialize((Integer) param); } else if (param instanceof String) { ! kpg.initialize(new NamedParameterSpec((String) param)); } KeyPair kp = kpg.generateKeyPair(); KeyAgreement ka = KeyAgreement.getInstance(name); ! ka.init(kp.getPrivate()); ka.doPhase(kp.getPublic(), true); byte[] secret = ka.generateSecret(); KeyFactory kf = KeyFactory.getInstance(name); --- 64,84 ---- private static void runBasicTest(String name, Object param) throws Exception { KeyPairGenerator kpg = KeyPairGenerator.getInstance(name); + AlgorithmParameterSpec paramSpec = null; if (param instanceof Integer) { kpg.initialize((Integer) param); } else if (param instanceof String) { ! paramSpec = new NamedParameterSpec((String) param); ! kpg.initialize(paramSpec); } KeyPair kp = kpg.generateKeyPair(); KeyAgreement ka = KeyAgreement.getInstance(name); ! ka.init(kp.getPrivate(), paramSpec); ka.doPhase(kp.getPublic(), true); byte[] secret = ka.generateSecret(); KeyFactory kf = KeyFactory.getInstance(name);
*** 94,103 **** --- 96,115 ---- byte[] secret2 = ka.generateSecret(); if (!Arrays.equals(secret, secret2)) { throw new RuntimeException("Arrays not equal"); } + // make sure generateSecret() resets the state to after init() + try { + ka.generateSecret(); + throw new RuntimeException("generateSecret does not reset state"); + } catch (IllegalStateException ex) { + // do nothing---this is expected + } + ka.doPhase(pubKey, true); + ka.generateSecret(); + // test with XDH key specs XECPublicKeySpec xdhPublic = kf.getKeySpec(kp.getPublic(), XECPublicKeySpec.class); XECPrivateKeySpec xdhPrivate = kf.getKeySpec(kp.getPrivate(), XECPrivateKeySpec.class);
< prev index next >