< 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 >