package org.bouncycastle.asn1.test; import java.security.SecureRandom; import org.bouncycastle.asn1.ASN1Encodable; import org.bouncycastle.asn1.ASN1Integer; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.DERNull; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.cmc.CMCPublicationInfo; import org.bouncycastle.asn1.crmf.PKIPublicationInfo; import org.bouncycastle.asn1.x509.AlgorithmIdentifier; import org.bouncycastle.util.test.SimpleTest; public class CMCPublicationInfoTest extends SimpleTest { public void performTest() throws Exception { SecureRandom secureRandom = new SecureRandom(); // // Test encode and decode. // // Not a real AlgorithmIdentifier AlgorithmIdentifier testIA = new AlgorithmIdentifier(new ASN1ObjectIdentifier("1.1.2.3"), DERNull.INSTANCE); byte[][] hashes = new byte[5][64]; for(int i =0; i<hashes.length; i++) { secureRandom.nextBytes(hashes[i]); } PKIPublicationInfo pinfo = PKIPublicationInfo.getInstance( new DERSequence( new ASN1Encodable[]{new ASN1Integer(1L), new DERSequence(new ASN1Integer(0L)) }) ); CMCPublicationInfo cmcPublicationInfo = new CMCPublicationInfo(testIA,hashes,pinfo); byte[] b = cmcPublicationInfo.getEncoded(); CMCPublicationInfo resCmcPublicationInfo = CMCPublicationInfo.getInstance(b); isEquals(resCmcPublicationInfo,cmcPublicationInfo); // // Test fail on small sequence. // try { CMCPublicationInfo.getInstance(new DERSequence(new ASN1Encodable[]{testIA})); fail("Expecting exception."); } catch (Exception t) { isEquals("Wrong exception: "+t.getMessage(), t.getClass(), IllegalArgumentException.class); } } public String getName() { return "CMCPublicationInfo"; } public static void main(String[] args) { runTest(new CMCPublicationInfoTest()); } }