package org.bouncycastle.asn1.test; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.x509.X509Extensions; import org.bouncycastle.asn1.x509.X509ExtensionsGenerator; import org.bouncycastle.util.test.SimpleTest; public class X509ExtensionsTest extends SimpleTest { private static final ASN1ObjectIdentifier OID_2 = new ASN1ObjectIdentifier("1.2.2"); private static final ASN1ObjectIdentifier OID_3 = new ASN1ObjectIdentifier("1.2.3"); private static final ASN1ObjectIdentifier OID_1 = new ASN1ObjectIdentifier("1.2.1"); public String getName() { return "X509Extensions"; } public void performTest() throws Exception { X509ExtensionsGenerator gen = new X509ExtensionsGenerator(); gen.addExtension(OID_1, true, new byte[20]); gen.addExtension(OID_2, true, new byte[20]); X509Extensions ext1 = gen.generate(); X509Extensions ext2 = gen.generate(); if (!ext1.equals(ext2)) { fail("equals test failed"); } gen.reset(); gen.addExtension(OID_2, true, new byte[20]); gen.addExtension(OID_1, true, new byte[20]); ext2 = gen.generate(); if (ext1.equals(ext2)) { fail("inequality test failed"); } if (!ext1.equivalent(ext2)) { fail("equivalence true failed"); } gen.reset(); gen.addExtension(OID_1, true, new byte[22]); gen.addExtension(OID_2, true, new byte[20]); ext2 = gen.generate(); if (ext1.equals(ext2)) { fail("inequality 1 failed"); } if (ext1.equivalent(ext2)) { fail("non-equivalence 1 failed"); } gen.reset(); gen.addExtension(OID_3, true, new byte[20]); gen.addExtension(OID_2, true, new byte[20]); ext2 = gen.generate(); if (ext1.equals(ext2)) { fail("inequality 2 failed"); } if (ext1.equivalent(ext2)) { fail("non-equivalence 2 failed"); } try { gen.addExtension(OID_2, true, new byte[20]); fail("repeated oid"); } catch (IllegalArgumentException e) { if (!e.getMessage().equals("extension 1.2.2 already added")) { fail("wrong exception on repeated oid: " + e.getMessage()); } } } public static void main( String[] args) { runTest(new X509ExtensionsTest()); } }