+ "Rd1yBoDdEv8Qb+3eEPH6ab9021AsLEnJ6LWTmybbOpMNZ3tv");
public void performTest()
throws Exception
{
X509StreamParser parser = X509StreamParser.getInstance("Certificate", "BC");
parser.init(new ByteArrayInputStream(CertPathTest.rootCertBin));
X509Certificate rootCert = (X509Certificate)parser.read();
parser = X509StreamParser.getInstance("CRL", "BC");
parser.init(new ByteArrayInputStream(CertPathTest.rootCrlBin));
X509CRL rootCrl = (X509CRL)parser.read();
parser = X509StreamParser.getInstance("AttributeCertificate", "BC");
parser.init(new ByteArrayInputStream(attrCert));
X509AttributeCertificate aCert = (X509AttributeCertificate)parser.read();
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
bOut.write(CertPathTest.rootCertBin);
bOut.write(CertPathTest.interCertBin);
bOut.write(CertPathTest.finalCertBin);
parser = X509StreamParser.getInstance("Certificate", "BC");
parser.init(bOut.toByteArray());
Collection res = parser.readAll();
if (res.size() != 3)
{
fail("wrong number of certificates found");
}
bOut = new ByteArrayOutputStream();
bOut.write(CertPathTest.rootCrlBin);
bOut.write(CertPathTest.interCrlBin);
parser = X509StreamParser.getInstance("CRL", "BC");
parser.init(bOut.toByteArray());
res = parser.readAll();
if (res.size() != 2)
{
fail("wrong number of CRLs found");
}
bOut = new ByteArrayOutputStream();
bOut.write(attrCert);
bOut.write(attrCert);
parser = X509StreamParser.getInstance("AttributeCertificate", "BC");
parser.init(bOut.toByteArray());
res = parser.readAll();
if (res.size() != 2)
{
fail("wrong number of Attribute Certificates found");
}
//
// PEM tests
//
parser = X509StreamParser.getInstance("Certificate", "BC");
parser.init(PEMData.CERTIFICATE_1.getBytes("US-ASCII"));
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of Certificates found");
}
parser = X509StreamParser.getInstance("Certificate", "BC");
parser.init(PEMData.CERTIFICATE_2.getBytes("US-ASCII"));
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of Certificates found");
}
parser = X509StreamParser.getInstance("CRL", "BC");
parser.init(PEMData.CRL_1.getBytes("US-ASCII"));
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of CRLs found");
}
parser = X509StreamParser.getInstance("CRL", "BC");
parser.init(PEMData.CRL_2.getBytes("US-ASCII"));
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of CRLs found");
}
parser = X509StreamParser.getInstance("AttributeCertificate", "BC");
parser.init(PEMData.ATTRIBUTE_CERTIFICATE_1.getBytes("US-ASCII"));
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of Attribute Certificates found");
}
parser = X509StreamParser.getInstance("AttributeCertificate", "BC");
parser.init(PEMData.ATTRIBUTE_CERTIFICATE_2.getBytes("US-ASCII"));
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of Attribute Certificates found");
}
ASN1EncodableVector certs = new ASN1EncodableVector();
certs.add(new ASN1InputStream(CertPathTest.rootCertBin).readObject());
certs.add(new DERTaggedObject(false, 2, new ASN1InputStream(attrCert).readObject()));
ASN1EncodableVector crls = new ASN1EncodableVector();
crls.add(new ASN1InputStream(CertPathTest.rootCrlBin).readObject());
//
// cross certificate pairs
//
parser = X509StreamParser.getInstance("CertificatePair", "BC");
parser.init(new X509CertificatePair(rootCert, rootCert).getEncoded());
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of CertificatePairs found");
}
//
// PKCS7
//
SignedData sigData = new SignedData(new DERSet(), new ContentInfo(CMSObjectIdentifiers.data, null), new DERSet(certs), new DERSet(crls), new DERSet());
ContentInfo info = new ContentInfo(CMSObjectIdentifiers.signedData, sigData);
parser = X509StreamParser.getInstance("Certificate", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of Certificates found");
}
parser = X509StreamParser.getInstance("CRL", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of CRLs found");
}
parser = X509StreamParser.getInstance("AttributeCertificate", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 1)
{
fail("wrong number of Attribute Certificates found");
}
// data with no certificates or CRLs
sigData = new SignedData(new DERSet(), new ContentInfo(CMSObjectIdentifiers.data, null), new DERSet(), new DERSet(), new DERSet());
info = new ContentInfo(CMSObjectIdentifiers.signedData, sigData);
parser = X509StreamParser.getInstance("Certificate", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 0)
{
fail("wrong number of Certificates found - expected 0");
}
parser = X509StreamParser.getInstance("CRL", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 0)
{
fail("wrong number of CRLs found - expected 0");
}
parser = X509StreamParser.getInstance("AttributeCertificate", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 0)
{
fail("wrong number of Attribute Certificates found - expected 0");
}
// data with absent certificates and CRLs
sigData = new SignedData(new DERSet(), new ContentInfo(CMSObjectIdentifiers.data, null), null, null, new DERSet());
info = new ContentInfo(CMSObjectIdentifiers.signedData, sigData);
parser = X509StreamParser.getInstance("Certificate", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 0)
{
fail("wrong number of Certificates found - expected 0");
}
parser = X509StreamParser.getInstance("CRL", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 0)
{
fail("wrong number of CRLs found - expected 0");
}
parser = X509StreamParser.getInstance("AttributeCertificate", "BC");
parser.init(info.getEncoded());
res = parser.readAll();
if (res.size() != 0)
{
fail("wrong number of Attribute Certificates found - expected 0");
}