mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
add new tests.
This commit is contained in:
parent
ec04d87172
commit
2d108bf4b9
@ -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());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user