add new tests.

This commit is contained in:
nicolson%netscape.com 2002-06-14 18:15:45 +00:00
parent ec04d87172
commit 2d108bf4b9

View File

@ -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());
}
}