package org.bouncycastle.asn1.test;
import java.util.Date;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1GeneralizedTime;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.cmc.GetCRL;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x500.X500NameBuilder;
import org.bouncycastle.asn1.x500.style.BCStyle;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.ReasonFlags;
import org.bouncycastle.util.test.SimpleTest;
public class GetCRLTest
extends SimpleTest
{
public static void main(String[] args)
{
runTest(new GetCRLTest());
}
public String getName()
{
return "GetCRLTest";
}
public void performTest()
throws Exception
{
{
X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE);
builder.addRDN(BCStyle.C, "AU");
X500Name name = new X500Name(builder.build().toString());
GetCRL crl = new GetCRL(
name,
new GeneralName(GeneralName.rfc822Name, "/"),
new ASN1GeneralizedTime(new Date()),
new ReasonFlags(ReasonFlags.affiliationChanged)
);
byte[] b = crl.getEncoded();
GetCRL crlResp = GetCRL.getInstance(b);
isEquals("IssuerName", crl.getIssuerName(), crlResp.getIssuerName());
isEquals("cRLName", crl.getcRLName(), crlResp.getcRLName());
isEquals("time", crl.getTime(), crlResp.getTime());
isEquals("reasons", crl.getReasons(), crlResp.getReasons());
try
{
GetCRL.getInstance(new DERSequence(new ASN1Encodable[0]));
fail("Must not accept sequence less than 1");
}
catch (Throwable t)
{
isEquals("", t.getClass(), IllegalArgumentException.class);
}
try
{
GetCRL.getInstance(new DERSequence(new ASN1Encodable[5]));
fail("Must not accept sequence larger than 5");
}
catch (Throwable t)
{
isEquals("", t.getClass(), IllegalArgumentException.class);
}
}
{
X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE);
builder.addRDN(BCStyle.C, "AU");
X500Name name = new X500Name(builder.build().toString());
GeneralName generalName = null;
ASN1GeneralizedTime generalizedTime = null;
ReasonFlags flags = null;
for (int t = 0; t < 8; t++)
{
if ((t & 1) == 1)
{
generalName = new GeneralName(GeneralName.rfc822Name, "/");
}
if ((t & 2) == 2)
{
generalizedTime = new ASN1GeneralizedTime(new Date());
}
if ((t & 4) == 4)
{
flags = new ReasonFlags(ReasonFlags.affiliationChanged);
}
GetCRL crl = new GetCRL(
name,
generalName,
generalizedTime,
flags
);
byte[] b = crl.getEncoded();
GetCRL crlResp = GetCRL.getInstance(b);
isEquals("IssuerName", crl.getIssuerName(), crlResp.getIssuerName());
isEquals("cRLName", crl.getcRLName(), crlResp.getcRLName());
isEquals("time", crl.getTime(), crlResp.getTime());
isEquals("reasons", crl.getReasons(), crlResp.getReasons());
}
}
}
}