package org.bouncycastle.asn1.test; import org.bouncycastle.asn1.ASN1Integer; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.DERSet; import org.bouncycastle.asn1.cmc.BodyPartID; import org.bouncycastle.asn1.cmc.CertificationRequest; import org.bouncycastle.asn1.cmc.OtherMsg; import org.bouncycastle.asn1.cmc.PKIData; import org.bouncycastle.asn1.cmc.TaggedAttribute; import org.bouncycastle.asn1.cmc.TaggedCertificationRequest; import org.bouncycastle.asn1.cmc.TaggedContentInfo; import org.bouncycastle.asn1.cmc.TaggedRequest; import org.bouncycastle.asn1.cms.ContentInfo; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.util.Arrays; import org.bouncycastle.util.encoders.Base64; import org.bouncycastle.util.test.SimpleTest; public class PKIDataTest extends SimpleTest { public static void main(String[] args) { runTest(new PKIDataTest()); } public String getName() { return "PKIDataTest"; } public void performTest() throws Exception { byte[] req1 = Base64.decode( "MIHoMIGTAgEAMC4xDjAMBgNVBAMTBVRlc3QyMQ8wDQYDVQQKEwZBbmFUb20xCzAJBgNVBAYTAlNF" + "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALlEt31Tzt2MlcOljvacJgzQVhmlMoqAOgqJ9Pgd3Gux" + "Z7/WcIlgW4QCB7WZT21O1YoghwBhPDMcNGrHei9kHQkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA0EA" + "NDEI4ecNtJ3uHwGGlitNFq9WxcoZ0djbQJ5hABMotav6gtqlrwKXY2evaIrsNwkJtNdwwH18aQDU" + "KCjOuBL38Q=="); PKIData pkiData = new PKIData( new TaggedAttribute[]{new TaggedAttribute(new BodyPartID(10L), PKCSObjectIdentifiers.id_aa, new DERSet())}, new TaggedRequest[]{new TaggedRequest(new TaggedCertificationRequest(new BodyPartID(10L), CertificationRequest.getInstance(req1)))}, new TaggedContentInfo[]{new TaggedContentInfo(new BodyPartID(10L), new ContentInfo(PKCSObjectIdentifiers.id_aa_ets_commitmentType, new ASN1Integer(10L)))}, new OtherMsg[]{new OtherMsg(new BodyPartID(10L), PKCSObjectIdentifiers.pkcs_9, new ASN1Integer(10L))}); byte[] b = pkiData.getEncoded(); PKIData pkiDataResult = PKIData.getInstance(b); isTrue("controlSequence", Arrays.areEqual(pkiData.getControlSequence(), pkiDataResult.getControlSequence())); isTrue("reqSequence", Arrays.areEqual(pkiData.getReqSequence(), pkiDataResult.getReqSequence())); isTrue("cmsSequence", Arrays.areEqual(pkiData.getCmsSequence(), pkiDataResult.getCmsSequence())); isTrue("otherMsgSequence", Arrays.areEqual(pkiData.getOtherMsgSequence(), pkiDataResult.getOtherMsgSequence())); try { PKIData.getInstance(new DERSequence()); fail("Sequence must be 4."); } catch (Throwable t) { isEquals("Exception type", t.getClass(), IllegalArgumentException.class); } } }