ASN1InputStream in = new ASN1InputStream (new ByteArrayInputStream(data));
ASN1Sequence spkac = (ASN1Sequence)in.readObject ();
// System.out.println("SPKAC: \n"+DERDump.dumpAsString (spkac));
NetscapeCertRequest nscr = new NetscapeCertRequest (spkac);
if (!nscr.verify (challenge))
{
return new SimpleTestResult(false, getName() + ": 1 - not verified");
}
//now try to generate one
KeyPairGenerator kpg =
KeyPairGenerator.getInstance (nscr.getKeyAlgorithm().getObjectId ().getId(), "BC");
kpg.initialize (1024);
KeyPair kp = kpg.genKeyPair();
nscr.setPublicKey (kp.getPublic());
nscr.sign (kp.getPrivate());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DEROutputStream deros = new DEROutputStream (baos);
deros.writeObject (nscr);
deros.close();
ASN1InputStream in2 =
new ASN1InputStream (new ByteArrayInputStream(baos.toByteArray()));
ASN1Sequence spkac2 = (ASN1Sequence)in2.readObject ();
// System.out.println("SPKAC2: \n"+DERDump.dumpAsString (spkac2));
NetscapeCertRequest nscr2 = new NetscapeCertRequest (spkac2);
if (!nscr2.verify (challenge))
{
return new SimpleTestResult(false, getName() + ": 2 - not verified");
}
//lets build it from scratch
challenge = "try it";
NetscapeCertRequest nscr3 =
new NetscapeCertRequest (challenge,
new AlgorithmIdentifier(PKCSObjectIdentifiers.sha1WithRSAEncryption, null),
kp.getPublic());
nscr3.sign (kp.getPrivate());
// System.out.println("SPKAC3: \n"+DERDump.dumpAsString (nscr3));
if (nscr3.verify (challenge))
{
return new SimpleTestResult(true, getName() + ": Okay");
}
else
{