package org.bouncycastle.asn1.test; import java.math.BigInteger; import org.bouncycastle.asn1.ASN1Integer; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.DERTaggedObject; import org.bouncycastle.asn1.x509.PolicyConstraints; import org.bouncycastle.util.Arrays; import org.bouncycastle.util.test.SimpleTest; public class PolicyConstraintsTest extends SimpleTest { public String getName() { return "PolicyConstraints"; } public void performTest() throws Exception { PolicyConstraints constraints = new PolicyConstraints(BigInteger.valueOf(1), BigInteger.valueOf(2)); PolicyConstraints c = PolicyConstraints.getInstance(constraints.getEncoded()); isTrue("1 requireExplicitPolicyMapping", c.getRequireExplicitPolicyMapping().equals(BigInteger.valueOf(1))); isTrue("2 inhibitPolicyMapping", c.getInhibitPolicyMapping().equals(BigInteger.valueOf(2))); constraints = new PolicyConstraints(BigInteger.valueOf(3), null); c = PolicyConstraints.getInstance(constraints.getEncoded()); isTrue("3 requireExplicitPolicyMapping", c.getRequireExplicitPolicyMapping().equals(BigInteger.valueOf(3))); isTrue("4 inhibitPolicyMapping", c.getInhibitPolicyMapping() == null); constraints = new PolicyConstraints(null, BigInteger.valueOf(4)); c = PolicyConstraints.getInstance(constraints.getEncoded()); isTrue("5 inhibitPolicyMapping", c.getInhibitPolicyMapping().equals(BigInteger.valueOf(4))); isTrue("6 requireExplicitPolicyMapping", c.getRequireExplicitPolicyMapping() == null); isTrue("encoding test", Arrays.areEqual( new PolicyConstraints(BigInteger.valueOf(1), null).getEncoded(), new DERSequence(new DERTaggedObject(false, 0, new ASN1Integer(1))).getEncoded())); } public static void main( String[] args) { runTest(new PolicyConstraintsTest()); } }