package org.bouncycastle.asn1.test;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Integer;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.cmc.BodyPartID;
import org.bouncycastle.asn1.cmc.BodyPartList;
import org.bouncycastle.asn1.cmc.BodyPartPath;
import org.bouncycastle.asn1.cmc.ModCertTemplate;
import org.bouncycastle.asn1.crmf.CertTemplate;
import org.bouncycastle.util.test.SimpleTest;
public class ModCertTemplateTest
extends SimpleTest
{
public static void main(String[] args)
{
runTest(new ModCertTemplateTest());
}
public String getName()
{
return "ModCertTemplateTest";
}
public void performTest()
throws Exception
{
BodyPartPath pkiDataReference = new BodyPartPath(new BodyPartID(10L));
BodyPartList certReferences = new BodyPartList(new BodyPartID(12L));
boolean replace = false;
CertTemplate certTemplate = CertTemplate.getInstance(new DLSequence(new DERTaggedObject(false, 1, new ASN1Integer(34L))));
{
ModCertTemplate modCertTemplate = new ModCertTemplate(
pkiDataReference,
certReferences,
replace,
certTemplate
);
byte[] b = modCertTemplate.getEncoded();
ModCertTemplate modCertTemplateResult = ModCertTemplate.getInstance(b);
isEquals("pkiDataReference", modCertTemplate.getPkiDataReference(), modCertTemplateResult.getPkiDataReference());
isEquals("certReference", modCertTemplate.getCertReferences(), modCertTemplateResult.getCertReferences());
isEquals("replacingFields", modCertTemplate.isReplacingFields(), modCertTemplateResult.isReplacingFields());
isEquals("certTemplate", modCertTemplate.getCertTemplate().getSerialNumber(), modCertTemplateResult.getCertTemplate().getSerialNumber());
}
{
ModCertTemplate mct = ModCertTemplate.getInstance(new DERSequence(new ASN1Encodable[]{
pkiDataReference,
certReferences,
certTemplate
}));
isEquals("pkiDataReference", mct.getPkiDataReference(), pkiDataReference);
isEquals("certReference", mct.getCertReferences(), certReferences);
isEquals("DEFAULT TRUE on replacingFields", mct.isReplacingFields(), true);
isEquals("certTemplate", mct.getCertTemplate().getSerialNumber(), certTemplate.getSerialNumber());
}
try
{
ModCertTemplate.getInstance(new DERSequence());
fail("Sequence must be 3 or 4.");
}
catch (Throwable t)
{
isEquals(t.getClass(), IllegalArgumentException.class);
}
}
}