package org.bouncycastle.asn1.test; import org.bouncycastle.asn1.ASN1Encodable; import org.bouncycastle.asn1.ASN1Integer; import org.bouncycastle.asn1.DEROctetString; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.cmc.BodyPartID; import org.bouncycastle.asn1.cmc.BodyPartPath; import org.bouncycastle.asn1.cmc.CMCUnsignedData; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.util.test.SimpleTest; public class CMCUnsignedDataTest extends SimpleTest { public static void main(String[] args) { runTest(new CMCUnsignedDataTest()); } public String getName() { return "CMCUnsignedDataTest"; } public void performTest() throws Exception { // Encode then decode CMCUnsignedData data = new CMCUnsignedData(new BodyPartPath(new BodyPartID(10L)), PKCSObjectIdentifiers.certBag, new DEROctetString("Cats".getBytes())); byte[] b = data.getEncoded(); CMCUnsignedData result = CMCUnsignedData.getInstance(data); isEquals(data.getBodyPartPath(), result.getBodyPartPath()); isEquals(data.getIdentifier(), result.getIdentifier()); isEquals(data.getContent(), result.getContent()); // Sequence length must be 3 try { CMCUnsignedData.getInstance(new DERSequence(new ASN1Integer(10))); fail("Must fail, sequence must be 3"); } catch (Exception ex) { isEquals(ex.getClass(), IllegalArgumentException.class); } try { CMCUnsignedData.getInstance(new DERSequence(new ASN1Encodable[]{new ASN1Integer(10), new ASN1Integer(10), new ASN1Integer(10), new ASN1Integer(10)})); fail("Must fail, sequence must be 3"); } catch (Exception ex) { isEquals(ex.getClass(), IllegalArgumentException.class); } } }