diff --git a/mozilla/security/jss/org/mozilla/jss/tests/KeyFactoryTest.java b/mozilla/security/jss/org/mozilla/jss/tests/KeyFactoryTest.java index c99fd4703f7..fa09f782f38 100644 --- a/mozilla/security/jss/org/mozilla/jss/tests/KeyFactoryTest.java +++ b/mozilla/security/jss/org/mozilla/jss/tests/KeyFactoryTest.java @@ -44,30 +44,35 @@ import org.mozilla.jss.util.ConsolePasswordCallback; import java.util.Iterator; abstract class TestValues { - protected TestValues(String keyGenAlg, String sigAlg, Class keySpecClass, + protected TestValues(String keyGenAlg, String sigAlg, + Class privateKeySpecClass, Class publicKeySpecClass, String provider) { this.keyGenAlg = keyGenAlg; this.sigAlg = sigAlg; - this.keySpecClass = keySpecClass; + this.privateKeySpecClass = privateKeySpecClass; + this.publicKeySpecClass = publicKeySpecClass; this.provider = provider; } public final String keyGenAlg; public final String sigAlg; - public final Class keySpecClass; + public final Class privateKeySpecClass; + public final Class publicKeySpecClass; public final String provider; } class RSATestValues extends TestValues { public RSATestValues() { - super("RSA", "SHA1withRSA", RSAPublicKeySpec.class, "SunRsaSign"); + super("RSA", "SHA1withRSA", RSAPrivateCrtKeySpec.class, + RSAPublicKeySpec.class, "SunRsaSign"); } } class DSATestValues extends TestValues { public DSATestValues() { - super("DSA", "SHA1withDSA", DSAPublicKeySpec.class, "SUN"); + super("DSA", "SHA1withDSA", DSAPrivateKeySpec.class, + DSAPublicKeySpec.class, "SUN"); } } @@ -101,54 +106,53 @@ public class KeyFactoryTest { } public void doTest() throws Throwable { + RSATestValues rsa = new RSATestValues(); + DSATestValues dsa = new DSATestValues(); // // Generate private key from spec // - genPrivKeyFromSpec(); + genPrivKeyFromSpec(rsa); + + // importing DSA private keys doesn't work + // http://bugzilla.mozilla.org/show_bug.cgi?id=150720 + // genPrivKeyFromSpec(dsa); // // Generate public key from spec // - genPubKeyFromSpec(new RSATestValues()); - genPubKeyFromSpec(new DSATestValues()); - - // - // Generate spec from private key - // - - // - // Generate spec from public key - // + genPubKeyFromSpec(rsa); + genPubKeyFromSpec(dsa); // // translate key // } - public void genPrivKeyFromSpec() throws Throwable { + public void genPrivKeyFromSpec(TestValues vals) throws Throwable { // generate the key pair KeyPairGenerator kpg = - KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator.getInstance(vals.keyGenAlg, vals.provider); kpg.initialize(512); KeyPair pair = kpg.generateKeyPair(); // get the private key spec - KeyFactory sunFact = KeyFactory.getInstance("RSA", "SunRsaSign"); - RSAPrivateKeySpec keySpec = (RSAPrivateKeySpec) - sunFact.getKeySpec(pair.getPrivate(), RSAPrivateCrtKeySpec.class); + KeyFactory sunFact = KeyFactory.getInstance(vals.keyGenAlg, + vals.provider); + KeySpec keySpec = + sunFact.getKeySpec(pair.getPrivate(), vals.privateKeySpecClass); // import it into JSS - KeyFactory jssFact = KeyFactory.getInstance("RSA", + KeyFactory jssFact = KeyFactory.getInstance(vals.keyGenAlg, "Mozilla-JSS"); PrivateKey jssPrivk = jssFact.generatePrivate(keySpec); - signVerify("SHA1withRSA", jssPrivk, "Mozilla-JSS", - pair.getPublic(), "SunRsaSign"); + signVerify(vals.sigAlg, jssPrivk, "Mozilla-JSS", + pair.getPublic(), vals.provider); - System.out.println("Successfully generated a " + "RSA" + - " private key from a " + "RSAPrivatKeySpec"); + System.out.println("Successfully generated a " + vals.keyGenAlg + + " private key from a " + vals.privateKeySpecClass.getName()); } public void signVerify(String sigAlg, PrivateKey privk, String signProv, @@ -182,7 +186,7 @@ public class KeyFactoryTest { KeyFactory sunFact = KeyFactory.getInstance(vals.keyGenAlg, vals.provider); KeySpec keySpec = - sunFact.getKeySpec(pair.getPublic(), vals.keySpecClass); + sunFact.getKeySpec(pair.getPublic(), vals.publicKeySpecClass); // import it into JSS KeyFactory jssFact = KeyFactory.getInstance(vals.keyGenAlg, @@ -193,6 +197,6 @@ public class KeyFactoryTest { jssPubk, "Mozilla-JSS"); System.out.println("Successfully generated a " + vals.keyGenAlg + - " public key from a " + vals.keySpecClass.getName()); + " public key from a " + vals.publicKeySpecClass.getName()); } }