diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/asn1/test')
75 files changed, 0 insertions, 11524 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ASN1SequenceParserTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ASN1SequenceParserTest.java deleted file mode 100644 index e0cd1af..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ASN1SequenceParserTest.java +++ /dev/null @@ -1,372 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.math.BigInteger; -import java.util.Arrays; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1Null; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1SequenceParser; -import org.bouncycastle.asn1.ASN1StreamParser; -import org.bouncycastle.asn1.BERSequenceGenerator; -import org.bouncycastle.asn1.DERSequenceGenerator; -import org.bouncycastle.util.encoders.Hex; - -public class ASN1SequenceParserTest - extends TestCase -{ - private static final byte[] seqData = Hex.decode("3006020100060129"); - private static final byte[] nestedSeqData = Hex.decode("300b0201000601293003020101"); - private static final byte[] expTagSeqData = Hex.decode("a1083006020100060129"); - private static final byte[] implTagSeqData = Hex.decode("a106020100060129"); - private static final byte[] nestedSeqExpTagData = Hex.decode("300d020100060129a1053003020101"); - private static final byte[] nestedSeqImpTagData = Hex.decode("300b020100060129a103020101"); - - private static final byte[] berSeqData = Hex.decode("30800201000601290000"); - private static final byte[] berDERNestedSeqData = Hex.decode("308002010006012930030201010000"); - private static final byte[] berNestedSeqData = Hex.decode("3080020100060129308002010100000000"); - private static final byte[] berExpTagSeqData = Hex.decode("a180308002010006012900000000"); - - private static final byte[] berSeqWithDERNullData = Hex.decode("308005000201000601290000"); - - public void testDERWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DERSequenceGenerator seqGen = new DERSequenceGenerator(bOut); - - seqGen.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen.addObject(new ASN1ObjectIdentifier("1.1")); - - seqGen.close(); - - assertTrue("basic DER writing test failed.", Arrays.equals(seqData, bOut.toByteArray())); - } - - public void testNestedDERWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DERSequenceGenerator seqGen1 = new DERSequenceGenerator(bOut); - - seqGen1.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen1.addObject(new ASN1ObjectIdentifier("1.1")); - - DERSequenceGenerator seqGen2 = new DERSequenceGenerator(seqGen1.getRawOutputStream()); - - seqGen2.addObject(new ASN1Integer(BigInteger.valueOf(1))); - - seqGen2.close(); - - seqGen1.close(); - - assertTrue("nested DER writing test failed.", Arrays.equals(nestedSeqData, bOut.toByteArray())); - } - - public void testDERExplicitTaggedSequenceWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DERSequenceGenerator seqGen = new DERSequenceGenerator(bOut, 1, true); - - seqGen.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen.addObject(new ASN1ObjectIdentifier("1.1")); - - seqGen.close(); - - assertTrue("explicit tag writing test failed.", Arrays.equals(expTagSeqData, bOut.toByteArray())); - } - - public void testDERImplicitTaggedSequenceWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DERSequenceGenerator seqGen = new DERSequenceGenerator(bOut, 1, false); - - seqGen.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen.addObject(new ASN1ObjectIdentifier("1.1")); - - seqGen.close(); - - assertTrue("implicit tag writing test failed.", Arrays.equals(implTagSeqData, bOut.toByteArray())); - } - - public void testNestedExplicitTagDERWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DERSequenceGenerator seqGen1 = new DERSequenceGenerator(bOut); - - seqGen1.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen1.addObject(new ASN1ObjectIdentifier("1.1")); - - DERSequenceGenerator seqGen2 = new DERSequenceGenerator(seqGen1.getRawOutputStream(), 1, true); - - seqGen2.addObject(new ASN1Integer(BigInteger.valueOf(1))); - - seqGen2.close(); - - seqGen1.close(); - - assertTrue("nested explicit tagged DER writing test failed.", Arrays.equals(nestedSeqExpTagData, bOut.toByteArray())); - } - - public void testNestedImplicitTagDERWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DERSequenceGenerator seqGen1 = new DERSequenceGenerator(bOut); - - seqGen1.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen1.addObject(new ASN1ObjectIdentifier("1.1")); - - DERSequenceGenerator seqGen2 = new DERSequenceGenerator(seqGen1.getRawOutputStream(), 1, false); - - seqGen2.addObject(new ASN1Integer(BigInteger.valueOf(1))); - - seqGen2.close(); - - seqGen1.close(); - - assertTrue("nested implicit tagged DER writing test failed.", Arrays.equals(nestedSeqImpTagData, bOut.toByteArray())); - } - - public void testBERWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - BERSequenceGenerator seqGen = new BERSequenceGenerator(bOut); - - seqGen.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen.addObject(new ASN1ObjectIdentifier("1.1")); - - seqGen.close(); - - assertTrue("basic BER writing test failed.", Arrays.equals(berSeqData, bOut.toByteArray())); - } - - public void testNestedBERDERWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - BERSequenceGenerator seqGen1 = new BERSequenceGenerator(bOut); - - seqGen1.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen1.addObject(new ASN1ObjectIdentifier("1.1")); - - DERSequenceGenerator seqGen2 = new DERSequenceGenerator(seqGen1.getRawOutputStream()); - - seqGen2.addObject(new ASN1Integer(BigInteger.valueOf(1))); - - seqGen2.close(); - - seqGen1.close(); - - assertTrue("nested BER/DER writing test failed.", Arrays.equals(berDERNestedSeqData, bOut.toByteArray())); - } - - public void testNestedBERWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - BERSequenceGenerator seqGen1 = new BERSequenceGenerator(bOut); - - seqGen1.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen1.addObject(new ASN1ObjectIdentifier("1.1")); - - BERSequenceGenerator seqGen2 = new BERSequenceGenerator(seqGen1.getRawOutputStream()); - - seqGen2.addObject(new ASN1Integer(BigInteger.valueOf(1))); - - seqGen2.close(); - - seqGen1.close(); - - assertTrue("nested BER writing test failed.", Arrays.equals(berNestedSeqData, bOut.toByteArray())); - } - - public void testDERReading() - throws Exception - { - ASN1StreamParser aIn = new ASN1StreamParser(seqData); - - ASN1SequenceParser seq = (ASN1SequenceParser)aIn.readObject(); - Object o; - int count = 0; - - assertNotNull("null sequence returned", seq); - - while ((o = seq.readObject()) != null) - { - switch (count) - { - case 0: - assertTrue(o instanceof ASN1Integer); - break; - case 1: - assertTrue(o instanceof ASN1ObjectIdentifier); - break; - } - count++; - } - - assertEquals("wrong number of objects in sequence", 2, count); - } - - private void testNestedReading( - byte[] data) - throws Exception - { - ASN1StreamParser aIn = new ASN1StreamParser(data); - - ASN1SequenceParser seq = (ASN1SequenceParser)aIn.readObject(); - Object o; - int count = 0; - - assertNotNull("null sequence returned", seq); - - while ((o = seq.readObject()) != null) - { - switch (count) - { - case 0: - assertTrue(o instanceof ASN1Integer); - break; - case 1: - assertTrue(o instanceof ASN1ObjectIdentifier); - break; - case 2: - assertTrue(o instanceof ASN1SequenceParser); - - ASN1SequenceParser s = (ASN1SequenceParser)o; - - // NB: Must exhaust the nested parser - while (s.readObject() != null) - { - // Nothing - } - - break; - } - count++; - } - - assertEquals("wrong number of objects in sequence", 3, count); - } - - public void testNestedDERReading() - throws Exception - { - testNestedReading(nestedSeqData); - } - - public void testBERReading() - throws Exception - { - ASN1StreamParser aIn = new ASN1StreamParser(berSeqData); - - ASN1SequenceParser seq = (ASN1SequenceParser)aIn.readObject(); - Object o; - int count = 0; - - assertNotNull("null sequence returned", seq); - - while ((o = seq.readObject()) != null) - { - switch (count) - { - case 0: - assertTrue(o instanceof ASN1Integer); - break; - case 1: - assertTrue(o instanceof ASN1ObjectIdentifier); - break; - } - count++; - } - - assertEquals("wrong number of objects in sequence", 2, count); - } - - public void testNestedBERDERReading() - throws Exception - { - testNestedReading(berDERNestedSeqData); - } - - public void testNestedBERReading() - throws Exception - { - testNestedReading(berNestedSeqData); - } - - public void testBERExplicitTaggedSequenceWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - BERSequenceGenerator seqGen = new BERSequenceGenerator(bOut, 1, true); - - seqGen.addObject(new ASN1Integer(BigInteger.valueOf(0))); - - seqGen.addObject(new ASN1ObjectIdentifier("1.1")); - - seqGen.close(); - - assertTrue("explicit BER tag writing test failed.", Arrays.equals(berExpTagSeqData, bOut.toByteArray())); - } - - public void testSequenceWithDERNullReading() - throws Exception - { - testParseWithNull(berSeqWithDERNullData); - } - - private void testParseWithNull(byte[] data) - throws IOException - { - ASN1StreamParser aIn = new ASN1StreamParser(data); - ASN1SequenceParser seq = (ASN1SequenceParser)aIn.readObject(); - Object o; - int count = 0; - - assertNotNull("null sequence returned", seq); - - while ((o = seq.readObject()) != null) - { - switch (count) - { - case 0: - assertTrue(o instanceof ASN1Null); - break; - case 1: - assertTrue(o instanceof ASN1Integer); - break; - case 2: - assertTrue(o instanceof ASN1ObjectIdentifier); - break; - } - count++; - } - - assertEquals("wrong number of objects in sequence", 3, count); - } - - public static Test suite() - { - return new TestSuite(ASN1SequenceParserTest.class); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ASN1UnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ASN1UnitTest.java deleted file mode 100644 index d51cc6a..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ASN1UnitTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.util.test.SimpleTest; - -import java.math.BigInteger; - -public abstract class ASN1UnitTest - extends SimpleTest -{ - protected void checkMandatoryField(String name, ASN1Encodable expected, ASN1Encodable present) - { - if (!expected.equals(present)) - { - fail(name + " field doesn't match."); - } - } - - protected void checkMandatoryField(String name, String expected, String present) - { - if (!expected.equals(present)) - { - fail(name + " field doesn't match."); - } - } - - protected void checkMandatoryField(String name, byte[] expected, byte[] present) - { - if (!areEqual(expected, present)) - { - fail(name + " field doesn't match."); - } - } - - protected void checkMandatoryField(String name, int expected, int present) - { - if (expected != present) - { - fail(name + " field doesn't match."); - } - } - - protected void checkOptionalField(String name, ASN1Encodable expected, ASN1Encodable present) - { - if (expected != null) - { - if (!expected.equals(present)) - { - fail(name + " field doesn't match."); - } - } - else if (present != null) - { - fail(name + " field found when none expected."); - } - } - - protected void checkOptionalField(String name, String expected, String present) - { - if (expected != null) - { - if (!expected.equals(present)) - { - fail(name + " field doesn't match."); - } - } - else if (present != null) - { - fail(name + " field found when none expected."); - } - } - - protected void checkOptionalField(String name, BigInteger expected, BigInteger present) - { - if (expected != null) - { - if (!expected.equals(present)) - { - fail(name + " field doesn't match."); - } - } - else if (present != null) - { - fail(name + " field found when none expected."); - } - } - - -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/AdditionalInformationSyntaxUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/AdditionalInformationSyntaxUnitTest.java deleted file mode 100644 index baf0750..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/AdditionalInformationSyntaxUnitTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1String; -import org.bouncycastle.asn1.isismtt.x509.AdditionalInformationSyntax; -import org.bouncycastle.asn1.x500.DirectoryString; - -public class AdditionalInformationSyntaxUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "AdditionalInformationSyntax"; - } - - public void performTest() - throws Exception - { - AdditionalInformationSyntax syntax = new AdditionalInformationSyntax("hello world"); - - checkConstruction(syntax, new DirectoryString("hello world")); - - try - { - AdditionalInformationSyntax.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - AdditionalInformationSyntax syntax, - DirectoryString information) - throws IOException - { - checkValues(syntax, information); - - syntax = AdditionalInformationSyntax.getInstance(syntax); - - checkValues(syntax, information); - - ASN1InputStream aIn = new ASN1InputStream(syntax.toASN1Object().getEncoded()); - - ASN1String info = (ASN1String)aIn.readObject(); - - syntax = AdditionalInformationSyntax.getInstance(info); - - checkValues(syntax, information); - } - - private void checkValues( - AdditionalInformationSyntax syntax, - DirectoryString information) - { - checkMandatoryField("information", information, syntax.getInformation()); - } - - public static void main( - String[] args) - { - runTest(new AdditionalInformationSyntaxUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/AdmissionSyntaxUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/AdmissionSyntaxUnitTest.java deleted file mode 100644 index ad0e925..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/AdmissionSyntaxUnitTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.isismtt.x509.AdmissionSyntax; -import org.bouncycastle.asn1.isismtt.x509.Admissions; -import org.bouncycastle.asn1.isismtt.x509.NamingAuthority; -import org.bouncycastle.asn1.isismtt.x509.ProfessionInfo; -import org.bouncycastle.asn1.x500.DirectoryString; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.X509Name; - -public class AdmissionSyntaxUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "AdmissionSyntax"; - } - - public void performTest() - throws Exception - { - GeneralName name = new GeneralName(new X509Name("CN=hello world")); - ASN1Sequence admissions = new DERSequence( - new Admissions(name, - new NamingAuthority(new ASN1ObjectIdentifier("1.2.3"), "url", new DirectoryString("fred")), - new ProfessionInfo[0])); - AdmissionSyntax syntax = new AdmissionSyntax(name, admissions); - - checkConstruction(syntax, name, admissions); - - syntax = AdmissionSyntax.getInstance(null); - - if (syntax != null) - { - fail("null getInstance() failed."); - } - - try - { - AdmissionSyntax.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - AdmissionSyntax syntax, - GeneralName authority, - ASN1Sequence admissions) - throws IOException - { - checkValues(syntax, authority, admissions); - - syntax = AdmissionSyntax.getInstance(syntax); - - checkValues(syntax, authority, admissions); - - ASN1InputStream aIn = new ASN1InputStream(syntax.toASN1Object().getEncoded()); - - ASN1Sequence info = (ASN1Sequence)aIn.readObject(); - - syntax = AdmissionSyntax.getInstance(info); - - checkValues(syntax, authority, admissions); - } - - private void checkValues( - AdmissionSyntax syntax, - GeneralName authority, - ASN1Sequence admissions) - { - checkMandatoryField("admissionAuthority", authority, syntax.getAdmissionAuthority()); - - Admissions[] adm = syntax.getContentsOfAdmissions(); - - if (adm.length != 1 || !adm[0].equals(admissions.getObjectAt(0))) - { - fail("admissions check failed"); - } - } - - public static void main( - String[] args) - { - runTest(new AdmissionSyntaxUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/AdmissionsUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/AdmissionsUnitTest.java deleted file mode 100644 index 171faec..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/AdmissionsUnitTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.isismtt.x509.Admissions; -import org.bouncycastle.asn1.isismtt.x509.NamingAuthority; -import org.bouncycastle.asn1.isismtt.x509.ProfessionInfo; -import org.bouncycastle.asn1.x500.DirectoryString; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.X509Name; - -public class AdmissionsUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "Admissions"; - } - - public void performTest() - throws Exception - { - GeneralName name = new GeneralName(new X509Name("CN=hello world")); - NamingAuthority auth = new NamingAuthority(new ASN1ObjectIdentifier("1.2.3"), "url", new DirectoryString("fred")); - Admissions admissions = new Admissions(name, auth, new ProfessionInfo[0]); - - checkConstruction(admissions, name, auth); - - admissions = Admissions.getInstance(null); - - if (admissions != null) - { - fail("null getInstance() failed."); - } - - try - { - Admissions.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - Admissions admissions, - GeneralName name, - NamingAuthority auth) - throws IOException - { - checkValues(admissions, name, auth); - - admissions = Admissions.getInstance(admissions); - - checkValues(admissions, name, auth); - - ASN1InputStream aIn = new ASN1InputStream(admissions.toASN1Object().getEncoded()); - - ASN1Sequence info = (ASN1Sequence)aIn.readObject(); - - admissions = Admissions.getInstance(info); - - checkValues(admissions, name, auth); - } - - private void checkValues( - Admissions admissions, - GeneralName name, - NamingAuthority auth) - { - checkMandatoryField("admissionAuthority", name, admissions.getAdmissionAuthority()); - checkMandatoryField("namingAuthority", auth, admissions.getNamingAuthority()); - } - - public static void main( - String[] args) - { - runTest(new AdmissionsUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/AllTests.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/AllTests.java deleted file mode 100644 index 5b647b3..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/AllTests.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.bouncycastle.asn1.test; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import org.bouncycastle.util.test.SimpleTestResult; - -public class AllTests - extends TestCase -{ - public void testASN1() - { - org.bouncycastle.util.test.Test[] tests = RegressionTest.tests; - - for (int i = 0; i != tests.length; i++) - { - SimpleTestResult result = (SimpleTestResult)tests[i].perform(); - - if (!result.isSuccessful()) - { - fail(result.toString()); - } - } - } - - public static void main (String[] args) - { - junit.textui.TestRunner.run(suite()); - } - - public static Test suite() - { - TestSuite suite = new TestSuite("ASN.1 Tests"); - - suite.addTestSuite(AllTests.class); - suite.addTestSuite(GetInstanceTest.class); - suite.addTestSuite(ASN1SequenceParserTest.class); - suite.addTestSuite(OctetStringTest.class); - suite.addTestSuite(ParseTest.class); - - return suite; - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/AttributeTableUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/AttributeTableUnitTest.java deleted file mode 100644 index 337fb1a..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/AttributeTableUnitTest.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.util.Hashtable; - -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.DERSet; -import org.bouncycastle.asn1.cms.Attribute; -import org.bouncycastle.asn1.cms.AttributeTable; -import org.bouncycastle.util.test.SimpleTest; - -public class AttributeTableUnitTest - extends SimpleTest -{ - private static final ASN1ObjectIdentifier type1 = new ASN1ObjectIdentifier("1.1.1"); - private static final ASN1ObjectIdentifier type2 = new ASN1ObjectIdentifier("1.1.2"); - private static final ASN1ObjectIdentifier type3 = new ASN1ObjectIdentifier("1.1.3"); - - public String getName() - { - return "AttributeTable"; - } - - public void performTest() - throws Exception - { - ASN1EncodableVector v = new ASN1EncodableVector(); - - v.add(new Attribute(type1, new DERSet(type1))); - v.add(new Attribute(type2, new DERSet(type2))); - - AttributeTable table = new AttributeTable(v); - - Attribute a = table.get(type1); - if (a == null) - { - fail("type1 attribute not found."); - } - if (!a.getAttrValues().equals(new DERSet(type1))) - { - fail("wrong value retrieved for type1!"); - } - - a = table.get(type2); - if (a == null) - { - fail("type2 attribute not found."); - } - if (!a.getAttrValues().equals(new DERSet(type2))) - { - fail("wrong value retrieved for type2!"); - } - - a = table.get(type3); - if (a != null) - { - fail("type3 attribute found when none expected."); - } - - ASN1EncodableVector vec = table.getAll(type1); - if (vec.size() != 1) - { - fail("wrong vector size for type1."); - } - - vec = table.getAll(type3); - if (vec.size() != 0) - { - fail("wrong vector size for type3."); - } - - vec = table.toASN1EncodableVector(); - if (vec.size() != 2) - { - fail("wrong vector size for single."); - } - - Hashtable t = table.toHashtable(); - - if (t.size() != 2) - { - fail("hashtable wrong size."); - } - - // multiple - - v = new ASN1EncodableVector(); - - v.add(new Attribute(type1, new DERSet(type1))); - v.add(new Attribute(type1, new DERSet(type2))); - v.add(new Attribute(type1, new DERSet(type3))); - v.add(new Attribute(type2, new DERSet(type2))); - - table = new AttributeTable(v); - - a = table.get(type1); - if (!a.getAttrValues().equals(new DERSet(type1))) - { - fail("wrong value retrieved for type1 multi get!"); - } - - vec = table.getAll(type1); - if (vec.size() != 3) - { - fail("wrong vector size for multiple type1."); - } - - a = (Attribute)vec.get(0); - if (!a.getAttrValues().equals(new DERSet(type1))) - { - fail("wrong value retrieved for type1(0)!"); - } - - a = (Attribute)vec.get(1); - if (!a.getAttrValues().equals(new DERSet(type2))) - { - fail("wrong value retrieved for type1(1)!"); - } - - a = (Attribute)vec.get(2); - if (!a.getAttrValues().equals(new DERSet(type3))) - { - fail("wrong value retrieved for type1(2)!"); - } - - vec = table.getAll(type2); - if (vec.size() != 1) - { - fail("wrong vector size for multiple type2."); - } - - vec = table.toASN1EncodableVector(); - if (vec.size() != 4) - { - fail("wrong vector size for multiple."); - } - } - - public static void main( - String[] args) - { - runTest(new AttributeTableUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/BiometricDataUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/BiometricDataUnitTest.java deleted file mode 100644 index b4c2ea4..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/BiometricDataUnitTest.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.security.SecureRandom; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1OctetString; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DERIA5String; -import org.bouncycastle.asn1.DERNull; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.qualified.BiometricData; -import org.bouncycastle.asn1.x509.qualified.TypeOfBiometricData; -import org.bouncycastle.util.test.SimpleTest; - -public class BiometricDataUnitTest - extends SimpleTest -{ - public String getName() - { - return "BiometricData"; - } - - private byte[] generateHash() - { - SecureRandom rand = new SecureRandom(); - byte[] bytes = new byte[20]; - - rand.nextBytes(bytes); - - return bytes; - } - - public void performTest() - throws Exception - { - TypeOfBiometricData dataType = new TypeOfBiometricData(TypeOfBiometricData.HANDWRITTEN_SIGNATURE); - AlgorithmIdentifier hashAlgorithm = new AlgorithmIdentifier(OIWObjectIdentifiers.idSHA1, DERNull.INSTANCE); - ASN1OctetString dataHash = new DEROctetString(generateHash()); - BiometricData bd = new BiometricData(dataType, hashAlgorithm, dataHash); - - checkConstruction(bd, dataType, hashAlgorithm, dataHash, null); - - DERIA5String dataUri = new DERIA5String("http://test"); - - bd = new BiometricData(dataType, hashAlgorithm, dataHash, dataUri); - - checkConstruction(bd, dataType, hashAlgorithm, dataHash, dataUri); - - bd = BiometricData.getInstance(null); - - if (bd != null) - { - fail("null getInstance() failed."); - } - - try - { - BiometricData.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - BiometricData bd, - TypeOfBiometricData dataType, - AlgorithmIdentifier hashAlgorithm, - ASN1OctetString dataHash, - DERIA5String dataUri) - throws Exception - { - checkValues(bd, dataType, hashAlgorithm, dataHash, dataUri); - - bd = BiometricData.getInstance(bd); - - checkValues(bd, dataType, hashAlgorithm, dataHash, dataUri); - - ASN1InputStream aIn = new ASN1InputStream(bd.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - bd = BiometricData.getInstance(seq); - - checkValues(bd, dataType, hashAlgorithm, dataHash, dataUri); - } - - private void checkValues( - BiometricData bd, - TypeOfBiometricData dataType, - AlgorithmIdentifier algID, - ASN1OctetString dataHash, - DERIA5String sourceDataURI) - { - if (!bd.getTypeOfBiometricData().equals(dataType)) - { - fail("types don't match."); - } - - if (!bd.getHashAlgorithm().equals(algID)) - { - fail("hash algorithms don't match."); - } - - if (!bd.getBiometricDataHash().equals(dataHash)) - { - fail("hash algorithms don't match."); - } - - if (sourceDataURI != null) - { - if (!bd.getSourceDataUri().equals(sourceDataURI)) - { - fail("data uris don't match."); - } - } - else if (bd.getSourceDataUri() != null) - { - fail("data uri found when none expected."); - } - } - - public static void main( - String[] args) - { - runTest(new BiometricDataUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/BitStringConstantTester.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/BitStringConstantTester.java deleted file mode 100644 index bbea4a3..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/BitStringConstantTester.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.bouncycastle.asn1.test; - -public class BitStringConstantTester -{ - private static final int[] bits = - { - 1 << 7, 1 << 6, 1 << 5, 1 << 4, 1 << 3, 1 << 2, 1 << 1, 1 << 0, - 1 << 15, 1 << 14, 1 << 13, 1 << 12, 1 << 11, 1 << 10, 1 << 9, 1 << 8, - 1 << 23, 1 << 22, 1 << 21, 1 << 20, 1 << 19, 1 << 18, 1 << 17, 1 << 16, - 1 << 31, 1 << 30, 1 << 29, 1 << 28, 1 << 27, 1 << 26, 1 << 25, 1 << 24 - }; - - public static void testFlagValueCorrect( - int bitNo, - int value) - { - if (bits[bitNo] != value) - { - throw new IllegalArgumentException("bit value " + bitNo + " wrong"); - } - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/BitStringTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/BitStringTest.java deleted file mode 100644 index 1cd5bd3..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/BitStringTest.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DERBitString; -import org.bouncycastle.asn1.x509.KeyUsage; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class BitStringTest - implements Test -{ - public TestResult perform() - { - KeyUsage k = new KeyUsage(KeyUsage.digitalSignature); - if ((k.getBytes()[0] != (byte)KeyUsage.digitalSignature) || (k.getPadBits() != 7)) - { - return new SimpleTestResult(false, getName() + ": failed digitalSignature"); - } - - k = new KeyUsage(KeyUsage.nonRepudiation); - if ((k.getBytes()[0] != (byte)KeyUsage.nonRepudiation) || (k.getPadBits() != 6)) - { - return new SimpleTestResult(false, getName() + ": failed nonRepudiation"); - } - - k = new KeyUsage(KeyUsage.keyEncipherment); - if ((k.getBytes()[0] != (byte)KeyUsage.keyEncipherment) || (k.getPadBits() != 5)) - { - return new SimpleTestResult(false, getName() + ": failed keyEncipherment"); - } - - k = new KeyUsage(KeyUsage.cRLSign); - if ((k.getBytes()[0] != (byte)KeyUsage.cRLSign) || (k.getPadBits() != 1)) - { - return new SimpleTestResult(false, getName() + ": failed cRLSign"); - } - - k = new KeyUsage(KeyUsage.decipherOnly); - if ((k.getBytes()[1] != (byte)(KeyUsage.decipherOnly >> 8)) || (k.getPadBits() != 7)) - { - return new SimpleTestResult(false, getName() + ": failed decipherOnly"); - } - - // test for zero length bit string - try - { - ASN1Primitive.fromByteArray(new DERBitString(new byte[0], 0).getEncoded()); - } - catch (IOException e) - { - return new SimpleTestResult(false, getName() + ": " + e); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - - public String getName() - { - return "BitString"; - } - - public static void main( - String[] args) - { - BitStringTest test = new BitStringTest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/CMSTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/CMSTest.java deleted file mode 100644 index 873b27c..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/CMSTest.java +++ /dev/null @@ -1,358 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1OctetStringParser; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.ASN1SequenceParser; -import org.bouncycastle.asn1.ASN1Set; -import org.bouncycastle.asn1.ASN1SetParser; -import org.bouncycastle.asn1.ASN1StreamParser; -import org.bouncycastle.asn1.BERTags; -import org.bouncycastle.asn1.DERSet; -import org.bouncycastle.asn1.cms.CMSObjectIdentifiers; -import org.bouncycastle.asn1.cms.CompressedData; -import org.bouncycastle.asn1.cms.ContentInfo; -import org.bouncycastle.asn1.cms.ContentInfoParser; -import org.bouncycastle.asn1.cms.EncryptedContentInfoParser; -import org.bouncycastle.asn1.cms.EnvelopedData; -import org.bouncycastle.asn1.cms.EnvelopedDataParser; -import org.bouncycastle.asn1.cms.KEKRecipientInfo; -import org.bouncycastle.asn1.cms.KeyTransRecipientInfo; -import org.bouncycastle.asn1.cms.RecipientInfo; -import org.bouncycastle.asn1.cms.SignedData; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.io.Streams; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class CMSTest - implements Test -{ - // - // compressed data object - // - byte[] compData = Base64.decode( - "MIAGCyqGSIb3DQEJEAEJoIAwgAIBADANBgsqhkiG9w0BCRADCDCABgkqhkiG9w0BBwGggCSABIIC" - + "Hnic7ZRdb9owFIbvK/k/5PqVYPFXGK12YYyboVFASSp1vQtZGiLRACZE49/XHoUW7S/0tXP8Efux" - + "fU5ivWnasml72XFb3gb5druui7ytN803M570nii7C5r8tfwR281hy/p/KSM3+jzH5s3+pbQ90xSb" - + "P3VT3QbLusnt8WPIuN5vN/vaA2+DulnXTXkXvNTr8j8ouZmkCmGI/UW+ZS/C8zP0bz2dz0zwLt+1" - + "UEk2M8mlaxjRMByAhZTj0RGYg4TvogiRASROsZgjpVcJCb1KV6QzQeDJ1XkoQ5Jm+C5PbOHZZGRi" - + "v+ORAcshOGeCcdFJyfgFxdtCdEcmOrbinc/+BBMzRThEYpwl+jEBpciSGWQkI0TSlREmD/eOHb2D" - + "SGLuESm/iKUFt1y4XHBO2a5oq0IKJKWLS9kUZTA7vC5LSxYmgVL46SIWxIfWBQd6AdrnjLmH94UT" - + "vGxVibLqRCtIpp4g2qpdtqK1LiOeolpVK5wVQ5P7+QjZAlrh0cePYTx/gNZuB9Vhndtgujl9T/tg" - + "W9ogK+3rnmg3YWygnTuF5GDS+Q/jIVLnCcYZFc6Kk/+c80wKwZjwdZIqDYWRH68MuBQSXLgXYXj2" - + "3CAaYOBNJMliTl0X7eV5DnoKIFSKYdj3cRpD/cK/JWTHJRe76MUXnfBW8m7Hd5zhQ4ri2NrVF/WL" - + "+kV1/3AGSlJ32bFPd2BsQD8uSzIx6lObkjdz95c0AAAAAAAAAAAAAAAA"); - - // - // enveloped data - // - byte[] envDataKeyTrns = Base64.decode( - "MIAGCSqGSIb3DQEHA6CAMIACAQAxgcQwgcECAQAwKjAlMRYwFAYDVQQKEw1Cb3Vu" - + "Y3kgQ2FzdGxlMQswCQYDVQQGEwJBVQIBCjANBgkqhkiG9w0BAQEFAASBgC5vdGrB" - + "itQSGwifLf3KwPILjaB4WEXgT/IIO1KDzrsbItCJsMA0Smq2y0zptxT0pSRL6JRg" - + "NMxLk1ySnrIrvGiEPLMR1zjxlT8yQ6VLX+kEoK43ztd1aaLw0oBfrcXcLN7BEpZ1" - + "TIdjlBfXIOx1S88WY1MiYqJJFc3LMwRUaTEDMIAGCSqGSIb3DQEHATAdBglghkgB" - + "ZQMEARYEEAfxLMWeaBOTTZQwUq0Y5FuggAQgwOJhL04rjSZCBCSOv5i5XpFfGsOd" - + "YSHSqwntGpFqCx4AAAAAAAAAAAAA"); - - byte[] envDataKEK = Base64.decode( - "MIAGCSqGSIb3DQEHA6CAMIACAQIxUqJQAgEEMAcEBQECAwQFMBAGCyqGSIb3DQEJE" - + "AMHAgE6BDC7G/HyUPilIrin2Yeajqmj795VoLWETRnZAAFcAiQdoQWyz+oCh6WY/H" - + "jHHi+0y+cwgAYJKoZIhvcNAQcBMBQGCCqGSIb3DQMHBAiY3eDBBbF6naCABBiNdzJb" - + "/v6+UZB3XXKipxFDUpz9GyjzB+gAAAAAAAAAAAAA"); - - byte[] envDataNestedNDEF = Base64.decode( - "MIAGCSqGSIb3DQEHA6CAMIACAQAxge8wgewCAQAwgZUwgY8xKDAmBgNVBAoMH1RoZSBMZWdpb24g" - + "b2YgdGhlIEJvdW5jeSBDYXN0bGUxLzAtBgkqhkiG9w0BCQEWIGZlZWRiYWNrLWNyeXB0b0Bib3Vu" - + "Y3ljYXN0bGUub3JnMREwDwYDVQQIDAhWaWN0b3JpYTESMBAGA1UEBwwJTWVsYm91cm5lMQswCQYD" - + "VQQGEwJBVQIBATANBgkqhkiG9w0BAQEFAARABIXMd8xiTyWDKO/LQfvdGYTPW3I9oSQWwtm4OIaN" - + "VINpfY2lfwTvbmE6VXiLKeALC0dMBV8z7DEM9hE0HVmvLDCABgkqhkiG9w0BBwEwHQYJYIZIAWUD" - + "BAECBBB32ko6WrVxDTqwUYEpV6IUoIAEggKgS6RowrhNlmWWI13zxD/lryxkZ5oWXPUfNiUxYX/P" - + "r5iscW3s8VKJKUpJ4W5SNA7JGL4l/5LmSnJ4Qu/xzxcoH4r4vmt75EDE9p2Ob2Xi1NuSFAZubJFc" - + "Zlnp4e05UHKikmoaz0PbiAi277sLQlK2FcVsntTYVT00y8+IwuuQu0ATVqkXC+VhfjV/sK6vQZnw" - + "2rQKedZhLB7B4dUkmxCujb/UAq4lgSpLMXg2P6wMimTczXyQxRiZxPeI4ByCENjkafXbfcJft2eD" - + "gv1DEDdYM5WrW9Z75b4lmJiOJ/xxDniHCvum7KGXzpK1d1mqTlpzPC2xoz08/MO4lRf5Mb0bYdq6" - + "CjMaYqVwGsYryp/2ayX+d8H+JphEG+V9Eg8uPcDoibwhDI4KkoyGHstPw5bxcy7vVFt7LXUdNjJc" - + "K1wxaUKEXDGKt9Vj93FnBTLMX0Pc9HpueV5o1ipX34dn/P3HZB9XK8ScbrE38B1VnIgylStnhVFO" - + "Cj9s7qSVqI2L+xYHJRHsxaMumIRnmRuOqdXDfIo28EZAnFtQ/b9BziMGVvAW5+A8h8s2oazhSmK2" - + "23ftV7uv98ScgE8fCd3PwT1kKJM83ThTYyBzokvMfPYCCvsonMV+kTWXhWcwjYTS4ukrpR452ZdW" - + "l3aJqDnzobt5FK4T8OGciOj+1PxYFZyRmCuafm2Dx6o7Et2Tu/T5HYvhdY9jHyqtDl2PXH4CTnVi" - + "gA1YOAArjPVmsZVwAM3Ml46uyXXhcsXwQ1X0Tv4D+PSa/id4UQ2cObOw8Cj1eW2GB8iJIZVqkZaU" - + "XBexqgWYOIoxjqODSeoZKiBsTK3c+oOUBqBDueY1i55swE2o6dDt95FluX6iyr/q4w2wLt3upY1J" - + "YL+TuvZxAKviuAczMS1bAAAAAAAAAAAAAA=="); - - // - // signed data - // - byte[] signedData = Base64.decode( - "MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAaCA" - + "JIAEDEhlbGxvIFdvcmxkIQAAAAAAAKCCBGIwggINMIIBdqADAgECAgEBMA0GCSqG" - + "SIb3DQEBBAUAMCUxFjAUBgNVBAoTDUJvdW5jeSBDYXN0bGUxCzAJBgNVBAYTAkFV" - + "MB4XDTA0MTAyNDA0MzA1OFoXDTA1MDIwMTA0MzA1OFowJTEWMBQGA1UEChMNQm91" - + "bmN5IENhc3RsZTELMAkGA1UEBhMCQVUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ" - + "AoGBAJj3OAshAOgDmPcYZ1jdNSuhOHRH9VhC/PG17FdiInVGc2ulJhEifEQga/uq" - + "ZCpSd1nHsJUZKm9k1bVneWzC0941i9Znfxgb2jnXXsa5kwB2KEVESrOWsRjSRtnY" - + "iLgqBG0rzpaMn5A5ntu7N0406EesBhe19cjZAageEHGZDbufAgMBAAGjTTBLMB0G" - + "A1UdDgQWBBR/iHNKOo6f4ByWFFywRNZ65XSr1jAfBgNVHSMEGDAWgBR/iHNKOo6f" - + "4ByWFFywRNZ65XSr1jAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBBAUAA4GBAFMJJ7QO" - + "pHo30bnlQ4Ny3PCnK+Se+Gw3TpaYGp84+a8fGD9Dme78G6NEsgvpFGTyoLxvJ4CB" - + "84Kzys+1p2HdXzoZiyXAer5S4IwptE3TxxFwKyj28cRrM6dK47DDyXUkV0qwBAMN" - + "luwnk/no4K7ilzN2MZk5l7wXyNa9yJ6CHW6dMIICTTCCAbagAwIBAgIBAjANBgkq" - + "hkiG9w0BAQQFADAlMRYwFAYDVQQKEw1Cb3VuY3kgQ2FzdGxlMQswCQYDVQQGEwJB" - + "VTAeFw0wNDEwMjQwNDMwNTlaFw0wNTAyMDEwNDMwNTlaMGUxGDAWBgNVBAMTD0Vy" - + "aWMgSC4gRWNoaWRuYTEkMCIGCSqGSIb3DQEJARYVZXJpY0Bib3VuY3ljYXN0bGUu" - + "b3JnMRYwFAYDVQQKEw1Cb3VuY3kgQ2FzdGxlMQswCQYDVQQGEwJBVTCBnzANBgkq" - + "hkiG9w0BAQEFAAOBjQAwgYkCgYEAm+5CnGU6W45iUpCsaGkn5gDruZv3j/o7N6ag" - + "mRZhikaLG2JF6ECaX13iioVJfmzBsPKxAACWwuTXCoSSXG8viK/qpSHwJpfQHYEh" - + "tcC0CxIqlnltv3KQAGwh/PdwpSPvSNnkQBGvtFq++9gnXDBbynfP8b2L2Eis0X9U" - + "2y6gFiMCAwEAAaNNMEswHQYDVR0OBBYEFEAmOksnF66FoQm6IQBVN66vJo1TMB8G" - + "A1UdIwQYMBaAFH+Ic0o6jp/gHJYUXLBE1nrldKvWMAkGA1UdEwQCMAAwDQYJKoZI" - + "hvcNAQEEBQADgYEAEeIjvNkKMPU/ZYCu1TqjGZPEqi+glntg2hC/CF0oGyHFpMuG" - + "tMepF3puW+uzKM1s61ar3ahidp3XFhr/GEU/XxK24AolI3yFgxP8PRgUWmQizTQX" - + "pWUmhlsBe1uIKVEfNAzCgtYfJQ8HJIKsUCcdWeCKVKs4jRionsek1rozkPExggEv" - + "MIIBKwIBATAqMCUxFjAUBgNVBAoTDUJvdW5jeSBDYXN0bGUxCzAJBgNVBAYTAkFV" - + "AgECMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG" - + "SIb3DQEJBTEPFw0wNDEwMjQwNDMwNTlaMCMGCSqGSIb3DQEJBDEWBBQu973mCM5U" - + "BOl9XwQvlfifHCMocTANBgkqhkiG9w0BAQEFAASBgGHbe3/jcZu6b/erRhc3PEji" - + "MUO8mEIRiNYBr5/vFNhkry8TrGfOpI45m7gu1MS0/vdas7ykvidl/sNZfO0GphEI" - + "UaIjMRT3U6yuTWF4aLpatJbbRsIepJO/B2kdIAbV5SCbZgVDJIPOR2qnruHN2wLF" - + "a+fEv4J8wQ8Xwvk0C8iMAAAAAAAA"); - - private boolean isSameAs( - byte[] a, - byte[] b) - { - if (a.length != b.length) - { - return false; - } - - for (int i = 0; i != a.length; i++) - { - if (a[i] != b[i]) - { - return false; - } - } - - return true; - } - - private TestResult compressionTest() - { - try - { - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(compData)); - - ContentInfo info = ContentInfo.getInstance(aIn.readObject()); - CompressedData data = CompressedData.getInstance(info.getContent()); - - data = new CompressedData(data.getCompressionAlgorithmIdentifier(), data.getEncapContentInfo()); - info = new ContentInfo(CMSObjectIdentifiers.compressedData, data); - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(info); - - if (!isSameAs(bOut.toByteArray(), compData)) - { - return new SimpleTestResult(false, getName() + ": CMS compression failed to re-encode"); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": CMS compression failed - " + e.toString(), e); - } - } - - private TestResult envelopedTest() - { - try - { - // - // Key trans - // - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(envDataKeyTrns)); - - ContentInfo info = ContentInfo.getInstance(aIn.readObject()); - EnvelopedData envData = EnvelopedData.getInstance(info.getContent()); - ASN1Set s = envData.getRecipientInfos(); - - if (s.size() != 1) - { - return new SimpleTestResult(false, getName() + ": CMS KeyTrans enveloped, wrong number of recipients"); - } - - RecipientInfo recip = RecipientInfo.getInstance(s.getObjectAt(0)); - - if (recip.getInfo() instanceof KeyTransRecipientInfo) - { - KeyTransRecipientInfo inf = KeyTransRecipientInfo.getInstance(recip.getInfo()); - - inf = new KeyTransRecipientInfo(inf.getRecipientIdentifier(), inf.getKeyEncryptionAlgorithm(), inf.getEncryptedKey()); - - s = new DERSet(new RecipientInfo(inf)); - } - else - { - return new SimpleTestResult(false, getName() + ": CMS KeyTrans enveloped, wrong recipient type"); - } - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - envData = new EnvelopedData(envData.getOriginatorInfo(), s, envData.getEncryptedContentInfo(), envData.getUnprotectedAttrs()); - info = new ContentInfo(CMSObjectIdentifiers.envelopedData, envData); - - aOut.writeObject(info); - - if (!isSameAs(bOut.toByteArray(), envDataKeyTrns)) - { - return new SimpleTestResult(false, getName() + ": CMS KeyTrans enveloped failed to re-encode"); - } - - // - // KEK - // - aIn = new ASN1InputStream(new ByteArrayInputStream(envDataKEK)); - - info = ContentInfo.getInstance(aIn.readObject()); - envData = EnvelopedData.getInstance(info.getContent()); - s = envData.getRecipientInfos(); - - if (s.size() != 1) - { - return new SimpleTestResult(false, getName() + ": CMS KEK enveloped, wrong number of recipients"); - } - - recip = RecipientInfo.getInstance(s.getObjectAt(0)); - - if (recip.getInfo() instanceof KEKRecipientInfo) - { - KEKRecipientInfo inf = KEKRecipientInfo.getInstance(recip.getInfo()); - - inf = new KEKRecipientInfo(inf.getKekid(), inf.getKeyEncryptionAlgorithm(), inf.getEncryptedKey()); - - s = new DERSet(new RecipientInfo(inf)); - } - else - { - return new SimpleTestResult(false, getName() + ": CMS KEK enveloped, wrong recipient type"); - } - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - envData = new EnvelopedData(envData.getOriginatorInfo(), s, envData.getEncryptedContentInfo(), envData.getUnprotectedAttrs()); - info = new ContentInfo(CMSObjectIdentifiers.envelopedData, envData); - - aOut.writeObject(info); - - if (!isSameAs(bOut.toByteArray(), envDataKEK)) - { System.out.println(new String(Base64.encode(bOut.toByteArray()))); - return new SimpleTestResult(false, getName() + ": CMS KEK enveloped failed to re-encode"); - } - - // Nested NDEF problem - ASN1StreamParser asn1In = new ASN1StreamParser(new ByteArrayInputStream(envDataNestedNDEF)); - ContentInfoParser ci = new ContentInfoParser((ASN1SequenceParser)asn1In.readObject()); - EnvelopedDataParser ed = new EnvelopedDataParser((ASN1SequenceParser)ci - .getContent(BERTags.SEQUENCE)); - ed.getVersion(); - ed.getOriginatorInfo(); - ed.getRecipientInfos().toASN1Primitive(); - EncryptedContentInfoParser eci = ed.getEncryptedContentInfo(); - eci.getContentType(); - eci.getContentEncryptionAlgorithm(); - - InputStream dataIn = ((ASN1OctetStringParser)eci.getEncryptedContent(BERTags.OCTET_STRING)) - .getOctetStream(); - Streams.drain(dataIn); - dataIn.close(); - - // Test data doesn't have unprotected attrs, bug was being thrown by this call - ASN1SetParser upa = ed.getUnprotectedAttrs(); - if (upa != null) - { - upa.toASN1Primitive(); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": CMS enveloped failed - " + e.toString(), e); - } - } - - private TestResult signedTest() - { - try - { - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(signedData)); - - ContentInfo info = ContentInfo.getInstance(aIn.readObject()); - SignedData sData = SignedData.getInstance(info.getContent()); - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - sData = new SignedData(sData.getDigestAlgorithms(), sData.getEncapContentInfo(), sData.getCertificates(), sData.getCRLs(), sData.getSignerInfos()); - info = new ContentInfo(CMSObjectIdentifiers.signedData, sData); - - aOut.writeObject(info); - - if (!isSameAs(bOut.toByteArray(), signedData)) - { - return new SimpleTestResult(false, getName() + ": CMS signed failed to re-encode"); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": CMS signed failed - " + e.toString(), e); - } - } - - public TestResult perform() - { - TestResult res = compressionTest(); - - if (!res.isSuccessful()) - { - return res; - } - - res = envelopedTest(); - if (!res.isSuccessful()) - { - return res; - } - - return signedTest(); - } - - public String getName() - { - return "CMS"; - } - - public static void main( - String[] args) - { - CMSTest test = new CMSTest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/CertHashUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/CertHashUnitTest.java deleted file mode 100644 index 62c81d4..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/CertHashUnitTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.isismtt.ocsp.CertHash; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; - -public class CertHashUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "CertHash"; - } - - public void performTest() - throws Exception - { - AlgorithmIdentifier algId = new AlgorithmIdentifier(new ASN1ObjectIdentifier("1.2.2.3")); - byte[] digest = new byte[20]; - - CertHash certID = new CertHash(algId, digest); - - checkConstruction(certID, algId, digest); - - certID = CertHash.getInstance(null); - - if (certID != null) - { - fail("null getInstance() failed."); - } - - try - { - CertHash.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - CertHash certHash, - AlgorithmIdentifier algId, - byte[] digest) - throws IOException - { - checkValues(certHash, algId, digest); - - certHash = CertHash.getInstance(certHash); - - checkValues(certHash, algId, digest); - - ASN1InputStream aIn = new ASN1InputStream(certHash.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - certHash = CertHash.getInstance(seq); - - checkValues(certHash, algId, digest); - } - - private void checkValues( - CertHash certHash, - AlgorithmIdentifier algId, - byte[] digest) - { - checkMandatoryField("algorithmHash", algId, certHash.getHashAlgorithm()); - - checkMandatoryField("certificateHash", digest, certHash.getCertificateHash()); - } - - public static void main( - String[] args) - { - runTest(new CertHashUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/CertificateTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/CertificateTest.java deleted file mode 100644 index 6aa8cef..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/CertificateTest.java +++ /dev/null @@ -1,602 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.util.Enumeration; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1OctetString; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.AttCertIssuer; -import org.bouncycastle.asn1.x509.AttCertValidityPeriod; -import org.bouncycastle.asn1.x509.Attribute; -import org.bouncycastle.asn1.x509.AttributeCertificate; -import org.bouncycastle.asn1.x509.AttributeCertificateInfo; -import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier; -import org.bouncycastle.asn1.x509.BasicConstraints; -import org.bouncycastle.asn1.x509.CRLDistPoint; -import org.bouncycastle.asn1.x509.Certificate; -import org.bouncycastle.asn1.x509.DistributionPoint; -import org.bouncycastle.asn1.x509.ExtendedKeyUsage; -import org.bouncycastle.asn1.x509.Extension; -import org.bouncycastle.asn1.x509.Extensions; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.GeneralNames; -import org.bouncycastle.asn1.x509.Holder; -import org.bouncycastle.asn1.x509.KeyPurposeId; -import org.bouncycastle.asn1.x509.KeyUsage; -import org.bouncycastle.asn1.x509.PolicyInformation; -import org.bouncycastle.asn1.x509.SubjectKeyIdentifier; -import org.bouncycastle.asn1.x509.TBSCertificate; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTest; - -public class CertificateTest - extends SimpleTest -{ - // - // server.crt - // - byte[] cert1 = Base64.decode( - "MIIDXjCCAsegAwIBAgIBBzANBgkqhkiG9w0BAQQFADCBtzELMAkGA1UEBhMCQVUx" - + "ETAPBgNVBAgTCFZpY3RvcmlhMRgwFgYDVQQHEw9Tb3V0aCBNZWxib3VybmUxGjAY" - + "BgNVBAoTEUNvbm5lY3QgNCBQdHkgTHRkMR4wHAYDVQQLExVDZXJ0aWZpY2F0ZSBB" - + "dXRob3JpdHkxFTATBgNVBAMTDENvbm5lY3QgNCBDQTEoMCYGCSqGSIb3DQEJARYZ" - + "d2VibWFzdGVyQGNvbm5lY3Q0LmNvbS5hdTAeFw0wMDA2MDIwNzU2MjFaFw0wMTA2" - + "MDIwNzU2MjFaMIG4MQswCQYDVQQGEwJBVTERMA8GA1UECBMIVmljdG9yaWExGDAW" - + "BgNVBAcTD1NvdXRoIE1lbGJvdXJuZTEaMBgGA1UEChMRQ29ubmVjdCA0IFB0eSBM" - + "dGQxFzAVBgNVBAsTDldlYnNlcnZlciBUZWFtMR0wGwYDVQQDExR3d3cyLmNvbm5l" - + "Y3Q0LmNvbS5hdTEoMCYGCSqGSIb3DQEJARYZd2VibWFzdGVyQGNvbm5lY3Q0LmNv" - + "bS5hdTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArvDxclKAhyv7Q/Wmr2re" - + "Gw4XL9Cnh9e+6VgWy2AWNy/MVeXdlxzd7QAuc1eOWQkGQEiLPy5XQtTY+sBUJ3AO" - + "Rvd2fEVJIcjf29ey7bYua9J/vz5MG2KYo9/WCHIwqD9mmG9g0xLcfwq/s8ZJBswE" - + "7sb85VU+h94PTvsWOsWuKaECAwEAAaN3MHUwJAYDVR0RBB0wG4EZd2VibWFzdGVy" - + "QGNvbm5lY3Q0LmNvbS5hdTA6BglghkgBhvhCAQ0ELRYrbW9kX3NzbCBnZW5lcmF0" - + "ZWQgY3VzdG9tIHNlcnZlciBjZXJ0aWZpY2F0ZTARBglghkgBhvhCAQEEBAMCBkAw" - + "DQYJKoZIhvcNAQEEBQADgYEAotccfKpwSsIxM1Hae8DR7M/Rw8dg/RqOWx45HNVL" - + "iBS4/3N/TO195yeQKbfmzbAA2jbPVvIvGgTxPgO1MP4ZgvgRhasaa0qCJCkWvpM4" - + "yQf33vOiYQbpv4rTwzU8AmRlBG45WdjyNIigGV+oRc61aKCTnLq7zB8N3z1TF/bF" - + "5/8="); - - // - // ca.crt - // - byte[] cert2 = Base64.decode( - "MIIDbDCCAtWgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBtzELMAkGA1UEBhMCQVUx" - + "ETAPBgNVBAgTCFZpY3RvcmlhMRgwFgYDVQQHEw9Tb3V0aCBNZWxib3VybmUxGjAY" - + "BgNVBAoTEUNvbm5lY3QgNCBQdHkgTHRkMR4wHAYDVQQLExVDZXJ0aWZpY2F0ZSBB" - + "dXRob3JpdHkxFTATBgNVBAMTDENvbm5lY3QgNCBDQTEoMCYGCSqGSIb3DQEJARYZ" - + "d2VibWFzdGVyQGNvbm5lY3Q0LmNvbS5hdTAeFw0wMDA2MDIwNzU1MzNaFw0wMTA2" - + "MDIwNzU1MzNaMIG3MQswCQYDVQQGEwJBVTERMA8GA1UECBMIVmljdG9yaWExGDAW" - + "BgNVBAcTD1NvdXRoIE1lbGJvdXJuZTEaMBgGA1UEChMRQ29ubmVjdCA0IFB0eSBM" - + "dGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhvcml0eTEVMBMGA1UEAxMMQ29u" - + "bmVjdCA0IENBMSgwJgYJKoZIhvcNAQkBFhl3ZWJtYXN0ZXJAY29ubmVjdDQuY29t" - + "LmF1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgs5ptNG6Qv1ZpCDuUNGmv" - + "rhjqMDPd3ri8JzZNRiiFlBA4e6/ReaO1U8ASewDeQMH6i9R6degFdQRLngbuJP0s" - + "xcEE+SksEWNvygfzLwV9J/q+TQDyJYK52utb++lS0b48A1KPLwEsyL6kOAgelbur" - + "ukwxowprKUIV7Knf1ajetQIDAQABo4GFMIGCMCQGA1UdEQQdMBuBGXdlYm1hc3Rl" - + "ckBjb25uZWN0NC5jb20uYXUwDwYDVR0TBAgwBgEB/wIBADA2BglghkgBhvhCAQ0E" - + "KRYnbW9kX3NzbCBnZW5lcmF0ZWQgY3VzdG9tIENBIGNlcnRpZmljYXRlMBEGCWCG" - + "SAGG+EIBAQQEAwICBDANBgkqhkiG9w0BAQQFAAOBgQCsGvfdghH8pPhlwm1r3pQk" - + "msnLAVIBb01EhbXm2861iXZfWqGQjrGAaA0ZpXNk9oo110yxoqEoSJSzniZa7Xtz" - + "soTwNUpE0SLHvWf/SlKdFWlzXA+vOZbzEv4UmjeelekTm7lc01EEa5QRVzOxHFtQ" - + "DhkaJ8VqOMajkQFma2r9iA=="); - - // - // testx509.pem - // - byte[] cert3 = Base64.decode( - "MIIBWzCCAQYCARgwDQYJKoZIhvcNAQEEBQAwODELMAkGA1UEBhMCQVUxDDAKBgNV" - + "BAgTA1FMRDEbMBkGA1UEAxMSU1NMZWF5L3JzYSB0ZXN0IENBMB4XDTk1MDYxOTIz" - + "MzMxMloXDTk1MDcxNzIzMzMxMlowOjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA1FM" - + "RDEdMBsGA1UEAxMUU1NMZWF5L3JzYSB0ZXN0IGNlcnQwXDANBgkqhkiG9w0BAQEF" - + "AANLADBIAkEAqtt6qS5GTxVxGZYWa0/4u+IwHf7p2LNZbcPBp9/OfIcYAXBQn8hO" - + "/Re1uwLKXdCjIoaGs4DLdG88rkzfyK5dPQIDAQABMAwGCCqGSIb3DQIFBQADQQAE" - + "Wc7EcF8po2/ZO6kNCwK/ICH6DobgLekA5lSLr5EvuioZniZp5lFzAw4+YzPQ7XKJ" - + "zl9HYIMxATFyqSiD9jsx"); - - // - // v3-cert1.pem - // - byte[] cert4 = Base64.decode( - "MIICjTCCAfigAwIBAgIEMaYgRzALBgkqhkiG9w0BAQQwRTELMAkGA1UEBhMCVVMx" - + "NjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFuZCBTcGFjZSBBZG1pbmlz" - + "dHJhdGlvbjAmFxE5NjA1MjgxMzQ5MDUrMDgwMBcROTgwNTI4MTM0OTA1KzA4MDAw" - + "ZzELMAkGA1UEBhMCVVMxNjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFu" - + "ZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEgMAkGA1UEBRMCMTYwEwYDVQQDEwxTdGV2" - + "ZSBTY2hvY2gwWDALBgkqhkiG9w0BAQEDSQAwRgJBALrAwyYdgxmzNP/ts0Uyf6Bp" - + "miJYktU/w4NG67ULaN4B5CnEz7k57s9o3YY3LecETgQ5iQHmkwlYDTL2fTgVfw0C" - + "AQOjgaswgagwZAYDVR0ZAQH/BFowWDBWMFQxCzAJBgNVBAYTAlVTMTYwNAYDVQQK" - + "Ey1OYXRpb25hbCBBZXJvbmF1dGljcyBhbmQgU3BhY2UgQWRtaW5pc3RyYXRpb24x" - + "DTALBgNVBAMTBENSTDEwFwYDVR0BAQH/BA0wC4AJODMyOTcwODEwMBgGA1UdAgQR" - + "MA8ECTgzMjk3MDgyM4ACBSAwDQYDVR0KBAYwBAMCBkAwCwYJKoZIhvcNAQEEA4GB" - + "AH2y1VCEw/A4zaXzSYZJTTUi3uawbbFiS2yxHvgf28+8Js0OHXk1H1w2d6qOHH21" - + "X82tZXd/0JtG0g1T9usFFBDvYK8O0ebgz/P5ELJnBL2+atObEuJy1ZZ0pBDWINR3" - + "WkDNLCGiTkCKp0F5EWIrVDwh54NNevkCQRZita+z4IBO"); - - // - // v3-cert2.pem - // - byte[] cert5 = Base64.decode( - "MIICiTCCAfKgAwIBAgIEMeZfHzANBgkqhkiG9w0BAQQFADB9MQswCQYDVQQGEwJD" - + "YTEPMA0GA1UEBxMGTmVwZWFuMR4wHAYDVQQLExVObyBMaWFiaWxpdHkgQWNjZXB0" - + "ZWQxHzAdBgNVBAoTFkZvciBEZW1vIFB1cnBvc2VzIE9ubHkxHDAaBgNVBAMTE0Vu" - + "dHJ1c3QgRGVtbyBXZWIgQ0EwHhcNOTYwNzEyMTQyMDE1WhcNOTYxMDEyMTQyMDE1" - + "WjB0MSQwIgYJKoZIhvcNAQkBExVjb29rZUBpc3NsLmF0bC5ocC5jb20xCzAJBgNV" - + "BAYTAlVTMScwJQYDVQQLEx5IZXdsZXR0IFBhY2thcmQgQ29tcGFueSAoSVNTTCkx" - + "FjAUBgNVBAMTDVBhdWwgQS4gQ29va2UwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA" - + "6ceSq9a9AU6g+zBwaL/yVmW1/9EE8s5you1mgjHnj0wAILuoB3L6rm6jmFRy7QZT" - + "G43IhVZdDua4e+5/n1ZslwIDAQABo2MwYTARBglghkgBhvhCAQEEBAMCB4AwTAYJ" - + "YIZIAYb4QgENBD8WPVRoaXMgY2VydGlmaWNhdGUgaXMgb25seSBpbnRlbmRlZCBm" - + "b3IgZGVtb25zdHJhdGlvbiBwdXJwb3Nlcy4wDQYJKoZIhvcNAQEEBQADgYEAi8qc" - + "F3zfFqy1sV8NhjwLVwOKuSfhR/Z8mbIEUeSTlnH3QbYt3HWZQ+vXI8mvtZoBc2Fz" - + "lexKeIkAZXCesqGbs6z6nCt16P6tmdfbZF3I3AWzLquPcOXjPf4HgstkyvVBn0Ap" - + "jAFN418KF/Cx4qyHB4cjdvLrRjjQLnb2+ibo7QU="); - - byte[] cert6 = Base64.decode( - "MIIEDjCCAvagAwIBAgIEFAAq2jANBgkqhkiG9w0BAQUFADBLMSowKAYDVQQDEyFT" - + "dW4gTWljcm9zeXN0ZW1zIEluYyBDQSAoQ2xhc3MgQikxHTAbBgNVBAoTFFN1biBN" - + "aWNyb3N5c3RlbXMgSW5jMB4XDTA0MDIyOTAwNDMzNFoXDTA5MDMwMTAwNDMzNFow" - + "NzEdMBsGA1UEChMUU3VuIE1pY3Jvc3lzdGVtcyBJbmMxFjAUBgNVBAMTDXN0b3Jl" - + "LnN1bi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAP9ErzFT7MPg2bVV" - + "LNmHTgN4kmiRNlPpuLGWS7EDIXYBbLeSSOCp/e1ANcOGnsuf0WIq9ejd/CPyEfh4" - + "sWoVvQzpOfHZ/Jyei29PEuxzWT+4kQmCx3+sLK25lAnDFsz1KiFmB6Y3GJ/JSjpp" - + "L0Yy1R9YlIc82I8gSw44y5JDABW5AgMBAAGjggGQMIIBjDAOBgNVHQ8BAf8EBAMC" - + "BaAwHQYDVR0OBBYEFG1WB3PApZM7OPPVWJ31UrERaoKWMEcGA1UdIARAMD4wPAYL" - + "YIZIAYb3AIN9k18wLTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5zdW4uY29tL3Br" - + "aS9jcHMuaHRtbDCBhQYDVR0fBH4wfDB6oCegJYYjaHR0cDovL3d3dy5zdW4uY29t" - + "L3BraS9wa2lzbWljYS5jcmyiT6RNMEsxKjAoBgNVBAMTIVN1biBNaWNyb3N5c3Rl" - + "bXMgSW5jIENBIChDbGFzcyBCKTEdMBsGA1UEChMUU3VuIE1pY3Jvc3lzdGVtcyBJ" - + "bmMwHwYDVR0jBBgwFoAUT7ZnqR/EEBSgG6h1wdYMI5RiiWswVAYIKwYBBQUHAQEE" - + "SDBGMB0GCCsGAQUFBzABhhFodHRwOi8vdmEuc3VuLmNvbTAlBggrBgEFBQcwAYYZ" - + "aHR0cDovL3ZhLmNlbnRyYWwuc3VuLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDATAN" - + "BgkqhkiG9w0BAQUFAAOCAQEAq3byQgyU24tBpR07iQK7agm1zQyzDQ6itdbji0ln" - + "T7fOd5Pnp99iig8ovwWliNtXKAmgtJY60jWz7nEuk38AioZJhS+RPWIWX/+2PRV7" - + "s2aWTzM3n43BypD+jU2qF9c9kDWP/NW9K9IcrS7SfU/2MZVmiCMD/9FEL+CWndwE" - + "JJQ/oenXm44BFISI/NjV7fMckN8EayPvgtzQkD5KnEiggOD6HOrwTDFR+tmAEJ0K" - + "ZttQNwOzCOcEdxXTg6qBHUbONdL7bjTT5NzV+JR/bnfiCqHzdnGwfbHzhmrnXw8j" - + "QCVXcfBfL9++nmpNNRlnJMRdYGeCY6OAfh/PRo8/fXak1Q=="); - - byte[] cert7 = Base64.decode( - "MIIFJDCCBAygAwIBAgIKEcJZuwAAAAAABzANBgkqhkiG9w0BAQUFADAPMQ0wCwYD" - + "VQQDEwRNU0NBMB4XDTA0MDUyMjE2MTM1OFoXDTA1MDUyMjE2MjM1OFowaTEbMBkG" - + "CSqGSIb3DQEJCBMMMTkyLjE2OC4xLjMzMScwJQYJKoZIhvcNAQkCExhwaXhmaXJl" - + "d2FsbC5jaXNjb3BpeC5jb20xITAfBgNVBAMTGHBpeGZpcmV3YWxsLmNpc2NvcGl4" - + "LmNvbTB8MA0GCSqGSIb3DQEBAQUAA2sAMGgCYQCbcsY7vrjweXZiFQdhUafEjJV+" - + "HRy5UKmuCy0237ffmYrN+XNLw0h90cdCSK6KPZebd2E2Bc2UmTikc/FY8meBT3/E" - + "O/Osmywzi++Ur8/IrDvtuR1zd0c/xEPnV1ZRezkCAwEAAaOCAs4wggLKMAsGA1Ud" - + "DwQEAwIFoDAdBgNVHQ4EFgQUzJBSxkQiN9TKvhTMQ1/Aq4gZnHswHwYDVR0jBBgw" - + "FoAUMsxzXVh+5UKMNpwNHmqSfcRYfJ4wgfcGA1UdHwSB7zCB7DCB6aCB5qCB44aB" - + "r2xkYXA6Ly8vQ049TVNDQSxDTj1NQVVELENOPUNEUCxDTj1QdWJsaWMlMjBLZXkl" - + "MjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPWludCxE" - + "Qz1wcmltZWtleSxEQz1zZT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/" - + "b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGL2h0dHA6Ly9tYXVkLmlu" - + "dC5wcmltZWtleS5zZS9DZXJ0RW5yb2xsL01TQ0EuY3JsMIIBEAYIKwYBBQUHAQEE" - + "ggECMIH/MIGqBggrBgEFBQcwAoaBnWxkYXA6Ly8vQ049TVNDQSxDTj1BSUEsQ049" - + "UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJh" - + "dGlvbixEQz1pbnQsREM9cHJpbWVrZXksREM9c2U/Y0FDZXJ0aWZpY2F0ZT9iYXNl" - + "P29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwUAYIKwYBBQUHMAKG" - + "RGh0dHA6Ly9tYXVkLmludC5wcmltZWtleS5zZS9DZXJ0RW5yb2xsL01BVUQuaW50" - + "LnByaW1la2V5LnNlX01TQ0EuY3J0MCwGA1UdEQEB/wQiMCCCGHBpeGZpcmV3YWxs" - + "LmNpc2NvcGl4LmNvbYcEwKgBITA/BgkrBgEEAYI3FAIEMh4wAEkAUABTAEUAQwBJ" - + "AG4AdABlAHIAbQBlAGQAaQBhAHQAZQBPAGYAZgBsAGkAbgBlMA0GCSqGSIb3DQEB" - + "BQUAA4IBAQCa0asiPbObLJjpSz6ndJ7y4KOWMiuuBc/VQBnLr7RBCF3ZlZ6z1+e6" - + "dmv8se/z11NgateKfxw69IhLCriA960HEgX9Z61MiVG+DrCFpbQyp8+hPFHoqCZN" - + "b7upc8k2OtJW6KPaP9k0DW52YQDIky4Vb2rZeC4AMCorWN+KlndHhr1HFA14HxwA" - + "4Mka0FM6HNWnBV2UmTjBZMDr/OrGH1jLYIceAaZK0X2R+/DWXeeqIga8jwP5empq" - + "JetYnkXdtTbEh3xL0BX+mZl8vDI+/PGcwox/7YjFmyFWphRMxk9CZ3rF2/FQWMJP" - + "YqQpKiQOmQg5NAhcwffLAuVjVVibPYqi"); - - byte[] cert8 = Base64.decode( - "MIIB0zCCATwCAQEwbqBsMGekZTBjMQswCQYDVQQGEwJERTELMAkGA1UECBMCQlkx" - + "EzARBgNVBAcTClJlZ2Vuc2J1cmcxEDAOBgNVBAoTB0FDIFRlc3QxCzAJBgNVBAsT" - + "AkNBMRMwEQYDVQQDEwpBQyBUZXN0IENBAgEBoHYwdKRyMHAxCzAJBgNVBAYTAkRF" - + "MQswCQYDVQQIEwJCWTETMBEGA1UEBxMKUmVnZW5zYnVyZzESMBAGA1UEChMJQUMg" - + "SXNzdWVyMRowGAYDVQQLExFBQyBJc3N1ZXIgc2VjdGlvbjEPMA0GA1UEAxMGQUMg" - + "TWFuMA0GCSqGSIb3DQEBBQUAAgEBMCIYDzIwMDQxMTI2MTI1MjUxWhgPMjAwNDEy" - + "MzEyMzAwMDBaMBkwFwYDVRhIMRAwDoEMREFVMTIzNDU2Nzg5MA0GCSqGSIb3DQEB" - + "BQUAA4GBABd4Odx3yEMGL/BvItuT1RafNR2uuWuZbajg0pD6bshUsl+WCIfRiEkq" - + "lHMkpI7WqAZikdnAEQ5jQsVWEuVejWxR6gjejKxc0fb9qpIui7/GoI5Eh6dmG20e" - + "xbwJL3+6YYFrZwxR8cC5rPvWrblUR5XKJy+Zp/H5+t9iANnL1L8J"); - - // V1 attribute certificate - private static final byte[] attrCertv1 = Base64.decode( - "MIIFdDCCBFygXTBbMFOkUTBPMQswCQYDVQQGEwJERTEcMBoGA1UECgwTRGV1" - + "dHNjaGUgVGVsZWtvbSBBRzEiMCAGA1UEAwwZVGVsZVNlYyBQS1MgU2lnRyBD" - + "QSAxNzpQTgIEG1toDjBTpFEwTzELMAkGA1UEBhMCREUxHDAaBgNVBAoME0Rl" - + "dXRzY2hlIFRlbGVrb20gQUcxIjAgBgNVBAMMGVRlbGVTZWMgUEtTIFNpZ0cg" - + "Q0EgMjU6UE4wDQYJKoZIhvcNAQELBQACBCep3f0wIhgPMjAxMDA0MTIxMTI5" - + "MTJaGA8yMDEyMDQxMjEwNTkyOFowggGmMIIBogYFKyQIAwgxggGXDIIBk1Ro" - + "ZSBxdWFsaWZpZWQgc2lnbmF0dXJlIGF0IGhhbmQgaXMgcmVzdHJpY3RlZCB0" - + "byBwcmVzZW50aW5nIGludm9pY2VzIG9yIGNyZWRpdHMgdG8gY3VzdG9tZXJz" - + "IGFjY29yZGluZyB0byBFVSBDb3VuY2lsIGRpcmVjdGl2ZSAyMDAxLzExNS9F" - + "QyAoMjB0aCBEZWNlbWJlciAyMDAxKSBhbmQgR2VybWFuIFZBVCB0YXggKMKn" - + "MTQgVVN0RykuICBEaWUgdm9ybGllZ2VuZGUgcXVhbGlmaXppZXJ0ZSBTaWdu" - + "YXR1ciBpc3QgYXVmIGRpZSAgUHJhZXNlbnRhdGlvbiB2b24gUmVjaG51bmdl" - + "biBvZGVyIEd1dHNjaHJpZnRlbiBnZW1hZXNzIEVVIERpcmVrdGl2ZSAyMDAx" - + "LzExNS9FQyAoMjAuIERlemVtYmVyIDIwMDEpIHVuZCBkZXV0c2NoZW0gVW1z" - + "YXR6c3RldWVyZ2VzZXR6ICAowqcxNCBVU3RHKSBiZXNjaHJhZW5rdC4wggHB" - + "MB8GA1UdIwQYMBaAFM6i1yR/z8IikpxpU/Fdh8BPxhq8MEMGA1UdIAQ8MDow" - + "OAYFKyQIAQEwLzAtBggrBgEFBQcCARYhaHR0cDovL3Brcy50ZWxlc2VjLmRl" - + "L2Nwcy9jcHMucGRmMIIBBAYDVR0fBIH8MIH5MIH2oG2ga4Y1bGRhcDovL3Br" - + "cy1sZGFwLnRlbGVzZWMuZGUvbz1EZXV0c2NoZSBUZWxla29tIEFHLGM9ZGWG" - + "Mmh0dHA6Ly9wa3MudGVsZXNlYy5kZS90ZWxlc2VjL3NlcnZsZXQvZG93bmxv" - + "YWRfY3JsooGEpIGBMH8xCzAJBgNVBAYTAkRFMRwwGgYDVQQKFBNEZXV0c2No" - + "ZSBUZWxla29tIEFHMR8wHQYDVQQLFBZQcm9kdWt0emVudHJ1bSBUZWxlU2Vj" - + "MTEwDAYHAoIGAQoHFBMBMTAhBgNVBAMUGlRlbGVTZWMgUEtTIFNpZ0cgRElS" - + "IDM1OlBOMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL3Br" - + "cy50ZWxlc2VjLmRlL29jc3ByMBgGCCsGAQUFBwEDBAwwCjAIBgYEAI5GAQEw" - + "DQYJKoZIhvcNAQELBQADggEBAEz2OvU9YytJUKHMDQcND5njIyUXTkSrlWjV" - + "F28uwxVlveO4JPTAY7PvXy69HUuTPwlvqCfJIUF2RLPZFQx0wFto8ajC9v5X" - + "SqwQcINXRakpE6FPAdQFnH44TaIQWXW1hy9xr8GuD0uhQLTJGYqVzHfLoM8e" - + "llPNHUVhC7CEOxDb1PTHCUlQFNkFRmeeqzEVoj1F0pM6wI5zf8+w2WwrFPCD" - + "jrjEr/VoBRoEi/tKnsLq6oOkizUKT0KJEnSyYxoOa7euT1yX+Co94SPnMZi5" - + "qukHSj8Kiio6Jecl//qDPG/mHo1ro+8rH+rbze7EEfKMp5yeWCwXGthL9oYo" - + "RYl+UuI="); - - - // bad issuer certificate - private static final byte[] dudCert = Base64.decode( - "MIICLzCCAZgCBFp/9TowDQYJKoZIhvcNAQEFBQAwAjEAMB4XDTA4MDcyNTEzNTQ0" + - "MFoXDTEzMDgyNTA1MDAwMFowgboxCzAJBgNVBAYTAlVTMQ0wCwYDVQQIEwRJb3dh" + - "MRMwEQYDVQQHEwpEZXMgTW9pbmVzMT0wOwYDVQQKEzRTdGF0ZSBvZiBJb3dhLCBE" + - "ZXBhcnRtZW50IG9mIEFkbWluaXN0cmF0aXZlIFNlcnZpY2VzMSowKAYDVQQLEyFJ" + - "bmZvcm1hdGlvbiBUZWNobm9sb2d5IEVudGVycHJpc2UxHDAaBgNVBAMTE3d3dy5k" + - "b20uc3RhdGUuaWEudXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK0C7Jca" + - "C0RiD0hcBcPUdGc78y815yPuHGmF/A2K+3LbwfFXDhsY7ebRxHVfL7gt+nFBvJ2r" + - "MqDBIMHFB3vYdSnGbND41eso6cLnzkMVtSisG25Tat3F8BF/js54sa0mFEn4qMQ+" + - "6T6jxyPflsjKpmi6L7lfRdPNbBbKSmK9ik2lAgMBAAEwDQYJKoZIhvcNAQEFBQAD" + - "gYEAc9Rx95MiPzJiCn3nOoP+3PPQCGTyUcUWZfYKXuC7aOzMYUXes71Q3K1/W6Vy" + - "V2Tlrbj0KT8j2/kBmy8+7d5whnUklJNsH6VJMst3V4Uxvk3os+uaW0FHsW389sNY" + - "/5LdslDjfqV2nUc2GqDPn38PATL26SRJKlCvU2NagdID3WM=" - ); - - String[] subjects = - { - "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Webserver Team,CN=www2.connect4.com.au,E=webmaster@connect4.com.au", - "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Certificate Authority,CN=Connect 4 CA,E=webmaster@connect4.com.au", - "C=AU,ST=QLD,CN=SSLeay/rsa test cert", - "C=US,O=National Aeronautics and Space Administration,SERIALNUMBER=16+CN=Steve Schoch", - "E=cooke@issl.atl.hp.com,C=US,OU=Hewlett Packard Company (ISSL),CN=Paul A. Cooke", - "O=Sun Microsystems Inc,CN=store.sun.com", - "unstructuredAddress=192.168.1.33,unstructuredName=pixfirewall.ciscopix.com,CN=pixfirewall.ciscopix.com" - }; - - public String getName() - { - return "Certificate"; - } - - public void checkCertificate( - int id, - byte[] cert) - throws Exception - { - ByteArrayInputStream bIn = new ByteArrayInputStream(cert); - ASN1InputStream aIn = new ASN1InputStream(bIn); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); -// String dump = ASN1Dump.dumpAsString(seq); - - Certificate obj = Certificate.getInstance(seq); - TBSCertificate tbsCert = obj.getTBSCertificate(); - - if (!tbsCert.getSubject().toString().equals(subjects[id - 1])) - { - fail("failed subject test for certificate id " + id + " got " + tbsCert.getSubject().toString()); - } - - if (tbsCert.getVersionNumber() == 3) - { - Extensions ext = tbsCert.getExtensions(); - if (ext != null) - { - Enumeration en = ext.oids(); - while (en.hasMoreElements()) - { - ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier)en.nextElement(); - Extension extVal = ext.getExtension(oid); - - ASN1OctetString oct = extVal.getExtnValue(); - ASN1InputStream extIn = new ASN1InputStream(new ByteArrayInputStream(oct.getOctets())); - - if (oid.equals(Extension.subjectKeyIdentifier)) - { - SubjectKeyIdentifier si = SubjectKeyIdentifier.getInstance(extIn.readObject()); - - if (!si.equals(SubjectKeyIdentifier.fromExtensions(ext))) - { - fail("SubjectKeyIdentifier not matched"); - } - } - else if (oid.equals(Extension.keyUsage)) - { - KeyUsage ku = KeyUsage.getInstance(extIn.readObject()); - - if (!ku.equals(KeyUsage.fromExtensions(ext))) - { - fail("KeyUsage not matched"); - } - } - else if (oid.equals(Extension.extendedKeyUsage)) - { - ExtendedKeyUsage ku = ExtendedKeyUsage.getInstance(extIn.readObject()); - - ASN1Sequence sq = (ASN1Sequence)ku.toASN1Primitive(); - for (int i = 0; i != sq.size(); i++) - { - ASN1ObjectIdentifier p = ASN1ObjectIdentifier.getInstance(KeyPurposeId.getInstance(sq.getObjectAt(i))); - } - - if (!ku.equals(ExtendedKeyUsage.fromExtensions(ext))) - { - fail("ExtendedKeyUsage not matched"); - } - } - else if (oid.equals(Extension.subjectAlternativeName)) - { - GeneralNames gn = GeneralNames.getInstance(extIn.readObject()); - - ASN1Sequence sq = (ASN1Sequence)gn.toASN1Primitive(); - for (int i = 0; i != sq.size(); i++) - { - GeneralName n = GeneralName.getInstance(sq.getObjectAt(i)); - } - } - else if (oid.equals(Extension.issuerAlternativeName)) - { - GeneralNames gn = GeneralNames.getInstance(extIn.readObject()); - - ASN1Sequence sq = (ASN1Sequence)gn.toASN1Primitive(); - for (int i = 0; i != sq.size(); i++) - { - GeneralName n = GeneralName.getInstance(sq.getObjectAt(i)); - } - } - else if (oid.equals(Extension.cRLDistributionPoints)) - { - CRLDistPoint p = CRLDistPoint.getInstance(extIn.readObject()); - - DistributionPoint[] points = p.getDistributionPoints(); - for (int i = 0; i != points.length; i++) - { - // do nothing - } - } - else if (oid.equals(Extension.certificatePolicies)) - { - ASN1Sequence cp = (ASN1Sequence)extIn.readObject(); - - for (int i = 0; i != cp.size(); i++) - { - PolicyInformation.getInstance(cp.getObjectAt(i)); - } - } - else if (oid.equals(Extension.authorityKeyIdentifier)) - { - AuthorityKeyIdentifier auth = AuthorityKeyIdentifier.getInstance(extIn.readObject()); - - if (!auth.equals(AuthorityKeyIdentifier.fromExtensions(ext))) - { - fail("AuthorityKeyIdentifier not matched"); - } - } - else if (oid.equals(Extension.basicConstraints)) - { - BasicConstraints bc = BasicConstraints.getInstance(extIn.readObject()); - - if (!bc.equals(BasicConstraints.fromExtensions(ext))) - { - fail("BasicConstraints not matched"); - } - } - else - { - //System.out.println(oid.getId()); - } - } - } - } - } - - - public void checkAttributeCertificate( - int id, - byte[] cert) - throws Exception - { - ByteArrayInputStream bIn; - ASN1InputStream aIn; - - bIn = new ByteArrayInputStream(cert); - aIn = new ASN1InputStream(bIn); - - ASN1Sequence seq = (ASN1Sequence) aIn.readObject(); -// String dump = ASN1Dump.dumpAsString(seq); - - AttributeCertificate obj = AttributeCertificate.getInstance(seq); - AttributeCertificateInfo acInfo = obj.getAcinfo(); - - // Version - if (!(acInfo.getVersion().equals(new ASN1Integer(1))) - && (!(acInfo.getVersion().equals(new ASN1Integer(2))))) - { - fail( - "failed AC Version test for id " + id); - } - - // Holder - Holder h = acInfo.getHolder(); - if (h == null) - { - fail( - "failed AC Holder test, it's null, for id " + id); - } - - // Issuer - AttCertIssuer aci = acInfo.getIssuer(); - if (aci == null) - { - fail( - "failed AC Issuer test, it's null, for id " + id); - } - - // Signature - AlgorithmIdentifier sig = acInfo.getSignature(); - if (sig == null) - { - fail( - "failed AC Signature test for id " + id); - } - - // Serial - ASN1Integer serial = acInfo.getSerialNumber(); - - // Validity - AttCertValidityPeriod validity = acInfo.getAttrCertValidityPeriod(); - if (validity == null) - { - fail("failed AC AttCertValidityPeriod test for id " + id); - } - - // Attributes - ASN1Sequence attribSeq = acInfo.getAttributes(); - Attribute att[] = new Attribute[attribSeq.size()]; - for (int i = 0; i < attribSeq.size(); i++) - { - att[i] = Attribute.getInstance(attribSeq.getObjectAt(i)); - } - - // IssuerUniqueId - // TODO, how to best test? - - // X509 Extensions - Extensions ext = acInfo.getExtensions(); - if (ext != null) - { - Enumeration en = ext.oids(); - while (en.hasMoreElements()) - { - ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier) en - .nextElement(); - Extension extVal = ext.getExtension(oid); - } - } - } - - public void checkV1AttributeCertificate( - int id, - byte[] cert) - throws Exception - { - ByteArrayInputStream bIn; - ASN1InputStream aIn; - - bIn = new ByteArrayInputStream(cert); - aIn = new ASN1InputStream(bIn); - - ASN1Sequence seq = (ASN1Sequence) aIn.readObject(); - //String dump = ASN1Dump.dumpAsString(seq); - - AttributeCertificate obj = AttributeCertificate.getInstance(seq); - AttributeCertificateInfo acInfo = obj.getAcinfo(); - - // Version - if (!(acInfo.getVersion().equals(new ASN1Integer(0)))) - { - fail( - "failed AC Version test for id " + id); - } - - // Holder - Holder h = acInfo.getHolder(); - if (h == null) - { - fail( - "failed AC Holder test, it's null, for id " + id); - } - - // Issuer - AttCertIssuer aci = acInfo.getIssuer(); - if (aci == null) - { - fail( - "failed AC Issuer test, it's null, for id " + id); - } - - // Signature - AlgorithmIdentifier sig = acInfo.getSignature(); - if (sig == null) - { - fail( - "failed AC Signature test for id " + id); - } - - // Serial - ASN1Integer serial = acInfo.getSerialNumber(); - - // Validity - AttCertValidityPeriod validity = acInfo.getAttrCertValidityPeriod(); - if (validity == null) - { - fail("failed AC AttCertValidityPeriod test for id " + id); - } - - // Attributes - ASN1Sequence attribSeq = acInfo.getAttributes(); - Attribute att[] = new Attribute[attribSeq.size()]; - for (int i = 0; i < attribSeq.size(); i++) - { - att[i] = Attribute.getInstance(attribSeq.getObjectAt(i)); - } - - // IssuerUniqueId - // TODO, how to best test? - - // X509 Extensions - Extensions ext = acInfo.getExtensions(); - if (ext != null) - { - Enumeration en = ext.oids(); - while (en.hasMoreElements()) - { - ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier) en - .nextElement(); - Extension extVal = ext.getExtension(oid); - } - } - } - - private void checkDudCertificate() - { - Certificate cert = Certificate.getInstance(dudCert); - - if (!"".equals(cert.getIssuer().toString())) - { - fail("empty issuer not recognised correctly"); - } - } - - public void performTest() - throws Exception - { - checkCertificate(1, cert1); - checkCertificate(2, cert2); - checkCertificate(3, cert3); - checkCertificate(4, cert4); - checkCertificate(5, cert5); - checkCertificate(6, cert6); - checkCertificate(7, cert7); - checkAttributeCertificate(8,cert8); - checkV1AttributeCertificate(9, attrCertv1); - checkDudCertificate(); - } - - public static void main( - String[] args) - { - runTest(new CertificateTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/CommitmentTypeIndicationUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/CommitmentTypeIndicationUnitTest.java deleted file mode 100644 index 0ce1c23..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/CommitmentTypeIndicationUnitTest.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.esf.CommitmentTypeIdentifier; -import org.bouncycastle.asn1.esf.CommitmentTypeIndication; -import org.bouncycastle.util.test.SimpleTest; - -public class CommitmentTypeIndicationUnitTest - extends SimpleTest -{ - public String getName() - { - return "CommitmentTypeIndication"; - } - - public void performTest() - throws Exception - { - CommitmentTypeIndication cti = new CommitmentTypeIndication(CommitmentTypeIdentifier.proofOfOrigin); - - checkConstruction(cti, CommitmentTypeIdentifier.proofOfOrigin, null); - - ASN1Sequence qualifier = new DERSequence(new ASN1ObjectIdentifier("1.2")); - - cti = new CommitmentTypeIndication(CommitmentTypeIdentifier.proofOfOrigin, qualifier); - - checkConstruction(cti, CommitmentTypeIdentifier.proofOfOrigin, qualifier); - - cti = CommitmentTypeIndication.getInstance(null); - - if (cti != null) - { - fail("null getInstance() failed."); - } - - try - { - CommitmentTypeIndication.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - CommitmentTypeIndication mv, - ASN1ObjectIdentifier commitmenttTypeId, - ASN1Encodable qualifier) - throws IOException - { - checkStatement(mv, commitmenttTypeId, qualifier); - - mv = CommitmentTypeIndication.getInstance(mv); - - checkStatement(mv, commitmenttTypeId, qualifier); - - ASN1InputStream aIn = new ASN1InputStream(mv.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - mv = CommitmentTypeIndication.getInstance(seq); - - checkStatement(mv, commitmenttTypeId, qualifier); - } - - private void checkStatement( - CommitmentTypeIndication cti, - ASN1ObjectIdentifier commitmentTypeId, - ASN1Encodable qualifier) - { - if (!cti.getCommitmentTypeId().equals(commitmentTypeId)) - { - fail("commitmentTypeIds don't match."); - } - - if (qualifier != null) - { - if (!cti.getCommitmentTypeQualifier().equals(qualifier)) - { - fail("qualifiers don't match."); - } - } - else if (cti.getCommitmentTypeQualifier() != null) - { - fail("qualifier found when none expected."); - } - } - - public static void main( - String[] args) - { - runTest(new CommitmentTypeIndicationUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/CommitmentTypeQualifierUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/CommitmentTypeQualifierUnitTest.java deleted file mode 100644 index 2d782ba..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/CommitmentTypeQualifierUnitTest.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.esf.CommitmentTypeIdentifier; -import org.bouncycastle.asn1.esf.CommitmentTypeQualifier; -import org.bouncycastle.util.test.SimpleTest; - -public class CommitmentTypeQualifierUnitTest - extends SimpleTest -{ - public String getName() - { - return "CommitmentTypeQualifier"; - } - - public void performTest() - throws Exception - { - CommitmentTypeQualifier ctq = new CommitmentTypeQualifier(CommitmentTypeIdentifier.proofOfOrigin); - - checkConstruction(ctq, CommitmentTypeIdentifier.proofOfOrigin, null); - - ASN1Encodable info = new ASN1ObjectIdentifier("1.2"); - - ctq = new CommitmentTypeQualifier(CommitmentTypeIdentifier.proofOfOrigin, info); - - checkConstruction(ctq, CommitmentTypeIdentifier.proofOfOrigin, info); - - ctq = CommitmentTypeQualifier.getInstance(null); - - if (ctq != null) - { - fail("null getInstance() failed."); - } - - try - { - CommitmentTypeQualifier.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - CommitmentTypeQualifier mv, - ASN1ObjectIdentifier commitmenttTypeId, - ASN1Encodable qualifier) - throws IOException - { - checkStatement(mv, commitmenttTypeId, qualifier); - - mv = CommitmentTypeQualifier.getInstance(mv); - - checkStatement(mv, commitmenttTypeId, qualifier); - - ASN1InputStream aIn = new ASN1InputStream(mv.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - mv = CommitmentTypeQualifier.getInstance(seq); - - checkStatement(mv, commitmenttTypeId, qualifier); - } - - private void checkStatement( - CommitmentTypeQualifier ctq, - ASN1ObjectIdentifier commitmentTypeId, - ASN1Encodable qualifier) - { - if (!ctq.getCommitmentTypeIdentifier().equals(commitmentTypeId)) - { - fail("commitmentTypeIds don't match."); - } - - if (qualifier != null) - { - if (!ctq.getQualifier().equals(qualifier)) - { - fail("qualifiers don't match."); - } - } - else if (ctq.getQualifier() != null) - { - fail("qualifier found when none expected."); - } - } - - public static void main( - String[] args) - { - runTest(new CommitmentTypeQualifierUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ContentHintsUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ContentHintsUnitTest.java deleted file mode 100644 index 1ae15e7..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ContentHintsUnitTest.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.asn1.ess.ContentHints; - -public class ContentHintsUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "ContentHints"; - } - - public void performTest() - throws Exception - { - DERUTF8String contentDescription = new DERUTF8String("Description"); - ASN1ObjectIdentifier contentType = new ASN1ObjectIdentifier("1.2.2.3"); - - ContentHints hints = new ContentHints(contentType); - - checkConstruction(hints, contentType, null); - - hints = new ContentHints(contentType, contentDescription); - - checkConstruction(hints, contentType, contentDescription); - - hints = ContentHints.getInstance(null); - - if (hints != null) - { - fail("null getInstance() failed."); - } - - try - { - ContentHints.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - ContentHints hints, - ASN1ObjectIdentifier contentType, - DERUTF8String description) - throws IOException - { - checkValues(hints, contentType, description); - - hints = ContentHints.getInstance(hints); - - checkValues(hints, contentType, description); - - ASN1InputStream aIn = new ASN1InputStream(hints.toASN1Primitive().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - hints = ContentHints.getInstance(seq); - - checkValues(hints, contentType, description); - } - - private void checkValues( - ContentHints hints, - ASN1ObjectIdentifier contentType, - DERUTF8String description) - { - checkMandatoryField("contentType", contentType, hints.getContentType()); - checkOptionalField("description", description, hints.getContentDescription()); - } - - public static void main( - String[] args) - { - runTest(new ContentHintsUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/CscaMasterListTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/CscaMasterListTest.java deleted file mode 100644 index c870069..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/CscaMasterListTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.icao.CscaMasterList; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.io.Streams; -import org.bouncycastle.util.test.SimpleTest; - -public class CscaMasterListTest - extends SimpleTest -{ - public String getName() - { - return "CscaMasterList"; - } - - public void performTest() - throws Exception - { - byte[] input = getInput("masterlist-content.data"); - CscaMasterList parsedList - = CscaMasterList.getInstance(ASN1Primitive.fromByteArray(input)); - - if (parsedList.getCertStructs().length != 3) - { - fail("Cert structure parsing failed: incorrect length"); - } - - byte[] output = parsedList.getEncoded(); - if (!Arrays.areEqual(input, output)) - { - fail("Encoding failed after parse"); - } - } - - private byte[] getInput(String name) - throws IOException - { - return Streams.readAll(getClass().getResourceAsStream(name)); - } - - public static void main( - String[] args) - { - runTest(new CscaMasterListTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/DERApplicationSpecificTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/DERApplicationSpecificTest.java deleted file mode 100644 index 2e047de..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/DERApplicationSpecificTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1Encoding; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.BERTags; -import org.bouncycastle.asn1.DERApplicationSpecific; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -public class DERApplicationSpecificTest - extends SimpleTest -{ - private static final byte[] impData = Hex.decode("430109"); - - private static final byte[] certData = Hex.decode( - "7F218201897F4E8201495F290100420E44454356434145504153533030317F49" - + "81FD060A04007F00070202020202811CD7C134AA264366862A18302575D1D787" - + "B09F075797DA89F57EC8C0FF821C68A5E62CA9CE6C1C299803A6C1530B514E18" - + "2AD8B0042A59CAD29F43831C2580F63CCFE44138870713B1A92369E33E2135D2" - + "66DBB372386C400B8439040D9029AD2C7E5CF4340823B2A87DC68C9E4CE3174C" - + "1E6EFDEE12C07D58AA56F772C0726F24C6B89E4ECDAC24354B9E99CAA3F6D376" - + "1402CD851CD7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A793" - + "9F863904393EE8E06DB6C7F528F8B4260B49AA93309824D92CDB1807E5437EE2" - + "E26E29B73A7111530FA86B350037CB9415E153704394463797139E148701015F" - + "200E44454356434145504153533030317F4C0E060904007F0007030102015301" - + "C15F25060007000400015F24060009000400015F37384CCF25C59F3612EEE188" - + "75F6C5F2E2D21F0395683B532A26E4C189B71EFE659C3F26E0EB9AEAE9986310" - + "7F9B0DADA16414FFA204516AEE2B"); - - public String getName() - { - return "DERApplicationSpecific"; - } - - public void performTest() - throws Exception - { - ASN1Integer value = new ASN1Integer(9); - - DERApplicationSpecific tagged = new DERApplicationSpecific(false, 3, value); - - if (!areEqual(impData, tagged.getEncoded())) - { - fail("implicit encoding failed"); - } - - ASN1Integer recVal = (ASN1Integer)tagged.getObject(BERTags.INTEGER); - - if (!value.equals(recVal)) - { - fail("implicit read back failed"); - } - - DERApplicationSpecific certObj = (DERApplicationSpecific) - ASN1Primitive.fromByteArray(certData); - - if (!certObj.isConstructed() || certObj.getApplicationTag() != 33) - { - fail("parsing of certificate data failed"); - } - - byte[] encoded = certObj.getEncoded(ASN1Encoding.DER); - - if (!Arrays.areEqual(certData, encoded)) - { - fail("re-encoding of certificate data failed"); - } - } - - public static void main( - String[] args) - { - runTest(new DERApplicationSpecificTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/DERUTF8StringTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/DERUTF8StringTest.java deleted file mode 100644 index 7e38d7d..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/DERUTF8StringTest.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.Strings; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class DERUTF8StringTest - implements Test -{ - - /** - * Unicode code point U+10400 coded as surrogate in two native Java UTF-16 - * code units - */ - private final static char[] glyph1_utf16 = { 0xd801, 0xdc00 }; - - /** - * U+10400 coded in UTF-8 - */ - private final static byte[] glyph1_utf8 = { (byte)0xF0, (byte)0x90, (byte)0x90, (byte)0x80 }; - - /** - * Unicode code point U+6771 in native Java UTF-16 - */ - private final static char[] glyph2_utf16 = { 0x6771 }; - - /** - * U+6771 coded in UTF-8 - */ - private final static byte[] glyph2_utf8 = { (byte)0xE6, (byte)0x9D, (byte)0xB1 }; - - /** - * Unicode code point U+00DF in native Java UTF-16 - */ - private final static char[] glyph3_utf16 = { 0x00DF }; - - /** - * U+00DF coded in UTF-8 - */ - private final static byte[] glyph3_utf8 = { (byte)0xC3, (byte)0x9f }; - - /** - * Unicode code point U+0041 in native Java UTF-16 - */ - private final static char[] glyph4_utf16 = { 0x0041 }; - - /** - * U+0041 coded in UTF-8 - */ - private final static byte[] glyph4_utf8 = { 0x41 }; - - private final static byte[][] glyphs_utf8 = { glyph1_utf8, glyph2_utf8, glyph3_utf8, glyph4_utf8 }; - - private final static char[][] glyphs_utf16 = { glyph1_utf16, glyph2_utf16, glyph3_utf16, glyph4_utf16 }; - - public TestResult perform() - { - try - { - for (int i = 0; i < glyphs_utf16.length; i++) - { - String s = new String(glyphs_utf16[i]); - byte[] b1 = new DERUTF8String(s).getEncoded(); - byte temp[] = new byte[b1.length - 2]; - System.arraycopy(b1, 2, temp, 0, b1.length - 2); - byte[] b2 = new DERUTF8String(Strings.fromUTF8ByteArray(new DEROctetString(temp).getOctets())).getEncoded(); - if (!Arrays.areEqual(b1, b2)) - { - return new SimpleTestResult(false, getName() + ": failed UTF-8 encoding and decoding"); - } - if (!Arrays.areEqual(temp, glyphs_utf8[i])) - { - return new SimpleTestResult(false, getName() + ": failed UTF-8 encoding and decoding"); - } - } - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": failed with Exception " + e.getMessage()); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - - public String getName() - { - return "DERUTF8String"; - } - - public static void main(String[] args) - { - DERUTF8StringTest test = new DERUTF8StringTest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/DataGroupHashUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/DataGroupHashUnitTest.java deleted file mode 100644 index 85f01e9..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/DataGroupHashUnitTest.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; -import java.util.Random; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1OctetString; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.icao.DataGroupHash; -import org.bouncycastle.util.test.SimpleTest; - -public class DataGroupHashUnitTest - extends SimpleTest -{ - public String getName() - { - return "DataGroupHash"; - } - - private byte[] generateHash() - { - Random rand = new Random(); - byte[] bytes = new byte[20]; - - for (int i = 0; i != bytes.length; i++) - { - bytes[i] = (byte)rand.nextInt(); - } - - return bytes; - } - - public void performTest() - throws Exception - { - int dataGroupNumber = 1; - ASN1OctetString dataHash = new DEROctetString(generateHash()); - DataGroupHash dg = new DataGroupHash(dataGroupNumber, dataHash); - - checkConstruction(dg, dataGroupNumber, dataHash); - - try - { - DataGroupHash.getInstance(null); - } - catch (Exception e) - { - fail("getInstance() failed to handle null."); - } - - try - { - DataGroupHash.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - DataGroupHash dg, - int dataGroupNumber, - ASN1OctetString dataGroupHashValue) - throws IOException - { - checkValues(dg, dataGroupNumber, dataGroupHashValue); - - dg = DataGroupHash.getInstance(dg); - - checkValues(dg, dataGroupNumber, dataGroupHashValue); - - ASN1InputStream aIn = new ASN1InputStream(dg.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - dg = DataGroupHash.getInstance(seq); - - checkValues(dg, dataGroupNumber, dataGroupHashValue); - } - - private void checkValues( - DataGroupHash dg, - int dataGroupNumber, - ASN1OctetString dataGroupHashValue) - { - if (dg.getDataGroupNumber() != dataGroupNumber) - { - fail("group number don't match."); - } - - if (!dg.getDataGroupHashValue().equals(dataGroupHashValue)) - { - fail("hash value don't match."); - } - } - - public static void main( - String[] args) - { - runTest(new DataGroupHashUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/DeclarationOfMajorityUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/DeclarationOfMajorityUnitTest.java deleted file mode 100644 index cd42340..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/DeclarationOfMajorityUnitTest.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1GeneralizedTime; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.DERTaggedObject; -import org.bouncycastle.asn1.isismtt.x509.DeclarationOfMajority; - -public class DeclarationOfMajorityUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "DeclarationOfMajority"; - } - - public void performTest() - throws Exception - { - ASN1GeneralizedTime dateOfBirth = new ASN1GeneralizedTime("20070315173729Z"); - DeclarationOfMajority decl = new DeclarationOfMajority(dateOfBirth); - - checkConstruction(decl, DeclarationOfMajority.dateOfBirth, dateOfBirth, -1); - - decl = new DeclarationOfMajority(6); - - checkConstruction(decl, DeclarationOfMajority.notYoungerThan, null, 6); - - decl = DeclarationOfMajority.getInstance(null); - - if (decl != null) - { - fail("null getInstance() failed."); - } - - try - { - DeclarationOfMajority.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - DeclarationOfMajority decl, - int type, - ASN1GeneralizedTime dateOfBirth, - int notYoungerThan) - throws IOException - { - checkValues(decl, type, dateOfBirth, notYoungerThan); - - decl = DeclarationOfMajority.getInstance(decl); - - checkValues(decl, type, dateOfBirth, notYoungerThan); - - ASN1InputStream aIn = new ASN1InputStream(decl.toASN1Object().getEncoded()); - - DERTaggedObject info = (DERTaggedObject)aIn.readObject(); - - decl = DeclarationOfMajority.getInstance(info); - - checkValues(decl, type, dateOfBirth, notYoungerThan); - } - - private void checkValues( - DeclarationOfMajority decl, - int type, - ASN1GeneralizedTime dateOfBirth, - int notYoungerThan) - { - checkMandatoryField("type", type, decl.getType()); - checkOptionalField("dateOfBirth", dateOfBirth, decl.getDateOfBirth()); - if (notYoungerThan != -1 && notYoungerThan != decl.notYoungerThan()) - { - fail("notYoungerThan mismatch"); - } - } - - public static void main( - String[] args) - { - runTest(new DeclarationOfMajorityUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ESSCertIDv2UnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ESSCertIDv2UnitTest.java deleted file mode 100644 index e8978ca..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ESSCertIDv2UnitTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ess.ESSCertIDv2; -import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; - -public class ESSCertIDv2UnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "ESSCertIDv2"; - } - - public void performTest() - throws Exception - { - // check getInstance on default algorithm. - byte[] digest = new byte [256]; - ESSCertIDv2 essCertIdv2 = new ESSCertIDv2(new AlgorithmIdentifier( - NISTObjectIdentifiers.id_sha256), digest); - ASN1Primitive asn1Object = essCertIdv2.toASN1Primitive(); - - ESSCertIDv2.getInstance(asn1Object); - } - - public static void main( - String[] args) - { - runTest(new ESSCertIDv2UnitTest()); - } -}
\ No newline at end of file diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/EncryptedPrivateKeyInfoTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/EncryptedPrivateKeyInfoTest.java deleted file mode 100644 index f4732cf..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/EncryptedPrivateKeyInfoTest.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DEROutputStream; -import org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo; -import org.bouncycastle.asn1.util.ASN1Dump; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTest; - -/** - * Test the reading and writing of EncryptedPrivateKeyInfo objects using - * the test vectors provided at - * <a href=http://www.rsasecurity.com/rsalabs/pkcs/pkcs-5/index.html> - * RSA's PKCS5 Page</a>. - * <br> - * The vectors are Base 64 encoded and encrypted using the password "password" - * (without quotes). They should all yield the same PrivateKeyInfo object. - */ -public class EncryptedPrivateKeyInfoTest - extends SimpleTest -{ - static byte[] sample1 = Base64.decode( - "MIIBozA9BgkqhkiG9w0BBQ0wMDAbBgkqhkiG9w0BBQwwDgQIfWBDXwLp4K4CAggA" - + "MBEGBSsOAwIHBAiaCF/AvOgQ6QSCAWDWX4BdAzCRNSQSANSuNsT5X8mWYO27mr3Y" - + "9c9LoBVXGNmYWKA77MI4967f7SmjNcgXj3xNE/jmnVz6hhsjS8E5VPT3kfyVkpdZ" - + "0lr5e9Yk2m3JWpPU7++v5zBkZmC4V/MwV/XuIs6U+vykgzMgpxQg0oZKS9zgmiZo" - + "f/4dOCL0UtCDnyOSvqT7mCVIcMDIEKu8QbVlgZYBop08l60EuEU3gARUo8WsYQmO" - + "Dz/ldx0Z+znIT0SXVuOwc+RVItC5T/Qx+aijmmpt+9l14nmaGBrEkmuhmtdvU/4v" - + "aptewGRgmjOfD6cqK+zs0O5NrrJ3P/6ZSxXj91CQgrThGfOv72bUncXEMNtc8pks" - + "2jpHFjGMdKufnadAD7XuMgzkkaklEXZ4f5tU6heIIwr51g0GBEGF96gYPFnjnSQM" - + "75JE02Clo+DfcfXpcybPTwwFg2jd6JTTOfkdf6OdSlA/1XNK43FA"); - - static byte[] sample2 = Base64.decode( - "MIIBpjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIeFeOWl1jywYCAggA" - + "MBQGCCqGSIb3DQMHBAjUJ5eGBhQGtQSCAWBrHrRgqO8UUMLcWzZEtpk1l3mjxiF/" - + "koCMkHsFwowgyWhEbgIkTgbSViK54LVK8PskekcGNLph+rB6bGZ7pPbL5pbXASJ8" - + "+MkQcG3FZdlS4Ek9tTJDApj3O1UubZGFG4uvTlJJFbF1BOJ3MkY3XQ9Gl1qwv7j5" - + "6e103Da7Cq9+oIDKmznza78XXQYrUsPo8mJGjUxPskEYlzwvHjKubRnYm/K6RKhi" - + "5f4zX4BQ/Dt3H812ZjRXrsjAJP0KrD/jyD/jCT7zNBVPH1izBds+RwizyQAHwfNJ" - + "BFR78TH4cgzB619X47FDVOnT0LqQNVd0O3cSwnPrXE9XR3tPayE+iOB15llFSmi8" - + "z0ByOXldEpkezCn92Umk++suzIVj1qfsK+bv2phZWJPbLEIWPDRHUbYf76q5ArAr" - + "u4xtxT/hoK3krEs/IN3d70qjlUJ36SEw1UaZ82PWhakQbdtu39ZraMJB"); - - static byte[] sample3 = Base64.decode( - "MIIBrjBIBgkqhkiG9w0BBQ0wOzAeBgkqhkiG9w0BBQwwEQQIrHyQPBZqWLUCAggA" - + "AgEQMBkGCCqGSIb3DQMCMA0CAToECEhbh7YZKiPSBIIBYCT1zp6o5jpFlIkgwPop" - + "7bW1+8ACr4exqzkeb3WflQ8cWJ4cURxzVdvxUnXeW1VJdaQZtjS/QHs5GhPTG/0f" - + "wtvnaPfwrIJ3FeGaZfcg2CrYhalOFmEb4xrE4KyoEQmUN8tb/Cg94uzd16BOPw21" - + "RDnE8bnPdIGY7TyL95kbkqH23mK53pi7h+xWIgduW+atIqDyyt55f7WMZcvDvlj6" - + "VpN/V0h+qxBHL274WA4dj6GYgeyUFpi60HdGCK7By2TBy8h1ZvKGjmB9h8jZvkx1" - + "MkbRumXxyFsowTZawyYvO8Um6lbfEDP9zIEUq0IV8RqH2MRyblsPNSikyYhxX/cz" - + "tdDxRKhilySbSBg5Kr8OfcwKp9bpinN96nmG4xr3Tch1bnVvqJzOQ5+Vva2WwVvH" - + "2JkWvYm5WaANg4Q6bRxu9vz7DuhbJjQdZbxFezIAgrJdSe92B00jO/0Kny1WjiVO" - + "6DA="); - - public String getName() - { - return "EncryptedPrivateKeyInfoTest"; - } - - private void test( - int id, - byte[] sample) - { - ByteArrayInputStream bIn = new ByteArrayInputStream(sample); - ASN1InputStream aIn = new ASN1InputStream(bIn); - EncryptedPrivateKeyInfo info = null; - - try - { - info = EncryptedPrivateKeyInfo.getInstance(aIn.readObject()); - } - catch (Exception e) - { - fail("test " + id + " failed construction - exception " + e.toString(), e); - } - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DEROutputStream dOut = new DEROutputStream(bOut); - - try - { - dOut.writeObject(info); - } - catch (Exception e) - { - fail("test " + id + " failed writing - exception " + e.toString(), e); - } - - byte[] bytes = bOut.toByteArray(); - - if (bytes.length != sample.length) - { - try - { - bIn = new ByteArrayInputStream(bytes); - aIn = new ASN1InputStream(bIn); - - ASN1Primitive obj = aIn.readObject(); - - fail("test " + id + " length mismatch - expected " + sample.length + System.getProperty("line.separator") + ASN1Dump.dumpAsString(info) + " got " + bytes.length + System.getProperty("line.separator") + ASN1Dump.dumpAsString(obj)); - } - catch (Exception e) - { - fail("test " + id + " length mismatch - exception " + e.toString()); - } - } - - for (int i = 0; i != bytes.length; i++) - { - if (bytes[i] != sample[i]) - { - fail("test " + id + " data mismatch"); - } - } - } - - public void performTest() - { - test(0, sample1); - test(1, sample2); - test(2, sample3); - } - - - public static void main( - String[] args) - { - runTest(new EncryptedPrivateKeyInfoTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/EnumeratedTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/EnumeratedTest.java deleted file mode 100644 index c1c3b3b..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/EnumeratedTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import junit.framework.TestCase; - -import org.bouncycastle.asn1.ASN1Boolean; -import org.bouncycastle.asn1.ASN1Enumerated; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.util.encoders.Hex; - -/** - * Tests used to verify correct decoding of the ENUMERATED type. - */ -public class EnumeratedTest - extends TestCase -{ - /** - * Test vector used to test decoding of multiple items. This sample uses an ENUMERATED and a BOOLEAN. - */ - private static final byte[] MultipleSingleByteItems = Hex.decode("30060a01010101ff"); - - /** - * Test vector used to test decoding of multiple items. This sample uses two ENUMERATEDs. - */ - private static final byte[] MultipleDoubleByteItems = Hex.decode("30080a0201010a020202"); - - /** - * Test vector used to test decoding of multiple items. This sample uses an ENUMERATED and an OBJECT IDENTIFIER. - */ - private static final byte[] MultipleTripleByteItems = Hex.decode("300a0a0301010106032b0601"); - - /** - * Makes sure multiple identically sized values are parsed correctly. - */ - public void testReadingMultipleSingleByteItems() - throws IOException - { - ASN1Primitive obj = ASN1Primitive.fromByteArray(MultipleSingleByteItems); - - assertTrue("Null ASN.1 SEQUENCE", obj instanceof ASN1Sequence); - - ASN1Sequence sequence = (ASN1Sequence)obj; - - assertEquals("2 items expected", 2, sequence.size()); - - ASN1Enumerated enumerated = ASN1Enumerated.getInstance(sequence.getObjectAt(0)); - - assertNotNull("ENUMERATED expected", enumerated); - - assertEquals("Unexpected ENUMERATED value", 1, enumerated.getValue().intValue()); - - ASN1Boolean b = ASN1Boolean.getInstance(sequence.getObjectAt(1)); - - assertNotNull("BOOLEAN expected", b); - - assertTrue("Unexpected BOOLEAN value", b.isTrue()); - } - - /** - * Makes sure multiple identically sized values are parsed correctly. - */ - public void testReadingMultipleDoubleByteItems() - throws IOException - { - ASN1Primitive obj = ASN1Primitive.fromByteArray(MultipleDoubleByteItems); - - assertTrue("Null ASN.1 SEQUENCE", obj instanceof ASN1Sequence); - - ASN1Sequence sequence = (ASN1Sequence)obj; - - assertEquals("2 items expected", 2, sequence.size()); - - ASN1Enumerated enumerated1 = ASN1Enumerated.getInstance(sequence.getObjectAt(0)); - - assertNotNull("ENUMERATED expected", enumerated1); - - assertEquals("Unexpected ENUMERATED value", 257, enumerated1.getValue().intValue()); - - ASN1Enumerated enumerated2 = ASN1Enumerated.getInstance(sequence.getObjectAt(1)); - - assertNotNull("ENUMERATED expected", enumerated2); - - assertEquals("Unexpected ENUMERATED value", 514, enumerated2.getValue().intValue()); - } - - /** - * Makes sure multiple identically sized values are parsed correctly. - */ - public void testReadingMultipleTripleByteItems() - throws IOException - { - ASN1Primitive obj = ASN1Primitive.fromByteArray(MultipleTripleByteItems); - - assertTrue("Null ASN.1 SEQUENCE", obj instanceof ASN1Sequence); - - ASN1Sequence sequence = (ASN1Sequence)obj; - - assertEquals("2 items expected", 2, sequence.size()); - - ASN1Enumerated enumerated = ASN1Enumerated.getInstance(sequence.getObjectAt(0)); - - assertNotNull("ENUMERATED expected", enumerated); - - assertEquals("Unexpected ENUMERATED value", 65793, enumerated.getValue().intValue()); - - ASN1ObjectIdentifier objectId = ASN1ObjectIdentifier.getInstance(sequence.getObjectAt(1)); - - assertNotNull("OBJECT IDENTIFIER expected", objectId); - - assertEquals("Unexpected OBJECT IDENTIFIER value", "1.3.6.1", objectId.getId()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java deleted file mode 100644 index 3da4e6a..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.util.Date; - -import org.bouncycastle.asn1.ASN1Boolean; -import org.bouncycastle.asn1.ASN1Enumerated; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.BERConstructedOctetString; -import org.bouncycastle.asn1.BERSequence; -import org.bouncycastle.asn1.BERSet; -import org.bouncycastle.asn1.BERTaggedObject; -import org.bouncycastle.asn1.DERApplicationSpecific; -import org.bouncycastle.asn1.DERBMPString; -import org.bouncycastle.asn1.DERBitString; -import org.bouncycastle.asn1.DERGeneralString; -import org.bouncycastle.asn1.DERGeneralizedTime; -import org.bouncycastle.asn1.DERIA5String; -import org.bouncycastle.asn1.DERNull; -import org.bouncycastle.asn1.DERNumericString; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.DERPrintableString; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERSet; -import org.bouncycastle.asn1.DERT61String; -import org.bouncycastle.asn1.DERTaggedObject; -import org.bouncycastle.asn1.DERUTCTime; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.asn1.DERUniversalString; -import org.bouncycastle.asn1.DERVisibleString; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class EqualsAndHashCodeTest - implements Test -{ - public TestResult perform() - { - byte[] data = { 0, 1, 0, 1, 0, 0, 1 }; - - ASN1Primitive values[] = { - new BERConstructedOctetString(data), - new BERSequence(new DERPrintableString("hello world")), - new BERSet(new DERPrintableString("hello world")), - new BERTaggedObject(0, new DERPrintableString("hello world")), - new DERApplicationSpecific(0, data), - new DERBitString(data), - new DERBMPString("hello world"), - new ASN1Boolean(true), - new ASN1Boolean(false), - new ASN1Enumerated(100), - new DERGeneralizedTime("20070315173729Z"), - new DERGeneralString("hello world"), - new DERIA5String("hello"), - new ASN1Integer(1000), - new DERNull(), - new DERNumericString("123456"), - new ASN1ObjectIdentifier("1.1.1.10000.1"), - new DEROctetString(data), - new DERPrintableString("hello world"), - new DERSequence(new DERPrintableString("hello world")), - new DERSet(new DERPrintableString("hello world")), - new DERT61String("hello world"), - new DERTaggedObject(0, new DERPrintableString("hello world")), - new DERUniversalString(data), - new DERUTCTime(new Date()), - new DERUTF8String("hello world"), - new DERVisibleString("hello world") - }; - - try - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - for (int i = 0; i != values.length; i++) - { - aOut.writeObject(values[i]); - } - - ASN1Primitive[] readValues = new ASN1Primitive[values.length]; - - ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray()); - ASN1InputStream aIn = new ASN1InputStream(bIn); - - for (int i = 0; i != values.length; i++) - { - ASN1Primitive o = aIn.readObject(); - if (!o.equals(values[i])) - { - return new SimpleTestResult(false, getName() + ": Failed equality test for " + o.getClass()); - } - - if (o.hashCode() != values[i].hashCode()) - { - return new SimpleTestResult(false, getName() + ": Failed hashCode test for " + o.getClass()); - } - } - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": Failed - exception " + e.toString(), e); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - - public String getName() - { - return "EqualsAndHashCode"; - } - - public static void main( - String[] args) - { - EqualsAndHashCodeTest test = new EqualsAndHashCodeTest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/GeneralNameTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/GeneralNameTest.java deleted file mode 100644 index f88a83c..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/GeneralNameTest.java +++ /dev/null @@ -1,143 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -public class GeneralNameTest - extends SimpleTest -{ - private static final byte[] ipv4 = Hex.decode("87040a090800"); - private static final byte[] ipv4WithMask1 = Hex.decode("87080a090800ffffff00"); - private static final byte[] ipv4WithMask2 = Hex.decode("87080a090800ffff8000"); - private static final byte[] ipv4WithMask3 = Hex.decode("87080a090800ffffc000"); - - private static final byte[] ipv6a = Hex.decode("871020010db885a308d313198a2e03707334"); - private static final byte[] ipv6b = Hex.decode("871020010db885a3000013198a2e03707334"); - private static final byte[] ipv6c = Hex.decode("871000000000000000000000000000000001"); - private static final byte[] ipv6d = Hex.decode("871020010db885a3000000008a2e03707334"); - private static final byte[] ipv6e = Hex.decode("871020010db885a3000000008a2e0a090800"); - private static final byte[] ipv6f = Hex.decode("872020010db885a3000000008a2e0a090800ffffffffffff00000000000000000000"); - private static final byte[] ipv6g = Hex.decode("872020010db885a3000000008a2e0a090800ffffffffffffffffffffffffffffffff"); - private static final byte[] ipv6h = Hex.decode("872020010db885a300000000000000000000ffffffffffff00000000000000000000"); - private static final byte[] ipv6i = Hex.decode("872020010db885a300000000000000000000fffffffffffe00000000000000000000"); - private static final byte[] ipv6j = Hex.decode("872020010db885a300000000000000000000ffffffffffff80000000000000000000"); - - public String getName() - { - return "GeneralName"; - } - - public void performTest() - throws Exception - { - GeneralName nm = new GeneralName(GeneralName.iPAddress, "10.9.8.0"); - if (!Arrays.areEqual(nm.getEncoded(), ipv4)) - { - fail("ipv4 encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "10.9.8.0/255.255.255.0"); - if (!Arrays.areEqual(nm.getEncoded(), ipv4WithMask1)) - { - fail("ipv4 with netmask 1 encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "10.9.8.0/24"); - if (!Arrays.areEqual(nm.getEncoded(), ipv4WithMask1)) - { - fail("ipv4 with netmask 2 encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "10.9.8.0/255.255.128.0"); - if (!Arrays.areEqual(nm.getEncoded(), ipv4WithMask2)) - { - fail("ipv4 with netmask 3a encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "10.9.8.0/17"); - if (!Arrays.areEqual(nm.getEncoded(), ipv4WithMask2)) - { - fail("ipv4 with netmask 3b encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "10.9.8.0/255.255.192.0"); - if (!Arrays.areEqual(nm.getEncoded(), ipv4WithMask3)) - { - fail("ipv4 with netmask 3a encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "10.9.8.0/18"); - if (!Arrays.areEqual(nm.getEncoded(), ipv4WithMask3)) - { - fail("ipv4 with netmask 3b encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3:08d3:1319:8a2e:0370:7334"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6a)) - { - fail("ipv6 with netmask encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::1319:8a2e:0370:7334"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6b)) - { - fail("ipv6b encoding failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "::1"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6c)) - { - fail("ipv6c failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::8a2e:0370:7334"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6d)) - { - fail("ipv6d failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::8a2e:10.9.8.0"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6e)) - { - fail("ipv6e failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::8a2e:10.9.8.0/ffff:ffff:ffff::0000"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6f)) - { - fail("ipv6f failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::8a2e:10.9.8.0/128"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6g)) - { - fail("ipv6g failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::/48"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6h)) - { - fail("ipv6h failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::/47"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6i)) - { - fail("ipv6i failed"); - } - - nm = new GeneralName(GeneralName.iPAddress, "2001:0db8:85a3::/49"); - if (!Arrays.areEqual(nm.getEncoded(), ipv6j)) - { - fail("ipv6j failed"); - } - } - - public static void main( - String[] args) - { - runTest(new GeneralNameTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/GeneralizedTimeTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/GeneralizedTimeTest.java deleted file mode 100644 index 3a86370..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/GeneralizedTimeTest.java +++ /dev/null @@ -1,201 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.SimpleTimeZone; -import java.util.TimeZone; - -import org.bouncycastle.asn1.DERGeneralizedTime; -import org.bouncycastle.util.test.SimpleTest; - -/** - * X.690 test example - */ -public class GeneralizedTimeTest - extends SimpleTest -{ - String[] input = - { - "20020122122220", - "20020122122220Z", - "20020122122220-1000", - "20020122122220+00", - "20020122122220.1", - "20020122122220.1Z", - "20020122122220.1-1000", - "20020122122220.1+00", - "20020122122220.01", - "20020122122220.01Z", - "20020122122220.01-1000", - "20020122122220.01+00", - "20020122122220.001", - "20020122122220.001Z", - "20020122122220.001-1000", - "20020122122220.001+00", - "20020122122220.0001", - "20020122122220.0001Z", - "20020122122220.0001-1000", - "20020122122220.0001+00", - "20020122122220.0001+1000" - }; - - String[] output = { - "20020122122220", - "20020122122220GMT+00:00", - "20020122122220GMT-10:00", - "20020122122220GMT+00:00", - "20020122122220.1", - "20020122122220.1GMT+00:00", - "20020122122220.1GMT-10:00", - "20020122122220.1GMT+00:00", - "20020122122220.01", - "20020122122220.01GMT+00:00", - "20020122122220.01GMT-10:00", - "20020122122220.01GMT+00:00", - "20020122122220.001", - "20020122122220.001GMT+00:00", - "20020122122220.001GMT-10:00", - "20020122122220.001GMT+00:00", - "20020122122220.0001", - "20020122122220.0001GMT+00:00", - "20020122122220.0001GMT-10:00", - "20020122122220.0001GMT+00:00", - "20020122122220.0001GMT+10:00" }; - - String[] zOutput = { - "20020122122220Z", - "20020122122220Z", - "20020122222220Z", - "20020122122220Z", - "20020122122220Z", - "20020122122220Z", - "20020122222220Z", - "20020122122220Z", - "20020122122220Z", - "20020122122220Z", - "20020122222220Z", - "20020122122220Z", - "20020122122220Z", - "20020122122220Z", - "20020122222220Z", - "20020122122220Z", - "20020122122220Z", - "20020122122220Z", - "20020122222220Z", - "20020122122220Z", - "20020122022220Z" - }; - - String[] mzOutput = { - "20020122122220.000Z", - "20020122122220.000Z", - "20020122222220.000Z", - "20020122122220.000Z", - "20020122122220.100Z", - "20020122122220.100Z", - "20020122222220.100Z", - "20020122122220.100Z", - "20020122122220.010Z", - "20020122122220.010Z", - "20020122222220.010Z", - "20020122122220.010Z", - "20020122122220.001Z", - "20020122122220.001Z", - "20020122222220.001Z", - "20020122122220.001Z", - "20020122122220.000Z", - "20020122122220.000Z", - "20020122222220.000Z", - "20020122122220.000Z", - "20020122022220.000Z" - }; - - public String getName() - { - return "GeneralizedTime"; - } - - public void performTest() - throws Exception - { - SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMddHHmmss'Z'"); - - dateF.setTimeZone(new SimpleTimeZone(0,"Z")); - - for (int i = 0; i != input.length; i++) - { - DERGeneralizedTime t = new DERGeneralizedTime(input[i]); - - if (output[i].indexOf('G') > 0) // don't check local time the same way - { - if (!t.getTime().equals(output[i])) - { - fail("failed conversion test"); - } - if (!dateF.format(t.getDate()).equals(zOutput[i])) - { - fail("failed date conversion test"); - } - } - else - { - String offset = calculateGMTOffset(t.getDate()); - if (!t.getTime().equals(output[i] + offset)) - { - fail("failed conversion test"); - } - } - } - - dateF = new SimpleDateFormat("yyyyMMddHHmmss.SSS'Z'"); - - dateF.setTimeZone(new SimpleTimeZone(0,"Z")); - - for (int i = 0; i != input.length; i++) - { - DERGeneralizedTime t = new DERGeneralizedTime(input[i]); - - if (!dateF.format(t.getDate()).equals(mzOutput[i])) - { - fail("failed long date conversion test"); - } - } - } - - private String calculateGMTOffset(Date date) - { - String sign = "+"; - TimeZone timeZone = TimeZone.getDefault(); - int offset = timeZone.getRawOffset(); - if (offset < 0) - { - sign = "-"; - offset = -offset; - } - int hours = offset / (60 * 60 * 1000); - int minutes = (offset - (hours * 60 * 60 * 1000)) / (60 * 1000); - - if (timeZone.useDaylightTime() && timeZone.inDaylightTime(date)) - { - hours += sign.equals("+") ? 1 : -1; - } - - return "GMT" + sign + convert(hours) + ":" + convert(minutes); - } - - private String convert(int time) - { - if (time < 10) - { - return "0" + time; - } - - return Integer.toString(time); - } - - public static void main( - String[] args) - { - runTest(new GeneralizedTimeTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/GenerationTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/GenerationTest.java deleted file mode 100644 index aa5444f..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/GenerationTest.java +++ /dev/null @@ -1,441 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.math.BigInteger; -import java.text.ParseException; -import java.util.Date; -import java.util.Hashtable; -import java.util.Vector; - -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1GeneralizedTime; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DERNull; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.oiw.ElGamalParameter; -import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; -import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier; -import org.bouncycastle.asn1.x509.CRLReason; -import org.bouncycastle.asn1.x509.Extension; -import org.bouncycastle.asn1.x509.Extensions; -import org.bouncycastle.asn1.x509.ExtensionsGenerator; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.GeneralNames; -import org.bouncycastle.asn1.x509.IssuingDistributionPoint; -import org.bouncycastle.asn1.x509.KeyUsage; -import org.bouncycastle.asn1.x509.RSAPublicKeyStructure; -import org.bouncycastle.asn1.x509.SubjectKeyIdentifier; -import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; -import org.bouncycastle.asn1.x509.TBSCertList; -import org.bouncycastle.asn1.x509.TBSCertificate; -import org.bouncycastle.asn1.x509.Time; -import org.bouncycastle.asn1.x509.V1TBSCertificateGenerator; -import org.bouncycastle.asn1.x509.V2TBSCertListGenerator; -import org.bouncycastle.asn1.x509.V3TBSCertificateGenerator; -import org.bouncycastle.asn1.x509.X509Extension; -import org.bouncycastle.asn1.x509.X509Extensions; -import org.bouncycastle.asn1.x509.X509Name; -import org.bouncycastle.crypto.Digest; -import org.bouncycastle.crypto.digests.SHA1Digest; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTest; - -public class GenerationTest - extends SimpleTest -{ - private byte[] v1Cert = Base64.decode( - "MIGtAgEBMA0GCSqGSIb3DQEBBAUAMCUxCzAJBgNVBAMMAkFVMRYwFAYDVQQKDA1Cb" - + "3VuY3kgQ2FzdGxlMB4XDTcwMDEwMTAwMDAwMVoXDTcwMDEwMTAwMDAxMlowNjELMA" - + "kGA1UEAwwCQVUxFjAUBgNVBAoMDUJvdW5jeSBDYXN0bGUxDzANBgNVBAsMBlRlc3Q" - + "gMTAaMA0GCSqGSIb3DQEBAQUAAwkAMAYCAQECAQI="); - - private byte[] v3Cert = Base64.decode( - "MIIBSKADAgECAgECMA0GCSqGSIb3DQEBBAUAMCUxCzAJBgNVBAMMAkFVMRYwFAYD" - + "VQQKDA1Cb3VuY3kgQ2FzdGxlMB4XDTcwMDEwMTAwMDAwMVoXDTcwMDEwMTAwMDAw" - + "MlowNjELMAkGA1UEAwwCQVUxFjAUBgNVBAoMDUJvdW5jeSBDYXN0bGUxDzANBgNV" - + "BAsMBlRlc3QgMjAYMBAGBisOBwIBATAGAgEBAgECAwQAAgEDo4GVMIGSMGEGA1Ud" - + "IwEB/wRXMFWAFDZPdpHPzKi7o8EJokkQU2uqCHRRoTqkODA2MQswCQYDVQQDDAJB" - + "VTEWMBQGA1UECgwNQm91bmN5IENhc3RsZTEPMA0GA1UECwwGVGVzdCAyggECMCAG" - + "A1UdDgEB/wQWBBQ2T3aRz8you6PBCaJJEFNrqgh0UTALBgNVHQ8EBAMCBBA="); - - private byte[] v3CertNullSubject = Base64.decode( - "MIHGoAMCAQICAQIwDQYJKoZIhvcNAQEEBQAwJTELMAkGA1UEAwwCQVUxFjAUBgNVB" - + "AoMDUJvdW5jeSBDYXN0bGUwHhcNNzAwMTAxMDAwMDAxWhcNNzAwMTAxMDAwMDAyWj" - + "AAMBgwEAYGKw4HAgEBMAYCAQECAQIDBAACAQOjSjBIMEYGA1UdEQEB/wQ8MDqkODA" - + "2MQswCQYDVQQDDAJBVTEWMBQGA1UECgwNQm91bmN5IENhc3RsZTEPMA0GA1UECwwG" - + "VGVzdCAy"); - - private byte[] v2CertList = Base64.decode( - "MIIBQwIBATANBgkqhkiG9w0BAQUFADAlMQswCQYDVQQDDAJBVTEWMBQGA1UECgwN" + - "Qm91bmN5IENhc3RsZRcNNzAwMTAxMDAwMDAwWhcNNzAwMTAxMDAwMDAyWjAiMCAC" + - "AQEXDTcwMDEwMTAwMDAwMVowDDAKBgNVHRUEAwoBCqCBxTCBwjBhBgNVHSMBAf8E" + - "VzBVgBQ2T3aRz8you6PBCaJJEFNrqgh0UaE6pDgwNjELMAkGA1UEAwwCQVUxFjAU" + - "BgNVBAoMDUJvdW5jeSBDYXN0bGUxDzANBgNVBAsMBlRlc3QgMoIBAjBDBgNVHRIE" + - "PDA6pDgwNjELMAkGA1UEAwwCQVUxFjAUBgNVBAoMDUJvdW5jeSBDYXN0bGUxDzAN" + - "BgNVBAsMBlRlc3QgMzAKBgNVHRQEAwIBATAMBgNVHRwBAf8EAjAA"); - - private void tbsV1CertGen() - throws IOException - { - V1TBSCertificateGenerator gen = new V1TBSCertificateGenerator(); - Date startDate = new Date(1000); - Date endDate = new Date(12000); - - gen.setSerialNumber(new ASN1Integer(1)); - - gen.setStartDate(new Time(startDate)); - gen.setEndDate(new Time(endDate)); - - gen.setIssuer(new X500Name("CN=AU,O=Bouncy Castle")); - gen.setSubject(new X500Name("CN=AU,O=Bouncy Castle,OU=Test 1")); - - gen.setSignature(new AlgorithmIdentifier(PKCSObjectIdentifiers.md5WithRSAEncryption, DERNull.INSTANCE)); - - SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE), - new RSAPublicKeyStructure(BigInteger.valueOf(1), BigInteger.valueOf(2))); - - gen.setSubjectPublicKeyInfo(info); - - TBSCertificate tbs = gen.generateTBSCertificate(); - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(tbs); - - if (!Arrays.areEqual(bOut.toByteArray(), v1Cert)) - { - fail("failed v1 cert generation"); - } - - // - // read back test - // - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(v1Cert)); - ASN1Primitive o = aIn.readObject(); - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(o); - - if (!Arrays.areEqual(bOut.toByteArray(), v1Cert)) - { - fail("failed v1 cert read back test"); - } - } - - private AuthorityKeyIdentifier createAuthorityKeyId( - SubjectPublicKeyInfo info, - X500Name name, - int sNumber) - { - GeneralName genName = new GeneralName(name); - ASN1EncodableVector v = new ASN1EncodableVector(); - - v.add(genName); - - return new AuthorityKeyIdentifier( - info, GeneralNames.getInstance(new DERSequence(v)), BigInteger.valueOf(sNumber)); - } - - private void tbsV3CertGen() - throws IOException - { - V3TBSCertificateGenerator gen = new V3TBSCertificateGenerator(); - Date startDate = new Date(1000); - Date endDate = new Date(2000); - - gen.setSerialNumber(new ASN1Integer(2)); - - gen.setStartDate(new Time(startDate)); - gen.setEndDate(new Time(endDate)); - - gen.setIssuer(new X500Name("CN=AU,O=Bouncy Castle")); - gen.setSubject(new X500Name("CN=AU,O=Bouncy Castle,OU=Test 2")); - - gen.setSignature(new AlgorithmIdentifier(PKCSObjectIdentifiers.md5WithRSAEncryption, DERNull.INSTANCE)); - - SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(OIWObjectIdentifiers.elGamalAlgorithm, new ElGamalParameter(BigInteger.valueOf(1), BigInteger.valueOf(2))), new ASN1Integer(3)); - - gen.setSubjectPublicKeyInfo(info); - - // - // add extensions - // - Vector order = new Vector(); - Hashtable extensions = new Hashtable(); - - order.addElement(X509Extension.authorityKeyIdentifier); - order.addElement(X509Extension.subjectKeyIdentifier); - order.addElement(X509Extension.keyUsage); - - extensions.put(X509Extension.authorityKeyIdentifier, new X509Extension(true, new DEROctetString(createAuthorityKeyId(info, new X500Name("CN=AU,O=Bouncy Castle,OU=Test 2"), 2)))); - extensions.put(X509Extension.subjectKeyIdentifier, new X509Extension(true, new DEROctetString(new SubjectKeyIdentifier(getDigest(info))))); - extensions.put(X509Extension.keyUsage, new X509Extension(false, new DEROctetString(new KeyUsage(KeyUsage.dataEncipherment)))); - - X509Extensions ex = new X509Extensions(order, extensions); - - gen.setExtensions(ex); - - TBSCertificate tbs = gen.generateTBSCertificate(); - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(tbs); - - if (!Arrays.areEqual(bOut.toByteArray(), v3Cert)) - { - fail("failed v3 cert generation"); - } - - // - // read back test - // - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(v3Cert)); - ASN1Primitive o = aIn.readObject(); - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(o); - - if (!Arrays.areEqual(bOut.toByteArray(), v3Cert)) - { - fail("failed v3 cert read back test"); - } - } - - private void tbsV3CertGenWithNullSubject() - throws IOException - { - V3TBSCertificateGenerator gen = new V3TBSCertificateGenerator(); - Date startDate = new Date(1000); - Date endDate = new Date(2000); - - gen.setSerialNumber(new ASN1Integer(2)); - - gen.setStartDate(new Time(startDate)); - gen.setEndDate(new Time(endDate)); - - gen.setIssuer(new X500Name("CN=AU,O=Bouncy Castle")); - - gen.setSignature(new AlgorithmIdentifier(PKCSObjectIdentifiers.md5WithRSAEncryption, DERNull.INSTANCE)); - - SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(OIWObjectIdentifiers.elGamalAlgorithm, new ElGamalParameter(BigInteger.valueOf(1), BigInteger.valueOf(2))), new ASN1Integer(3)); - - gen.setSubjectPublicKeyInfo(info); - - try - { - gen.generateTBSCertificate(); - fail("null subject not caught!"); - } - catch (IllegalStateException e) - { - if (!e.getMessage().equals("not all mandatory fields set in V3 TBScertificate generator")) - { - fail("unexpected exception", e); - } - } - - // - // add extensions - // - Vector order = new Vector(); - Hashtable extensions = new Hashtable(); - - order.addElement(X509Extension.subjectAlternativeName); - - extensions.put(X509Extension.subjectAlternativeName, new X509Extension(true, new DEROctetString(new GeneralNames(new GeneralName(new X509Name("CN=AU,O=Bouncy Castle,OU=Test 2")))))); - - X509Extensions ex = new X509Extensions(order, extensions); - - gen.setExtensions(ex); - - TBSCertificate tbs = gen.generateTBSCertificate(); - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(tbs); - - if (!Arrays.areEqual(bOut.toByteArray(), v3CertNullSubject)) - { - fail("failed v3 null sub cert generation"); - } - - // - // read back test - // - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(v3CertNullSubject)); - ASN1Primitive o = aIn.readObject(); - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(o); - - if (!Arrays.areEqual(bOut.toByteArray(), v3CertNullSubject)) - { - fail("failed v3 null sub cert read back test"); - } - } - - private void tbsV2CertListGen() - throws IOException - { - V2TBSCertListGenerator gen = new V2TBSCertListGenerator(); - - gen.setIssuer(new X500Name("CN=AU,O=Bouncy Castle")); - - gen.addCRLEntry(new ASN1Integer(1), new Time(new Date(1000)), CRLReason.aACompromise); - - gen.setNextUpdate(new Time(new Date(2000))); - - gen.setThisUpdate(new Time(new Date(500))); - - gen.setSignature(new AlgorithmIdentifier(PKCSObjectIdentifiers.sha1WithRSAEncryption, DERNull.INSTANCE)); - - // - // extensions - // - SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(OIWObjectIdentifiers.elGamalAlgorithm, new ElGamalParameter(BigInteger.valueOf(1), BigInteger.valueOf(2))), new ASN1Integer(3)); - - ExtensionsGenerator extGen = new ExtensionsGenerator(); - - extGen.addExtension(Extension.authorityKeyIdentifier, true, createAuthorityKeyId(info, new X500Name("CN=AU,O=Bouncy Castle,OU=Test 2"), 2)); - extGen.addExtension(Extension.issuerAlternativeName, false, new GeneralNames(new GeneralName(new X500Name("CN=AU,O=Bouncy Castle,OU=Test 3")))); - extGen.addExtension(Extension.cRLNumber, false, new ASN1Integer(1)); - extGen.addExtension(Extension.issuingDistributionPoint, true, IssuingDistributionPoint.getInstance(new DERSequence())); - - Extensions ex = extGen.generate(); - - gen.setExtensions(ex); - - TBSCertList tbs = gen.generateTBSCertList(); - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(tbs); - - if (!Arrays.areEqual(bOut.toByteArray(), v2CertList)) - { - System.out.println(new String(Base64.encode(bOut.toByteArray()))); - fail("failed v2 cert list generation"); - } - - // - // read back test - // - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(v2CertList)); - ASN1Primitive o = aIn.readObject(); - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(o); - - if (!Arrays.areEqual(bOut.toByteArray(), v2CertList)) - { - fail("failed v2 cert list read back test"); - } - - // - // check we can add a custom reason - // - gen.addCRLEntry(new ASN1Integer(1), new Time(new Date(1000)), CRLReason.aACompromise); - - // - // check invalidity date - gen.addCRLEntry(new ASN1Integer(2), new Time(new Date(1000)), CRLReason.affiliationChanged, new ASN1GeneralizedTime(new Date(2000))); - - TBSCertList crl = gen.generateTBSCertList(); - - TBSCertList.CRLEntry[] entries = crl.getRevokedCertificates(); - for (int i = 0; i != entries.length; i++) - { - TBSCertList.CRLEntry entry = entries[i]; - - if (entry.getUserCertificate().equals(new ASN1Integer(1))) - { - Extensions extensions = entry.getExtensions(); - Extension ext = extensions.getExtension(Extension.reasonCode); - - CRLReason r = CRLReason.getInstance(ext.getParsedValue()); - - if (r.getValue().intValue() != CRLReason.aACompromise) - { - fail("reason code mismatch"); - } - } - else if (entry.getUserCertificate().equals(new ASN1Integer(2))) - { - Extensions extensions = entry.getExtensions(); - Extension ext = extensions.getExtension(Extension.reasonCode); - - CRLReason r = CRLReason.getInstance(ext.getParsedValue()); - - if (r.getValue().intValue() != CRLReason.affiliationChanged) - { - fail("reason code mismatch"); - } - - ext = extensions.getExtension(Extension.invalidityDate); - - ASN1GeneralizedTime t = ASN1GeneralizedTime.getInstance(ext.getParsedValue()); - - try - { - if (!t.getDate().equals(new Date(2000))) - { - fail("invalidity date mismatch"); - } - } - catch (ParseException e) - { - fail("can't parse date", e); - } - } - } - } - - public void performTest() - throws Exception - { - tbsV1CertGen(); - tbsV3CertGen(); - tbsV3CertGenWithNullSubject(); - tbsV2CertListGen(); - } - - public String getName() - { - return "Generation"; - } - - private static byte[] getDigest(SubjectPublicKeyInfo spki) - { - Digest digest = new SHA1Digest(); - byte[] resBuf = new byte[digest.getDigestSize()]; - - byte[] bytes = spki.getPublicKeyData().getBytes(); - digest.update(bytes, 0, bytes.length); - digest.doFinal(resBuf, 0); - return resBuf; - } - - public static void main( - String[] args) - { - runTest(new GenerationTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/GetInstanceTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/GetInstanceTest.java deleted file mode 100644 index cda7c50..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/GetInstanceTest.java +++ /dev/null @@ -1,888 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.lang.reflect.Method; -import java.math.BigInteger; -import java.util.Date; -import java.util.Vector; - -import junit.framework.TestCase; -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1Enumerated; -import org.bouncycastle.asn1.ASN1GeneralizedTime; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1Object; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1TaggedObject; -import org.bouncycastle.asn1.ASN1UTCTime; -import org.bouncycastle.asn1.DERBMPString; -import org.bouncycastle.asn1.DERBitString; -import org.bouncycastle.asn1.DERGeneralString; -import org.bouncycastle.asn1.DERIA5String; -import org.bouncycastle.asn1.DERNull; -import org.bouncycastle.asn1.DERNumericString; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.DERPrintableString; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERSet; -import org.bouncycastle.asn1.DERT61String; -import org.bouncycastle.asn1.DERTaggedObject; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.asn1.DERUniversalString; -import org.bouncycastle.asn1.DERVisibleString; -import org.bouncycastle.asn1.cmp.CAKeyUpdAnnContent; -import org.bouncycastle.asn1.cmp.CMPCertificate; -import org.bouncycastle.asn1.cmp.CRLAnnContent; -import org.bouncycastle.asn1.cmp.CertConfirmContent; -import org.bouncycastle.asn1.cmp.CertOrEncCert; -import org.bouncycastle.asn1.cmp.CertRepMessage; -import org.bouncycastle.asn1.cmp.CertResponse; -import org.bouncycastle.asn1.cmp.CertifiedKeyPair; -import org.bouncycastle.asn1.cmp.Challenge; -import org.bouncycastle.asn1.cmp.ErrorMsgContent; -import org.bouncycastle.asn1.cmp.GenMsgContent; -import org.bouncycastle.asn1.cmp.GenRepContent; -import org.bouncycastle.asn1.cmp.InfoTypeAndValue; -import org.bouncycastle.asn1.cmp.KeyRecRepContent; -import org.bouncycastle.asn1.cmp.OOBCertHash; -import org.bouncycastle.asn1.cmp.PBMParameter; -import org.bouncycastle.asn1.cmp.PKIBody; -import org.bouncycastle.asn1.cmp.PKIConfirmContent; -import org.bouncycastle.asn1.cmp.PKIFailureInfo; -import org.bouncycastle.asn1.cmp.PKIFreeText; -import org.bouncycastle.asn1.cmp.PKIHeader; -import org.bouncycastle.asn1.cmp.PKIMessage; -import org.bouncycastle.asn1.cmp.PKIMessages; -import org.bouncycastle.asn1.cmp.PKIStatus; -import org.bouncycastle.asn1.cmp.PKIStatusInfo; -import org.bouncycastle.asn1.cmp.POPODecKeyChallContent; -import org.bouncycastle.asn1.cmp.POPODecKeyRespContent; -import org.bouncycastle.asn1.cmp.PollRepContent; -import org.bouncycastle.asn1.cmp.PollReqContent; -import org.bouncycastle.asn1.cmp.ProtectedPart; -import org.bouncycastle.asn1.cmp.RevAnnContent; -import org.bouncycastle.asn1.cmp.RevDetails; -import org.bouncycastle.asn1.cmp.RevRepContent; -import org.bouncycastle.asn1.cmp.RevReqContent; -import org.bouncycastle.asn1.cms.Attribute; -import org.bouncycastle.asn1.cms.Attributes; -import org.bouncycastle.asn1.cms.AuthEnvelopedData; -import org.bouncycastle.asn1.cms.AuthenticatedData; -import org.bouncycastle.asn1.cms.CompressedData; -import org.bouncycastle.asn1.cms.ContentInfo; -import org.bouncycastle.asn1.cms.EncryptedContentInfo; -import org.bouncycastle.asn1.cms.EncryptedData; -import org.bouncycastle.asn1.cms.EnvelopedData; -import org.bouncycastle.asn1.cms.Evidence; -import org.bouncycastle.asn1.cms.IssuerAndSerialNumber; -import org.bouncycastle.asn1.cms.KEKIdentifier; -import org.bouncycastle.asn1.cms.KEKRecipientInfo; -import org.bouncycastle.asn1.cms.KeyAgreeRecipientIdentifier; -import org.bouncycastle.asn1.cms.KeyAgreeRecipientInfo; -import org.bouncycastle.asn1.cms.KeyTransRecipientInfo; -import org.bouncycastle.asn1.cms.MetaData; -import org.bouncycastle.asn1.cms.OriginatorIdentifierOrKey; -import org.bouncycastle.asn1.cms.OriginatorInfo; -import org.bouncycastle.asn1.cms.OriginatorPublicKey; -import org.bouncycastle.asn1.cms.OtherKeyAttribute; -import org.bouncycastle.asn1.cms.OtherRecipientInfo; -import org.bouncycastle.asn1.cms.PasswordRecipientInfo; -import org.bouncycastle.asn1.cms.RecipientEncryptedKey; -import org.bouncycastle.asn1.cms.RecipientIdentifier; -import org.bouncycastle.asn1.cms.RecipientInfo; -import org.bouncycastle.asn1.cms.RecipientKeyIdentifier; -import org.bouncycastle.asn1.cms.SignerIdentifier; -import org.bouncycastle.asn1.cms.SignerInfo; -import org.bouncycastle.asn1.cms.TimeStampAndCRL; -import org.bouncycastle.asn1.cms.TimeStampTokenEvidence; -import org.bouncycastle.asn1.cms.TimeStampedData; -import org.bouncycastle.asn1.cms.ecc.MQVuserKeyingMaterial; -import org.bouncycastle.asn1.crmf.AttributeTypeAndValue; -import org.bouncycastle.asn1.crmf.CertId; -import org.bouncycastle.asn1.crmf.CertReqMessages; -import org.bouncycastle.asn1.crmf.CertReqMsg; -import org.bouncycastle.asn1.crmf.CertRequest; -import org.bouncycastle.asn1.crmf.CertTemplate; -import org.bouncycastle.asn1.crmf.Controls; -import org.bouncycastle.asn1.crmf.EncKeyWithID; -import org.bouncycastle.asn1.crmf.EncryptedKey; -import org.bouncycastle.asn1.crmf.EncryptedValue; -import org.bouncycastle.asn1.crmf.OptionalValidity; -import org.bouncycastle.asn1.crmf.PKIArchiveOptions; -import org.bouncycastle.asn1.crmf.PKIPublicationInfo; -import org.bouncycastle.asn1.crmf.PKMACValue; -import org.bouncycastle.asn1.crmf.POPOPrivKey; -import org.bouncycastle.asn1.crmf.POPOSigningKey; -import org.bouncycastle.asn1.crmf.POPOSigningKeyInput; -import org.bouncycastle.asn1.crmf.ProofOfPossession; -import org.bouncycastle.asn1.crmf.SinglePubInfo; -import org.bouncycastle.asn1.cryptopro.ECGOST3410ParamSetParameters; -import org.bouncycastle.asn1.cryptopro.GOST28147Parameters; -import org.bouncycastle.asn1.cryptopro.GOST3410ParamSetParameters; -import org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters; -import org.bouncycastle.asn1.eac.CVCertificate; -import org.bouncycastle.asn1.eac.CVCertificateRequest; -import org.bouncycastle.asn1.eac.CertificateBody; -import org.bouncycastle.asn1.eac.PublicKeyDataObject; -import org.bouncycastle.asn1.eac.RSAPublicKey; -import org.bouncycastle.asn1.eac.UnsignedInteger; -import org.bouncycastle.asn1.esf.CommitmentTypeIndication; -import org.bouncycastle.asn1.esf.CommitmentTypeQualifier; -import org.bouncycastle.asn1.esf.CompleteRevocationRefs; -import org.bouncycastle.asn1.esf.CrlIdentifier; -import org.bouncycastle.asn1.esf.CrlListID; -import org.bouncycastle.asn1.esf.CrlOcspRef; -import org.bouncycastle.asn1.esf.CrlValidatedID; -import org.bouncycastle.asn1.esf.OcspIdentifier; -import org.bouncycastle.asn1.esf.OcspListID; -import org.bouncycastle.asn1.esf.OcspResponsesID; -import org.bouncycastle.asn1.esf.OtherHash; -import org.bouncycastle.asn1.esf.OtherHashAlgAndValue; -import org.bouncycastle.asn1.esf.OtherRevRefs; -import org.bouncycastle.asn1.esf.OtherRevVals; -import org.bouncycastle.asn1.esf.RevocationValues; -import org.bouncycastle.asn1.esf.SPUserNotice; -import org.bouncycastle.asn1.esf.SPuri; -import org.bouncycastle.asn1.esf.SigPolicyQualifierInfo; -import org.bouncycastle.asn1.esf.SigPolicyQualifiers; -import org.bouncycastle.asn1.esf.SignaturePolicyId; -import org.bouncycastle.asn1.esf.SignaturePolicyIdentifier; -import org.bouncycastle.asn1.esf.SignerAttribute; -import org.bouncycastle.asn1.esf.SignerLocation; -import org.bouncycastle.asn1.ess.ContentHints; -import org.bouncycastle.asn1.ess.ContentIdentifier; -import org.bouncycastle.asn1.ess.ESSCertID; -import org.bouncycastle.asn1.ess.ESSCertIDv2; -import org.bouncycastle.asn1.ess.OtherCertID; -import org.bouncycastle.asn1.ess.OtherSigningCertificate; -import org.bouncycastle.asn1.ess.SigningCertificate; -import org.bouncycastle.asn1.ess.SigningCertificateV2; -import org.bouncycastle.asn1.icao.CscaMasterList; -import org.bouncycastle.asn1.icao.DataGroupHash; -import org.bouncycastle.asn1.icao.LDSSecurityObject; -import org.bouncycastle.asn1.icao.LDSVersionInfo; -import org.bouncycastle.asn1.isismtt.ocsp.CertHash; -import org.bouncycastle.asn1.isismtt.ocsp.RequestedCertificate; -import org.bouncycastle.asn1.isismtt.x509.AdditionalInformationSyntax; -import org.bouncycastle.asn1.isismtt.x509.AdmissionSyntax; -import org.bouncycastle.asn1.isismtt.x509.Admissions; -import org.bouncycastle.asn1.isismtt.x509.DeclarationOfMajority; -import org.bouncycastle.asn1.isismtt.x509.MonetaryLimit; -import org.bouncycastle.asn1.isismtt.x509.NamingAuthority; -import org.bouncycastle.asn1.isismtt.x509.ProcurationSyntax; -import org.bouncycastle.asn1.isismtt.x509.ProfessionInfo; -import org.bouncycastle.asn1.isismtt.x509.Restriction; -import org.bouncycastle.asn1.misc.CAST5CBCParameters; -import org.bouncycastle.asn1.misc.IDEACBCPar; -import org.bouncycastle.asn1.mozilla.PublicKeyAndChallenge; -import org.bouncycastle.asn1.ocsp.BasicOCSPResponse; -import org.bouncycastle.asn1.ocsp.CertID; -import org.bouncycastle.asn1.ocsp.CertStatus; -import org.bouncycastle.asn1.ocsp.CrlID; -import org.bouncycastle.asn1.ocsp.OCSPRequest; -import org.bouncycastle.asn1.ocsp.OCSPResponse; -import org.bouncycastle.asn1.ocsp.OCSPResponseStatus; -import org.bouncycastle.asn1.ocsp.Request; -import org.bouncycastle.asn1.ocsp.ResponderID; -import org.bouncycastle.asn1.ocsp.ResponseBytes; -import org.bouncycastle.asn1.ocsp.ResponseData; -import org.bouncycastle.asn1.ocsp.RevokedInfo; -import org.bouncycastle.asn1.ocsp.Signature; -import org.bouncycastle.asn1.ocsp.SingleResponse; -import org.bouncycastle.asn1.ocsp.TBSRequest; -import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; -import org.bouncycastle.asn1.pkcs.AuthenticatedSafe; -import org.bouncycastle.asn1.pkcs.CertificationRequest; -import org.bouncycastle.asn1.pkcs.CertificationRequestInfo; -import org.bouncycastle.asn1.pkcs.DHParameter; -import org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo; -import org.bouncycastle.asn1.pkcs.MacData; -import org.bouncycastle.asn1.pkcs.PBEParameter; -import org.bouncycastle.asn1.pkcs.PBES2Parameters; -import org.bouncycastle.asn1.pkcs.PBKDF2Params; -import org.bouncycastle.asn1.pkcs.PKCS12PBEParams; -import org.bouncycastle.asn1.pkcs.Pfx; -import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; -import org.bouncycastle.asn1.pkcs.RC2CBCParameter; -import org.bouncycastle.asn1.pkcs.RSAESOAEPparams; -import org.bouncycastle.asn1.pkcs.RSAPrivateKey; -import org.bouncycastle.asn1.pkcs.RSASSAPSSparams; -import org.bouncycastle.asn1.pkcs.SafeBag; -import org.bouncycastle.asn1.pkcs.SignedData; -import org.bouncycastle.asn1.sec.ECPrivateKey; -import org.bouncycastle.asn1.smime.SMIMECapabilities; -import org.bouncycastle.asn1.smime.SMIMECapability; -import org.bouncycastle.asn1.tsp.Accuracy; -import org.bouncycastle.asn1.tsp.MessageImprint; -import org.bouncycastle.asn1.tsp.TSTInfo; -import org.bouncycastle.asn1.tsp.TimeStampReq; -import org.bouncycastle.asn1.tsp.TimeStampResp; -import org.bouncycastle.asn1.x500.DirectoryString; -import org.bouncycastle.asn1.x500.RDN; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x509.AccessDescription; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.AttCertIssuer; -import org.bouncycastle.asn1.x509.AttCertValidityPeriod; -import org.bouncycastle.asn1.x509.AttributeCertificate; -import org.bouncycastle.asn1.x509.AttributeCertificateInfo; -import org.bouncycastle.asn1.x509.AuthorityInformationAccess; -import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier; -import org.bouncycastle.asn1.x509.BasicConstraints; -import org.bouncycastle.asn1.x509.CRLDistPoint; -import org.bouncycastle.asn1.x509.CRLNumber; -import org.bouncycastle.asn1.x509.CRLReason; -import org.bouncycastle.asn1.x509.Certificate; -import org.bouncycastle.asn1.x509.CertificateList; -import org.bouncycastle.asn1.x509.CertificatePair; -import org.bouncycastle.asn1.x509.CertificatePolicies; -import org.bouncycastle.asn1.x509.DSAParameter; -import org.bouncycastle.asn1.x509.DigestInfo; -import org.bouncycastle.asn1.x509.DisplayText; -import org.bouncycastle.asn1.x509.DistributionPoint; -import org.bouncycastle.asn1.x509.DistributionPointName; -import org.bouncycastle.asn1.x509.ExtendedKeyUsage; -import org.bouncycastle.asn1.x509.Extensions; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.GeneralNames; -import org.bouncycastle.asn1.x509.GeneralSubtree; -import org.bouncycastle.asn1.x509.Holder; -import org.bouncycastle.asn1.x509.IetfAttrSyntax; -import org.bouncycastle.asn1.x509.IssuerSerial; -import org.bouncycastle.asn1.x509.IssuingDistributionPoint; -import org.bouncycastle.asn1.x509.NameConstraints; -import org.bouncycastle.asn1.x509.NoticeReference; -import org.bouncycastle.asn1.x509.ObjectDigestInfo; -import org.bouncycastle.asn1.x509.PolicyInformation; -import org.bouncycastle.asn1.x509.PolicyMappings; -import org.bouncycastle.asn1.x509.PolicyQualifierInfo; -import org.bouncycastle.asn1.x509.PrivateKeyUsagePeriod; -import org.bouncycastle.asn1.x509.RSAPublicKeyStructure; -import org.bouncycastle.asn1.x509.RoleSyntax; -import org.bouncycastle.asn1.x509.SubjectDirectoryAttributes; -import org.bouncycastle.asn1.x509.SubjectKeyIdentifier; -import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; -import org.bouncycastle.asn1.x509.TBSCertList; -import org.bouncycastle.asn1.x509.TBSCertificate; -import org.bouncycastle.asn1.x509.TBSCertificateStructure; -import org.bouncycastle.asn1.x509.Target; -import org.bouncycastle.asn1.x509.TargetInformation; -import org.bouncycastle.asn1.x509.Targets; -import org.bouncycastle.asn1.x509.Time; -import org.bouncycastle.asn1.x509.UserNotice; -import org.bouncycastle.asn1.x509.V2Form; -import org.bouncycastle.asn1.x509.X509CertificateStructure; -import org.bouncycastle.asn1.x509.X509Extensions; -import org.bouncycastle.asn1.x509.X509Name; -import org.bouncycastle.asn1.x509.qualified.BiometricData; -import org.bouncycastle.asn1.x509.qualified.Iso4217CurrencyCode; -import org.bouncycastle.asn1.x509.qualified.MonetaryValue; -import org.bouncycastle.asn1.x509.qualified.QCStatement; -import org.bouncycastle.asn1.x509.qualified.SemanticsInformation; -import org.bouncycastle.asn1.x509.qualified.TypeOfBiometricData; -import org.bouncycastle.asn1.x509.sigi.NameOrPseudonym; -import org.bouncycastle.asn1.x509.sigi.PersonalData; -import org.bouncycastle.asn1.x9.DHDomainParameters; -import org.bouncycastle.asn1.x9.DHPublicKey; -import org.bouncycastle.asn1.x9.DHValidationParms; -import org.bouncycastle.asn1.x9.X962Parameters; -import org.bouncycastle.asn1.x9.X9ECParameters; -import org.bouncycastle.util.Integers; -import org.bouncycastle.util.encoders.Base64; - -public class GetInstanceTest - extends TestCase -{ - public static byte[] attrCert = Base64.decode( - "MIIHQDCCBqkCAQEwgZChgY2kgYowgYcxHDAaBgkqhkiG9w0BCQEWDW1sb3JjaEB2" - + "dC5lZHUxHjAcBgNVBAMTFU1hcmt1cyBMb3JjaCAobWxvcmNoKTEbMBkGA1UECxMS" - + "VmlyZ2luaWEgVGVjaCBVc2VyMRAwDgYDVQQLEwdDbGFzcyAyMQswCQYDVQQKEwJ2" - + "dDELMAkGA1UEBhMCVVMwgYmkgYYwgYMxGzAZBgkqhkiG9w0BCQEWDHNzaGFoQHZ0" - + "LmVkdTEbMBkGA1UEAxMSU3VtaXQgU2hhaCAoc3NoYWgpMRswGQYDVQQLExJWaXJn" - + "aW5pYSBUZWNoIFVzZXIxEDAOBgNVBAsTB0NsYXNzIDExCzAJBgNVBAoTAnZ0MQsw" - + "CQYDVQQGEwJVUzANBgkqhkiG9w0BAQQFAAIBBTAiGA8yMDAzMDcxODE2MDgwMloY" - + "DzIwMDMwNzI1MTYwODAyWjCCBU0wggVJBgorBgEEAbRoCAEBMYIFORaCBTU8UnVs" - + "ZSBSdWxlSWQ9IkZpbGUtUHJpdmlsZWdlLVJ1bGUiIEVmZmVjdD0iUGVybWl0Ij4K" - + "IDxUYXJnZXQ+CiAgPFN1YmplY3RzPgogICA8U3ViamVjdD4KICAgIDxTdWJqZWN0" - + "TWF0Y2ggTWF0Y2hJZD0idXJuOm9hc2lzOm5hbWVzOnRjOnhhY21sOjEuMDpmdW5j" - + "dGlvbjpzdHJpbmctZXF1YWwiPgogICAgIDxBdHRyaWJ1dGVWYWx1ZSBEYXRhVHlw" - + "ZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjc3RyaW5nIj4KICAg" - + "ICAgIENOPU1hcmt1cyBMb3JjaDwvQXR0cmlidXRlVmFsdWU+CiAgICAgPFN1Ympl" - + "Y3RBdHRyaWJ1dGVEZXNpZ25hdG9yIEF0dHJpYnV0ZUlkPSJ1cm46b2FzaXM6bmFt" - + "ZXM6dGM6eGFjbWw6MS4wOnN1YmplY3Q6c3ViamVjdC1pZCIgRGF0YVR5cGU9Imh0" - + "dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hI3N0cmluZyIgLz4gCiAgICA8" - + "L1N1YmplY3RNYXRjaD4KICAgPC9TdWJqZWN0PgogIDwvU3ViamVjdHM+CiAgPFJl" - + "c291cmNlcz4KICAgPFJlc291cmNlPgogICAgPFJlc291cmNlTWF0Y2ggTWF0Y2hJ" - + "ZD0idXJuOm9hc2lzOm5hbWVzOnRjOnhhY21sOjEuMDpmdW5jdGlvbjpzdHJpbmct" - + "ZXF1YWwiPgogICAgIDxBdHRyaWJ1dGVWYWx1ZSBEYXRhVHlwZT0iaHR0cDovL3d3" - + "dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjYW55VVJJIj4KICAgICAgaHR0cDovL3p1" - + "bmkuY3MudnQuZWR1PC9BdHRyaWJ1dGVWYWx1ZT4KICAgICA8UmVzb3VyY2VBdHRy" - + "aWJ1dGVEZXNpZ25hdG9yIEF0dHJpYnV0ZUlkPSJ1cm46b2FzaXM6bmFtZXM6dGM6" - + "eGFjbWw6MS4wOnJlc291cmNlOnJlc291cmNlLWlkIiBEYXRhVHlwZT0iaHR0cDov" - + "L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjYW55VVJJIiAvPiAKICAgIDwvUmVz" - + "b3VyY2VNYXRjaD4KICAgPC9SZXNvdXJjZT4KICA8L1Jlc291cmNlcz4KICA8QWN0" - + "aW9ucz4KICAgPEFjdGlvbj4KICAgIDxBY3Rpb25NYXRjaCBNYXRjaElkPSJ1cm46" - + "b2FzaXM6bmFtZXM6dGM6eGFjbWw6MS4wOmZ1bmN0aW9uOnN0cmluZy1lcXVhbCI+" - + "CiAgICAgPEF0dHJpYnV0ZVZhbHVlIERhdGFUeXBlPSJodHRwOi8vd3d3LnczLm9y" - + "Zy8yMDAxL1hNTFNjaGVtYSNzdHJpbmciPgpEZWxlZ2F0ZSBBY2Nlc3MgICAgIDwv" - + "QXR0cmlidXRlVmFsdWU+CgkgIDxBY3Rpb25BdHRyaWJ1dGVEZXNpZ25hdG9yIEF0" - + "dHJpYnV0ZUlkPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGFjbWw6MS4wOmFjdGlvbjph" - + "Y3Rpb24taWQiIERhdGFUeXBlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj" - + "aGVtYSNzdHJpbmciIC8+IAogICAgPC9BY3Rpb25NYXRjaD4KICAgPC9BY3Rpb24+" - + "CiAgPC9BY3Rpb25zPgogPC9UYXJnZXQ+CjwvUnVsZT4KMA0GCSqGSIb3DQEBBAUA" - + "A4GBAGiJSM48XsY90HlYxGmGVSmNR6ZW2As+bot3KAfiCIkUIOAqhcphBS23egTr" - + "6asYwy151HshbPNYz+Cgeqs45KkVzh7bL/0e1r8sDVIaaGIkjHK3CqBABnfSayr3" - + "Rd1yBoDdEv8Qb+3eEPH6ab9021AsLEnJ6LWTmybbOpMNZ3tv"); - - byte[] cert1 = Base64.decode( - "MIIDXjCCAsegAwIBAgIBBzANBgkqhkiG9w0BAQQFADCBtzELMAkGA1UEBhMCQVUx" - + "ETAPBgNVBAgTCFZpY3RvcmlhMRgwFgYDVQQHEw9Tb3V0aCBNZWxib3VybmUxGjAY" - + "BgNVBAoTEUNvbm5lY3QgNCBQdHkgTHRkMR4wHAYDVQQLExVDZXJ0aWZpY2F0ZSBB" - + "dXRob3JpdHkxFTATBgNVBAMTDENvbm5lY3QgNCBDQTEoMCYGCSqGSIb3DQEJARYZ" - + "d2VibWFzdGVyQGNvbm5lY3Q0LmNvbS5hdTAeFw0wMDA2MDIwNzU2MjFaFw0wMTA2" - + "MDIwNzU2MjFaMIG4MQswCQYDVQQGEwJBVTERMA8GA1UECBMIVmljdG9yaWExGDAW" - + "BgNVBAcTD1NvdXRoIE1lbGJvdXJuZTEaMBgGA1UEChMRQ29ubmVjdCA0IFB0eSBM" - + "dGQxFzAVBgNVBAsTDldlYnNlcnZlciBUZWFtMR0wGwYDVQQDExR3d3cyLmNvbm5l" - + "Y3Q0LmNvbS5hdTEoMCYGCSqGSIb3DQEJARYZd2VibWFzdGVyQGNvbm5lY3Q0LmNv" - + "bS5hdTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArvDxclKAhyv7Q/Wmr2re" - + "Gw4XL9Cnh9e+6VgWy2AWNy/MVeXdlxzd7QAuc1eOWQkGQEiLPy5XQtTY+sBUJ3AO" - + "Rvd2fEVJIcjf29ey7bYua9J/vz5MG2KYo9/WCHIwqD9mmG9g0xLcfwq/s8ZJBswE" - + "7sb85VU+h94PTvsWOsWuKaECAwEAAaN3MHUwJAYDVR0RBB0wG4EZd2VibWFzdGVy" - + "QGNvbm5lY3Q0LmNvbS5hdTA6BglghkgBhvhCAQ0ELRYrbW9kX3NzbCBnZW5lcmF0" - + "ZWQgY3VzdG9tIHNlcnZlciBjZXJ0aWZpY2F0ZTARBglghkgBhvhCAQEEBAMCBkAw" - + "DQYJKoZIhvcNAQEEBQADgYEAotccfKpwSsIxM1Hae8DR7M/Rw8dg/RqOWx45HNVL" - + "iBS4/3N/TO195yeQKbfmzbAA2jbPVvIvGgTxPgO1MP4ZgvgRhasaa0qCJCkWvpM4" - + "yQf33vOiYQbpv4rTwzU8AmRlBG45WdjyNIigGV+oRc61aKCTnLq7zB8N3z1TF/bF" - + "5/8="); - - private byte[] v2CertList = Base64.decode( - "MIICjTCCAfowDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMxIDAeBgNVBAoT" - + "F1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy" - + "IENlcnRpZmljYXRpb24gQXV0aG9yaXR5Fw05NTA1MDIwMjEyMjZaFw05NTA2MDEw" - + "MDAxNDlaMIIBaDAWAgUCQQAABBcNOTUwMjAxMTcyNDI2WjAWAgUCQQAACRcNOTUw" - + "MjEwMDIxNjM5WjAWAgUCQQAADxcNOTUwMjI0MDAxMjQ5WjAWAgUCQQAADBcNOTUw" - + "MjI1MDA0NjQ0WjAWAgUCQQAAGxcNOTUwMzEzMTg0MDQ5WjAWAgUCQQAAFhcNOTUw" - + "MzE1MTkxNjU0WjAWAgUCQQAAGhcNOTUwMzE1MTk0MDQxWjAWAgUCQQAAHxcNOTUw" - + "MzI0MTk0NDMzWjAWAgUCcgAABRcNOTUwMzI5MjAwNzExWjAWAgUCcgAAERcNOTUw" - + "MzMwMDIzNDI2WjAWAgUCQQAAIBcNOTUwNDA3MDExMzIxWjAWAgUCcgAAHhcNOTUw" - + "NDA4MDAwMjU5WjAWAgUCcgAAQRcNOTUwNDI4MTcxNzI0WjAWAgUCcgAAOBcNOTUw" - + "NDI4MTcyNzIxWjAWAgUCcgAATBcNOTUwNTAyMDIxMjI2WjANBgkqhkiG9w0BAQIF" - + "AAN+AHqOEJXSDejYy0UwxxrH/9+N2z5xu/if0J6qQmK92W0hW158wpJg+ovV3+wQ" - + "wvIEPRL2rocL0tKfAsVq1IawSJzSNgxG0lrcla3MrJBnZ4GaZDu4FutZh72MR3Gt" - + "JaAL3iTJHJD55kK2D/VoyY1djlsPuNh6AEgdVwFAyp0v"); - - private static final Object[] NULL_ARGS = new Object[] { null }; - - private void doFullGetInstanceTest(Class clazz, ASN1Object o1) - throws Exception - { - Method m; - - try - { - m = clazz.getMethod("getInstance", Object.class); - } - catch (NoSuchMethodException e) - { - fail("no getInstance method found"); - return; - } - - ASN1Object o2 = (ASN1Object)m.invoke(clazz, NULL_ARGS); - if (o2 != null) - { - fail(clazz.getName() + " null failed"); - } - - o2 = (ASN1Object)m.invoke(clazz, o1); - - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " equality failed"); - } - - o2 = (ASN1Object)m.invoke(clazz, o1.getEncoded()); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " encoded equality failed"); - } - - o2 = (ASN1Object)m.invoke(clazz, o1.toASN1Primitive()); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " sequence equality failed"); - } - - try - { - m = clazz.getMethod("getInstance", ASN1TaggedObject.class, Boolean.TYPE); - } - catch (NoSuchMethodException e) - { - return; - } - - ASN1TaggedObject t = new DERTaggedObject(true, 0, o1); - o2 = (ASN1Object)m.invoke(clazz, t, true); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " tag equality failed"); - } - - t = new DERTaggedObject(true, 0, o1.toASN1Primitive()); - o2 = (ASN1Object)m.invoke(clazz, t, true); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " tag equality failed"); - } - - t = ASN1TaggedObject.getInstance(t.getEncoded()); - o2 = (ASN1Object)m.invoke(clazz, t, true); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " tag equality failed"); - } - - t = new DERTaggedObject(false, 0, o1); - o2 = (ASN1Object)m.invoke(clazz, t, false); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " tag equality failed"); - } - - t = new DERTaggedObject(false, 0, o1.toASN1Primitive()); - o2 = (ASN1Object)m.invoke(clazz, t, false); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " tag equality failed"); - } - - t = ASN1TaggedObject.getInstance(t.getEncoded()); - o2 = (ASN1Object)m.invoke(clazz, t, false); - if (!o1.equals(o2) || !clazz.isInstance(o2)) - { - fail(clazz.getName() + " tag equality failed"); - } - } - - public void testGetInstance() - throws Exception - { - doFullGetInstanceTest(DERPrintableString.class, new DERPrintableString("hello world")); - doFullGetInstanceTest(DERBMPString.class, new DERBMPString("hello world")); - doFullGetInstanceTest(DERUTF8String.class, new DERUTF8String("hello world")); - doFullGetInstanceTest(DERUniversalString.class, new DERUniversalString(new byte[20])); - doFullGetInstanceTest(DERIA5String.class, new DERIA5String("hello world")); - doFullGetInstanceTest(DERGeneralString.class, new DERGeneralString("hello world")); - doFullGetInstanceTest(DERNumericString.class, new DERNumericString("hello world")); - doFullGetInstanceTest(DERNumericString.class, new DERNumericString("99999", true)); - doFullGetInstanceTest(DERT61String.class, new DERT61String("hello world")); - doFullGetInstanceTest(DERVisibleString.class, new DERVisibleString("hello world")); - - doFullGetInstanceTest(ASN1Integer.class, new ASN1Integer(1)); - doFullGetInstanceTest(ASN1GeneralizedTime.class, new ASN1GeneralizedTime(new Date())); - doFullGetInstanceTest(ASN1UTCTime.class, new ASN1UTCTime(new Date())); - doFullGetInstanceTest(ASN1Enumerated.class, new ASN1Enumerated(1)); - - CMPCertificate cmpCert = new CMPCertificate(Certificate.getInstance(cert1)); - CertificateList crl = CertificateList.getInstance(v2CertList); - AttributeCertificate attributeCert = AttributeCertificate.getInstance(attrCert); - - doFullGetInstanceTest(CAKeyUpdAnnContent.class, new CAKeyUpdAnnContent(cmpCert, cmpCert, cmpCert)); - - CertConfirmContent.getInstance(null); - CertifiedKeyPair.getInstance(null); - CertOrEncCert.getInstance(null); - CertRepMessage.getInstance(null); - doFullGetInstanceTest(CertResponse.class, new CertResponse(new ASN1Integer(1), new PKIStatusInfo(PKIStatus.granted))); - doFullGetInstanceTest(org.bouncycastle.asn1.cmp.CertStatus.class, new org.bouncycastle.asn1.cmp.CertStatus(new byte[10], BigInteger.valueOf(1), new PKIStatusInfo(PKIStatus.granted))); - doFullGetInstanceTest(Challenge.class, new Challenge(new AlgorithmIdentifier(OIWObjectIdentifiers.idSHA1, DERNull.INSTANCE), new byte[10], new byte[10])); - - doFullGetInstanceTest(CMPCertificate.class, cmpCert); - doFullGetInstanceTest(CRLAnnContent.class, new CRLAnnContent(crl)); - doFullGetInstanceTest(ErrorMsgContent.class, new ErrorMsgContent(new PKIStatusInfo(PKIStatus.granted), new ASN1Integer(1), new PKIFreeText("fred"))); - GenMsgContent.getInstance(null); - GenRepContent.getInstance(null); - InfoTypeAndValue.getInstance(null); - KeyRecRepContent.getInstance(null); - OOBCertHash.getInstance(null); - PBMParameter.getInstance(null); - PKIBody.getInstance(null); - PKIConfirmContent.getInstance(null); - PKIFreeText.getInstance(null); - doFullGetInstanceTest(PKIFreeText.class, new PKIFreeText("hello world")); - doFullGetInstanceTest(PKIFreeText.class, new PKIFreeText(new String[]{"hello", "world"})); - doFullGetInstanceTest(PKIFreeText.class, new PKIFreeText(new DERUTF8String[]{new DERUTF8String("hello"), new DERUTF8String("world")})); - PKIHeader.getInstance(null); - PKIMessage.getInstance(null); - PKIMessages.getInstance(null); - doFullGetInstanceTest(PKIStatusInfo.class, new PKIStatusInfo(PKIStatus.rejection, new PKIFreeText("hello world"), new PKIFailureInfo(PKIFailureInfo.badAlg))); - doFullGetInstanceTest(PKIStatusInfo.class, new PKIStatusInfo(PKIStatus.granted, new PKIFreeText("hello world"))); - PKIStatus.getInstance(null); - PollRepContent.getInstance(null); - PollReqContent.getInstance(null); - POPODecKeyChallContent.getInstance(null); - POPODecKeyRespContent.getInstance(null); - ProtectedPart.getInstance(null); - RevAnnContent.getInstance(null); - RevDetails.getInstance(null); - RevRepContent.getInstance(null); - RevReqContent.getInstance(null); - Attribute.getInstance(null); - Attributes.getInstance(null); - AuthenticatedData.getInstance(null); - AuthenticatedData.getInstance(null); - AuthEnvelopedData.getInstance(null); - AuthEnvelopedData.getInstance(null); - CompressedData.getInstance(null); - CompressedData.getInstance(null); - ContentInfo.getInstance(null); - EncryptedContentInfo.getInstance(null); - EncryptedData.getInstance(null); - EnvelopedData.getInstance(null); - EnvelopedData.getInstance(null); - Evidence.getInstance(null); - IssuerAndSerialNumber.getInstance(null); - KEKIdentifier.getInstance(null); - KEKIdentifier.getInstance(null); - KEKRecipientInfo.getInstance(null); - KEKRecipientInfo.getInstance(null); - KeyAgreeRecipientIdentifier.getInstance(null); - KeyAgreeRecipientIdentifier.getInstance(null); - KeyAgreeRecipientInfo.getInstance(null); - KeyAgreeRecipientInfo.getInstance(null); - KeyTransRecipientInfo.getInstance(null); - MetaData.getInstance(null); - OriginatorIdentifierOrKey.getInstance(null); - OriginatorIdentifierOrKey.getInstance(null); - OriginatorInfo.getInstance(null); - OriginatorInfo.getInstance(null); - OriginatorPublicKey.getInstance(null); - OriginatorPublicKey.getInstance(null); - OtherKeyAttribute.getInstance(null); - OtherRecipientInfo.getInstance(null); - OtherRecipientInfo.getInstance(null); - PasswordRecipientInfo.getInstance(null); - PasswordRecipientInfo.getInstance(null); - RecipientEncryptedKey.getInstance(null); - RecipientIdentifier.getInstance(null); - RecipientInfo.getInstance(null); - RecipientKeyIdentifier.getInstance(null); - RecipientKeyIdentifier.getInstance(null); - SignedData.getInstance(null); - SignerIdentifier.getInstance(null); - SignerInfo.getInstance(null); - Time.getInstance(null); - Time.getInstance(null); - TimeStampAndCRL.getInstance(null); - TimeStampedData.getInstance(null); - TimeStampTokenEvidence.getInstance(null); - AttributeTypeAndValue.getInstance(null); - - doFullGetInstanceTest(CertId.class, new CertId(new GeneralName(new X500Name("CN=Test")), BigInteger.valueOf(1))); - - - CertReqMessages.getInstance(null); - CertReqMsg.getInstance(null); - CertRequest.getInstance(null); - CertTemplate.getInstance(null); - Controls.getInstance(null); - EncKeyWithID.getInstance(null); - EncryptedKey.getInstance(null); - EncryptedValue.getInstance(null); - OptionalValidity.getInstance(null); - PKIArchiveOptions.getInstance(null); - PKIPublicationInfo.getInstance(null); - PKMACValue.getInstance(null); - PKMACValue.getInstance(null); - POPOPrivKey.getInstance(null); - POPOSigningKeyInput.getInstance(null); - POPOSigningKey.getInstance(null); - POPOSigningKey.getInstance(null); - ProofOfPossession.getInstance(null); - SinglePubInfo.getInstance(null); - ECGOST3410ParamSetParameters.getInstance(null); - ECGOST3410ParamSetParameters.getInstance(null); - GOST28147Parameters.getInstance(null); - GOST28147Parameters.getInstance(null); - GOST3410ParamSetParameters.getInstance(null); - GOST3410ParamSetParameters.getInstance(null); - GOST3410PublicKeyAlgParameters.getInstance(null); - GOST3410PublicKeyAlgParameters.getInstance(null); - CertificateBody.getInstance(null); - CVCertificate.getInstance(null); - CVCertificateRequest.getInstance(null); - PublicKeyDataObject.getInstance(null); - UnsignedInteger.getInstance(null); - CommitmentTypeIndication.getInstance(null); - CommitmentTypeQualifier.getInstance(null); - - OcspIdentifier ocspIdentifier = new OcspIdentifier(new ResponderID(new X500Name("CN=Test")), new ASN1GeneralizedTime(new Date())); - CrlListID crlListID = new CrlListID(new CrlValidatedID[]{new CrlValidatedID(new OtherHash(new byte[20]))}); - OcspListID ocspListID = new OcspListID(new OcspResponsesID[] { new OcspResponsesID(ocspIdentifier) }); - OtherRevRefs otherRevRefs = new OtherRevRefs(new ASN1ObjectIdentifier("1.2.1"), new DERSequence()); - OtherRevVals otherRevVals = new OtherRevVals(new ASN1ObjectIdentifier("1.2.1"), new DERSequence()); - CrlOcspRef crlOcspRef = new CrlOcspRef(crlListID, ocspListID, otherRevRefs); - doFullGetInstanceTest(CompleteRevocationRefs.class, new CompleteRevocationRefs(new CrlOcspRef[]{crlOcspRef, crlOcspRef})); - - doFullGetInstanceTest(CrlIdentifier.class, new CrlIdentifier(new X500Name("CN=Test"), new ASN1UTCTime(new Date()), BigInteger.valueOf(1))); - - - doFullGetInstanceTest(CrlListID.class, crlListID); - doFullGetInstanceTest(CrlOcspRef.class, crlOcspRef); - doFullGetInstanceTest(CrlValidatedID.class, new CrlValidatedID(new OtherHash(new byte[20]))); - doFullGetInstanceTest(OcspIdentifier.class, ocspIdentifier); - doFullGetInstanceTest(OcspListID.class, ocspListID); - doFullGetInstanceTest(OcspResponsesID.class, new OcspResponsesID(ocspIdentifier)); - - OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue(new AlgorithmIdentifier(OIWObjectIdentifiers.idSHA1, DERNull.INSTANCE), new DEROctetString(new byte[10])); - doFullGetInstanceTest(OtherHashAlgAndValue.class, otherHashAlgAndValue); - OtherHash.getInstance(null); - doFullGetInstanceTest(OtherRevRefs.class, otherRevRefs); - doFullGetInstanceTest(OtherRevVals.class, otherRevVals); - doFullGetInstanceTest(RevocationValues.class, new RevocationValues(new CertificateList[]{crl}, null, otherRevVals)); - - SignaturePolicyId signaturePolicyId = new SignaturePolicyId(new ASN1ObjectIdentifier("1.2.1"), otherHashAlgAndValue); - doFullGetInstanceTest(SignaturePolicyIdentifier.class, new SignaturePolicyIdentifier()); - doFullGetInstanceTest(SignaturePolicyIdentifier.class, new SignaturePolicyIdentifier(signaturePolicyId)); - doFullGetInstanceTest(SignaturePolicyId.class, signaturePolicyId); - doFullGetInstanceTest(SignerAttribute.class, new SignerAttribute(new org.bouncycastle.asn1.x509.Attribute[]{new org.bouncycastle.asn1.x509.Attribute(new ASN1ObjectIdentifier("1.2.1"), new DERSet())})); - doFullGetInstanceTest(SignerAttribute.class, new SignerAttribute(attributeCert)); - - ASN1EncodableVector postalAddr = new ASN1EncodableVector(); - - postalAddr.add(new DERUTF8String("line 1")); - postalAddr.add(new DERUTF8String("line 2")); - - doFullGetInstanceTest(SignerLocation.class, new SignerLocation(new DERUTF8String("AU"), new DERUTF8String("Melbourne"), new DERSequence(postalAddr))); - doFullGetInstanceTest(SigPolicyQualifierInfo.class, new SigPolicyQualifierInfo(new ASN1ObjectIdentifier("1.2.1"), new DERSequence())); - SigPolicyQualifiers.getInstance(null); - SPuri.getInstance(null); - Vector v = new Vector(); - - v.add(Integers.valueOf(1)); - v.add(BigInteger.valueOf(2)); - NoticeReference noticeReference = new NoticeReference("BC", v); - doFullGetInstanceTest(SPUserNotice.class, new SPUserNotice(noticeReference, new DisplayText("hello world"))); - ContentHints.getInstance(null); - ContentIdentifier.getInstance(null); - ESSCertID.getInstance(null); - ESSCertIDv2.getInstance(null); - OtherCertID.getInstance(null); - OtherSigningCertificate.getInstance(null); - SigningCertificate.getInstance(null); - SigningCertificateV2.getInstance(null); - CscaMasterList.getInstance(null); - DataGroupHash.getInstance(null); - LDSSecurityObject.getInstance(null); - LDSVersionInfo.getInstance(null); - CAST5CBCParameters.getInstance(null); - IDEACBCPar.getInstance(null); - PublicKeyAndChallenge.getInstance(null); - BasicOCSPResponse.getInstance(null); - BasicOCSPResponse.getInstance(null); - - doFullGetInstanceTest(CertID.class, new CertID(new AlgorithmIdentifier(OIWObjectIdentifiers.idSHA1, DERNull.INSTANCE), new DEROctetString(new byte[1]), new DEROctetString(new byte[1]), new ASN1Integer(1))); - - CertStatus.getInstance(null); - CertStatus.getInstance(null); - CrlID.getInstance(null); - OCSPRequest.getInstance(null); - OCSPRequest.getInstance(null); - OCSPResponse.getInstance(null); - OCSPResponse.getInstance(null); - OCSPResponseStatus.getInstance(null); - Request.getInstance(null); - Request.getInstance(null); - ResponderID.getInstance(null); - ResponderID.getInstance(null); - ResponseBytes.getInstance(null); - ResponseBytes.getInstance(null); - ResponseData.getInstance(null); - ResponseData.getInstance(null); - RevokedInfo.getInstance(null); - RevokedInfo.getInstance(null); - Signature.getInstance(null); - Signature.getInstance(null); - SingleResponse.getInstance(null); - SingleResponse.getInstance(null); - TBSRequest.getInstance(null); - TBSRequest.getInstance(null); - Attribute.getInstance(null); - AuthenticatedSafe.getInstance(null); - CertificationRequestInfo.getInstance(null); - CertificationRequest.getInstance(null); - ContentInfo.getInstance(null); - DHParameter.getInstance(null); - EncryptedData.getInstance(null); - EncryptedPrivateKeyInfo.getInstance(null); - AlgorithmIdentifier.getInstance(null); - IssuerAndSerialNumber.getInstance(null); - MacData.getInstance(null); - PBEParameter.getInstance(null); - PBES2Parameters.getInstance(null); - PBKDF2Params.getInstance(null); - Pfx.getInstance(null); - PKCS12PBEParams.getInstance(null); - PrivateKeyInfo.getInstance(null); - PrivateKeyInfo.getInstance(null); - RC2CBCParameter.getInstance(null); - RSAESOAEPparams.getInstance(null); - RSAPrivateKey.getInstance(null); - RSAPrivateKey.getInstance(null); - RSAPublicKey.getInstance(null); - RSAPublicKey.getInstance(null); - RSASSAPSSparams.getInstance(null); - SafeBag.getInstance(null); - SignedData.getInstance(null); - SignerInfo.getInstance(null); - ECPrivateKey.getInstance(null); - SMIMECapabilities.getInstance(null); - SMIMECapability.getInstance(null); - Accuracy.getInstance(null); - MessageImprint.getInstance(null); - TimeStampReq.getInstance(null); - TimeStampResp.getInstance(null); - TSTInfo.getInstance(null); - AttributeTypeAndValue.getInstance(null); - DirectoryString.getInstance(null); - DirectoryString.getInstance(null); - RDN.getInstance(null); - X500Name.getInstance(null); - X500Name.getInstance(null); - AccessDescription.getInstance(null); - AlgorithmIdentifier.getInstance(null); - AlgorithmIdentifier.getInstance(null); - AttCertIssuer.getInstance(null); - AttCertIssuer.getInstance(null); - AttCertValidityPeriod.getInstance(null); - AttributeCertificateInfo.getInstance(null); - AttributeCertificateInfo.getInstance(null); - AttributeCertificate.getInstance(null); - Attribute.getInstance(null); - AuthorityInformationAccess.getInstance(null); - AuthorityKeyIdentifier.getInstance(null); - AuthorityKeyIdentifier.getInstance(null); - BasicConstraints.getInstance(null); - BasicConstraints.getInstance(null); - Certificate.getInstance(null); - Certificate.getInstance(null); - CertificateList.getInstance(null); - CertificateList.getInstance(null); - CertificatePair.getInstance(null); - CertificatePolicies.getInstance(null); - CertificatePolicies.getInstance(null); - CRLDistPoint.getInstance(null); - CRLDistPoint.getInstance(null); - CRLNumber.getInstance(null); - CRLReason.getInstance(null); - DigestInfo.getInstance(null); - DigestInfo.getInstance(null); - DisplayText.getInstance(null); - DisplayText.getInstance(null); - DistributionPoint.getInstance(null); - DistributionPoint.getInstance(null); - DistributionPointName.getInstance(null); - DistributionPointName.getInstance(null); - DSAParameter.getInstance(null); - DSAParameter.getInstance(null); - ExtendedKeyUsage.getInstance(null); - ExtendedKeyUsage.getInstance(null); - Extensions.getInstance(null); - Extensions.getInstance(null); - GeneralName.getInstance(null); - GeneralName.getInstance(null); - GeneralNames.getInstance(null); - GeneralNames.getInstance(null); - - GeneralSubtree generalSubtree = new GeneralSubtree(new GeneralName(new X500Name("CN=Test"))); - ASN1ObjectIdentifier algOid = new ASN1ObjectIdentifier("1.2.1"); - ObjectDigestInfo objectDigestInfo = new ObjectDigestInfo(ObjectDigestInfo.otherObjectDigest, algOid, new AlgorithmIdentifier(algOid), new byte[20]); - - doFullGetInstanceTest(GeneralSubtree.class, generalSubtree); - doFullGetInstanceTest(Holder.class, new Holder(objectDigestInfo)); - IetfAttrSyntax.getInstance(null); - IssuerSerial.getInstance(null); - IssuerSerial.getInstance(null); - IssuingDistributionPoint.getInstance(null); - IssuingDistributionPoint.getInstance(null); - DERBitString.getInstance(null); - - v.clear(); - v.add(generalSubtree); - - doFullGetInstanceTest(NameConstraints.class, new NameConstraints(null, null)); - doFullGetInstanceTest(NoticeReference.class, noticeReference); - doFullGetInstanceTest(ObjectDigestInfo.class, objectDigestInfo); - - PolicyInformation.getInstance(null); - PolicyMappings.getInstance(null); - PolicyQualifierInfo.getInstance(null); - PrivateKeyUsagePeriod.getInstance(null); - doFullGetInstanceTest(RoleSyntax.class, new RoleSyntax(new GeneralNames(new GeneralName(new X500Name("CN=Test"))), new GeneralName(GeneralName.uniformResourceIdentifier, "http://bc"))); - RSAPublicKeyStructure.getInstance(null); - RSAPublicKeyStructure.getInstance(null); - SubjectDirectoryAttributes.getInstance(null); - SubjectKeyIdentifier.getInstance(null); - SubjectKeyIdentifier.getInstance(null); - SubjectPublicKeyInfo.getInstance(null); - SubjectPublicKeyInfo.getInstance(null); - TargetInformation.getInstance(null); - Target.getInstance(null); - Targets.getInstance(null); - TBSCertificate.getInstance(null); - TBSCertificate.getInstance(null); - TBSCertificateStructure.getInstance(null); - TBSCertificateStructure.getInstance(null); - TBSCertList.CRLEntry.getInstance(null); - TBSCertList.getInstance(null); - TBSCertList.getInstance(null); - Time.getInstance(null); - Time.getInstance(null); - doFullGetInstanceTest(UserNotice.class, new UserNotice(noticeReference, "hello world")); - V2Form.getInstance(null); - V2Form.getInstance(null); - X509CertificateStructure.getInstance(null); - X509CertificateStructure.getInstance(null); - X509Extensions.getInstance(null); - X509Extensions.getInstance(null); - X509Name.getInstance(null); - X509Name.getInstance(null); - DHDomainParameters.getInstance(null); - DHDomainParameters.getInstance(null); - DHPublicKey.getInstance(null); - DHPublicKey.getInstance(null); - DHValidationParms.getInstance(null); - DHValidationParms.getInstance(null); - X962Parameters.getInstance(null); - X962Parameters.getInstance(null); - X9ECParameters.getInstance(null); - MQVuserKeyingMaterial.getInstance(null); - MQVuserKeyingMaterial.getInstance(null); - CertHash.getInstance(null); - RequestedCertificate.getInstance(null); - RequestedCertificate.getInstance(null); - AdditionalInformationSyntax.getInstance(null); - Admissions.getInstance(null); - AdmissionSyntax.getInstance(null); - DeclarationOfMajority.getInstance(null); - MonetaryLimit.getInstance(null); - NamingAuthority.getInstance(null); - NamingAuthority.getInstance(null); - ProcurationSyntax.getInstance(null); - ProfessionInfo.getInstance(null); - Restriction.getInstance(null); - BiometricData.getInstance(null); - Iso4217CurrencyCode.getInstance(null); - MonetaryValue.getInstance(null); - QCStatement.getInstance(null); - SemanticsInformation.getInstance(null); - TypeOfBiometricData.getInstance(null); - NameOrPseudonym.getInstance(null); - PersonalData.getInstance(null); - } - - public String getName() - { - return "GetInstanceNullTest"; - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/InputStreamTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/InputStreamTest.java deleted file mode 100644 index 819d285..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/InputStreamTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.util.test.SimpleTest; - -public class InputStreamTest - extends SimpleTest -{ - private static final byte[] outOfBoundsLength = new byte[] { (byte)0x30, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff }; - private static final byte[] negativeLength = new byte[] { (byte)0x30, (byte)0x84, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff }; - private static final byte[] outsideLimitLength = new byte[] { (byte)0x30, (byte)0x83, (byte)0x0f, (byte)0xff, (byte)0xff }; - - - public String getName() - { - return "InputStream"; - } - - public void performTest() - throws Exception - { - ASN1InputStream aIn = new ASN1InputStream(outOfBoundsLength); - - try - { - aIn.readObject(); - fail("out of bounds length not detected."); - } - catch (IOException e) - { - if (!e.getMessage().startsWith("DER length more than 4 bytes")) - { - fail("wrong exception: " + e.getMessage()); - } - } - - aIn = new ASN1InputStream(negativeLength); - - try - { - aIn.readObject(); - fail("negative length not detected."); - } - catch (IOException e) - { - if (!e.getMessage().equals("corrupted stream - negative length found")) - { - fail("wrong exception: " + e.getMessage()); - } - } - - aIn = new ASN1InputStream(outsideLimitLength); - - try - { - aIn.readObject(); - fail("outside limit length not detected."); - } - catch (IOException e) - { - if (!e.getMessage().equals("corrupted stream - out of bounds length found")) - { - fail("wrong exception: " + e.getMessage()); - } - } - } - - public static void main( - String[] args) - { - runTest(new InputStreamTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java deleted file mode 100644 index 9a1d6a8..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java +++ /dev/null @@ -1,142 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.x509.qualified.Iso4217CurrencyCode; -import org.bouncycastle.util.test.SimpleTest; - -public class Iso4217CurrencyCodeUnitTest - extends SimpleTest -{ - private static final String ALPHABETIC_CURRENCY_CODE = "AUD"; - private static final int NUMERIC_CURRENCY_CODE = 1; - - public String getName() - { - return "Iso4217CurrencyCode"; - } - - public void performTest() - throws Exception - { - // - // alphabetic - // - Iso4217CurrencyCode cc = new Iso4217CurrencyCode(ALPHABETIC_CURRENCY_CODE); - - checkNumeric(cc, ALPHABETIC_CURRENCY_CODE); - - cc = Iso4217CurrencyCode.getInstance(cc); - - checkNumeric(cc, ALPHABETIC_CURRENCY_CODE); - - ASN1Primitive obj = cc.toASN1Object(); - - cc = Iso4217CurrencyCode.getInstance(obj); - - checkNumeric(cc, ALPHABETIC_CURRENCY_CODE); - - // - // numeric - // - cc = new Iso4217CurrencyCode(NUMERIC_CURRENCY_CODE); - - checkNumeric(cc, NUMERIC_CURRENCY_CODE); - - cc = Iso4217CurrencyCode.getInstance(cc); - - checkNumeric(cc, NUMERIC_CURRENCY_CODE); - - obj = cc.toASN1Object(); - - cc = Iso4217CurrencyCode.getInstance(obj); - - checkNumeric(cc, NUMERIC_CURRENCY_CODE); - - cc = Iso4217CurrencyCode.getInstance(null); - - if (cc != null) - { - fail("null getInstance() failed."); - } - - try - { - Iso4217CurrencyCode.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - new Iso4217CurrencyCode("ABCD"); - - fail("constructor failed to detect out of range currencycode."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - new Iso4217CurrencyCode(0); - - fail("constructor failed to detect out of range small numeric code."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - new Iso4217CurrencyCode(1000); - - fail("constructor failed to detect out of range large numeric code."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkNumeric( - Iso4217CurrencyCode cc, - String code) - { - if (!cc.isAlphabetic()) - { - fail("non-alphabetic code found when one expected."); - } - - if (!cc.getAlphabetic().equals(code)) - { - fail("string codes don't match."); - } - } - - private void checkNumeric( - Iso4217CurrencyCode cc, - int code) - { - if (cc.isAlphabetic()) - { - fail("alphabetic code found when one not expected."); - } - - if (cc.getNumeric() != code) - { - fail("numeric codes don't match."); - } - } - - public static void main( - String[] args) - { - runTest(new Iso4217CurrencyCodeUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/IssuingDistributionPointUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/IssuingDistributionPointUnitTest.java deleted file mode 100644 index 3f27f19..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/IssuingDistributionPointUnitTest.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.x509.DistributionPointName; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.GeneralNames; -import org.bouncycastle.asn1.x509.IssuingDistributionPoint; -import org.bouncycastle.asn1.x509.ReasonFlags; -import org.bouncycastle.asn1.x509.X509Name; -import org.bouncycastle.util.test.SimpleTest; - -public class IssuingDistributionPointUnitTest - extends SimpleTest -{ - public String getName() - { - return "IssuingDistributionPoint"; - } - - public void performTest() - throws Exception - { - DistributionPointName name = new DistributionPointName( - new GeneralNames(new GeneralName(new X509Name("cn=test")))); - ReasonFlags reasonFlags = new ReasonFlags(ReasonFlags.cACompromise); - - checkPoint(6, name, true, true, reasonFlags, true, true); - - checkPoint(2, name, false, false, reasonFlags, false, false); - - checkPoint(0, null, false, false, null, false, false); - - try - { - IssuingDistributionPoint.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkPoint( - int size, - DistributionPointName distributionPoint, - boolean onlyContainsUserCerts, - boolean onlyContainsCACerts, - ReasonFlags onlySomeReasons, - boolean indirectCRL, - boolean onlyContainsAttributeCerts) - throws IOException - { - IssuingDistributionPoint point = new IssuingDistributionPoint(distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts); - - checkValues(point, distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts); - - ASN1Sequence seq = ASN1Sequence.getInstance(ASN1Primitive.fromByteArray(point.getEncoded())); - - if (seq.size() != size) - { - fail("size mismatch"); - } - - point = IssuingDistributionPoint.getInstance(seq); - - checkValues(point, distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts); - } - - private void checkValues(IssuingDistributionPoint point, DistributionPointName distributionPoint, boolean onlyContainsUserCerts, boolean onlyContainsCACerts, ReasonFlags onlySomeReasons, boolean indirectCRL, boolean onlyContainsAttributeCerts) - { - if (point.onlyContainsUserCerts() != onlyContainsUserCerts) - { - fail("mismatch on onlyContainsUserCerts"); - } - - if (point.onlyContainsCACerts() != onlyContainsCACerts) - { - fail("mismatch on onlyContainsCACerts"); - } - - if (point.isIndirectCRL() != indirectCRL) - { - fail("mismatch on indirectCRL"); - } - - if (point.onlyContainsAttributeCerts() != onlyContainsAttributeCerts) - { - fail("mismatch on onlyContainsAttributeCerts"); - } - - if (!isEquiv(onlySomeReasons, point.getOnlySomeReasons())) - { - fail("mismatch on onlySomeReasons"); - } - - if (!isEquiv(distributionPoint, point.getDistributionPoint())) - { - fail("mismatch on distributionPoint"); - } - } - - private boolean isEquiv(Object o1, Object o2) - { - if (o1 == null) - { - return o2 == null; - } - - return o1.equals(o2); - } - - public static void main( - String[] args) - { - runTest(new IssuingDistributionPointUnitTest()); - } -}
\ No newline at end of file diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/KeyUsageTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/KeyUsageTest.java deleted file mode 100644 index f5c90cd..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/KeyUsageTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.x509.KeyUsage; -import org.bouncycastle.util.test.SimpleTest; - -public class KeyUsageTest - extends SimpleTest -{ - public String getName() - { - return "KeyUsage"; - } - - public void performTest() - throws IOException - { - BitStringConstantTester.testFlagValueCorrect(0, KeyUsage.digitalSignature); - BitStringConstantTester.testFlagValueCorrect(1, KeyUsage.nonRepudiation); - BitStringConstantTester.testFlagValueCorrect(2, KeyUsage.keyEncipherment); - BitStringConstantTester.testFlagValueCorrect(3, KeyUsage.dataEncipherment); - BitStringConstantTester.testFlagValueCorrect(4, KeyUsage.keyAgreement); - BitStringConstantTester.testFlagValueCorrect(5, KeyUsage.keyCertSign); - BitStringConstantTester.testFlagValueCorrect(6, KeyUsage.cRLSign); - BitStringConstantTester.testFlagValueCorrect(7, KeyUsage.encipherOnly); - BitStringConstantTester.testFlagValueCorrect(8, KeyUsage.decipherOnly); - - if (!new KeyUsage(KeyUsage.keyCertSign).hasUsages(KeyUsage.keyCertSign)) - { - fail("usages bit test failed 1"); - } - - if (new KeyUsage(KeyUsage.cRLSign).hasUsages(KeyUsage.keyCertSign)) - { - fail("usages bit test failed 2"); - } - - if (!new KeyUsage(KeyUsage.cRLSign | KeyUsage.decipherOnly).hasUsages(KeyUsage.cRLSign | KeyUsage.decipherOnly)) - { - fail("usages bit test failed 3"); - } - - if (new KeyUsage(KeyUsage.cRLSign | KeyUsage.decipherOnly).hasUsages(KeyUsage.cRLSign | KeyUsage.decipherOnly | KeyUsage.keyCertSign)) - { - fail("usages bit test failed 4"); - } - } - - public static void main( - String[] args) - { - runTest(new KeyUsageTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/LDSSecurityObjectUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/LDSSecurityObjectUnitTest.java deleted file mode 100644 index 3c7cd5f..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/LDSSecurityObjectUnitTest.java +++ /dev/null @@ -1,214 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; -import java.util.Random; - -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.icao.DataGroupHash; -import org.bouncycastle.asn1.icao.LDSSecurityObject; -import org.bouncycastle.asn1.icao.LDSVersionInfo; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.util.test.SimpleTest; - -public class LDSSecurityObjectUnitTest - extends SimpleTest -{ - public String getName() - { - return "LDSSecurityObject"; - } - - private byte[] generateHash() - { - Random rand = new Random(); - byte[] bytes = new byte[20]; - - for (int i = 0; i != bytes.length; i++) - { - bytes[i] = (byte)rand.nextInt(); - } - - return bytes; - } - - public void performTest() - throws Exception - { - AlgorithmIdentifier algoId = new AlgorithmIdentifier("1.3.14.3.2.26"); - DataGroupHash[] datas = new DataGroupHash[2]; - - datas[0] = new DataGroupHash(1, new DEROctetString(generateHash())); - datas[1] = new DataGroupHash(2, new DEROctetString(generateHash())); - - LDSSecurityObject so = new LDSSecurityObject(algoId, datas); - - checkConstruction(so, algoId, datas); - - LDSVersionInfo versionInfo = new LDSVersionInfo("Hello", "world"); - - so = new LDSSecurityObject(algoId, datas, versionInfo); - - checkConstruction(so, algoId, datas, versionInfo); - - try - { - LDSSecurityObject.getInstance(null); - } - catch (Exception e) - { - fail("getInstance() failed to handle null."); - } - - try - { - LDSSecurityObject.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - ASN1EncodableVector v = new ASN1EncodableVector(); - - LDSSecurityObject.getInstance(new DERSequence(v)); - - fail("constructor failed to detect empty sequence."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - new LDSSecurityObject(algoId, new DataGroupHash[1]); - - fail("constructor failed to detect small DataGroupHash array."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - new LDSSecurityObject(algoId, new DataGroupHash[LDSSecurityObject.ub_DataGroups + 1]); - - fail("constructor failed to out of bounds DataGroupHash array."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - LDSSecurityObject so, - AlgorithmIdentifier digestAlgorithmIdentifier, - DataGroupHash[] datagroupHash) - throws IOException - { - checkStatement(so, digestAlgorithmIdentifier, datagroupHash, null); - - so = LDSSecurityObject.getInstance(so); - - checkStatement(so, digestAlgorithmIdentifier, datagroupHash, null); - - ASN1InputStream aIn = new ASN1InputStream(so.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - so = LDSSecurityObject.getInstance(seq); - - checkStatement(so, digestAlgorithmIdentifier, datagroupHash, null); - } - - private void checkConstruction( - LDSSecurityObject so, - AlgorithmIdentifier digestAlgorithmIdentifier, - DataGroupHash[] datagroupHash, - LDSVersionInfo versionInfo) - throws IOException - { - if (so.getVersion() != 1) - { - fail("version number not 1"); - } - - checkStatement(so, digestAlgorithmIdentifier, datagroupHash, versionInfo); - - so = LDSSecurityObject.getInstance(so); - - checkStatement(so, digestAlgorithmIdentifier, datagroupHash, versionInfo); - - ASN1InputStream aIn = new ASN1InputStream(so.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - so = LDSSecurityObject.getInstance(seq); - - checkStatement(so, digestAlgorithmIdentifier, datagroupHash, versionInfo); - } - - private void checkStatement( - LDSSecurityObject so, - AlgorithmIdentifier digestAlgorithmIdentifier, - DataGroupHash[] datagroupHash, - LDSVersionInfo versionInfo) - { - if (digestAlgorithmIdentifier != null) - { - if (!so.getDigestAlgorithmIdentifier().equals(digestAlgorithmIdentifier)) - { - fail("ids don't match."); - } - } - else if (so.getDigestAlgorithmIdentifier() != null) - { - fail("digest algorithm Id found when none expected."); - } - - if (datagroupHash != null) - { - DataGroupHash[] datas = so.getDatagroupHash(); - - for (int i = 0; i != datas.length; i++) - { - if (!datagroupHash[i].equals(datas[i])) - { - fail("name registration authorities don't match."); - } - } - } - else if (so.getDatagroupHash() != null) - { - fail("data hash groups found when none expected."); - } - - if (versionInfo != null) - { - if (!versionInfo.equals(so.getVersionInfo())) - { - fail("versionInfo doesn't match"); - } - } - else if (so.getVersionInfo() != null) - { - fail("version info found when none expected."); - } - } - - public static void main( - String[] args) - { - runTest(new LDSSecurityObjectUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/MiscTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/MiscTest.java deleted file mode 100644 index 2a5f09a..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/MiscTest.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DERIA5String; -import org.bouncycastle.asn1.misc.CAST5CBCParameters; -import org.bouncycastle.asn1.misc.IDEACBCPar; -import org.bouncycastle.asn1.misc.NetscapeCertType; -import org.bouncycastle.asn1.misc.NetscapeRevocationURL; -import org.bouncycastle.asn1.misc.VerisignCzagExtension; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class MiscTest - implements Test -{ - private boolean isSameAs( - byte[] a, - byte[] b) - { - if (a.length != b.length) - { - return false; - } - - for (int i = 0; i != a.length; i++) - { - if (a[i] != b[i]) - { - return false; - } - } - - return true; - } - - public TestResult perform() - { - byte[] testIv = { 1, 2, 3, 4, 5, 6, 7, 8 }; - - ASN1Encodable[] values = { - new CAST5CBCParameters(testIv, 128), - new NetscapeCertType(NetscapeCertType.smime), - new VerisignCzagExtension(new DERIA5String("hello")), - new IDEACBCPar(testIv), - new NetscapeRevocationURL(new DERIA5String("http://test")) - }; - - byte[] data = Base64.decode("MA4ECAECAwQFBgcIAgIAgAMCBSAWBWhlbGxvMAoECAECAwQFBgcIFgtodHRwOi8vdGVzdA=="); - - try - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - for (int i = 0; i != values.length; i++) - { - aOut.writeObject(values[i]); - } - - ASN1Primitive[] readValues = new ASN1Primitive[values.length]; - - if (!isSameAs(bOut.toByteArray(), data)) - { - return new SimpleTestResult(false, getName() + ": Failed data check"); - } - - ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray()); - ASN1InputStream aIn = new ASN1InputStream(bIn); - - for (int i = 0; i != values.length; i++) - { - ASN1Primitive o = aIn.readObject(); - if (!values[i].equals(o)) - { - return new SimpleTestResult(false, getName() + ": Failed equality test for " + o); - } - - if (o.hashCode() != values[i].hashCode()) - { - return new SimpleTestResult(false, getName() + ": Failed hashCode test for " + o); - } - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": Failed - exception " + e.toString(), e); - } - } - - public String getName() - { - return "Misc"; - } - - public static void main( - String[] args) - { - MiscTest test = new MiscTest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/MonetaryLimitUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/MonetaryLimitUnitTest.java deleted file mode 100644 index 8456661..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/MonetaryLimitUnitTest.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.isismtt.x509.MonetaryLimit; - -import java.io.IOException; - -public class MonetaryLimitUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "MonetaryLimit"; - } - - public void performTest() - throws Exception - { - String currency = "AUD"; - int amount = 1; - int exponent = 2; - - MonetaryLimit limit = new MonetaryLimit(currency, amount, exponent); - - checkConstruction(limit, currency, amount, exponent); - - limit = MonetaryLimit.getInstance(null); - - if (limit != null) - { - fail("null getInstance() failed."); - } - - try - { - MonetaryLimit.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - MonetaryLimit limit, - String currency, - int amount, - int exponent) - throws IOException - { - checkValues(limit, currency, amount, exponent); - - limit = MonetaryLimit.getInstance(limit); - - checkValues(limit, currency, amount, exponent); - - ASN1InputStream aIn = new ASN1InputStream(limit.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - limit = MonetaryLimit.getInstance(seq); - - checkValues(limit, currency, amount, exponent); - } - - private void checkValues( - MonetaryLimit limit, - String currency, - int amount, - int exponent) - { - checkMandatoryField("currency", currency, limit.getCurrency()); - checkMandatoryField("amount", amount, limit.getAmount().intValue()); - checkMandatoryField("exponent", exponent, limit.getExponent().intValue()); - } - - public static void main( - String[] args) - { - runTest(new MonetaryLimitUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/MonetaryValueUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/MonetaryValueUnitTest.java deleted file mode 100644 index dd56469..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/MonetaryValueUnitTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.x509.qualified.Iso4217CurrencyCode; -import org.bouncycastle.asn1.x509.qualified.MonetaryValue; -import org.bouncycastle.util.test.SimpleTest; - -public class MonetaryValueUnitTest - extends SimpleTest -{ - private static final int TEST_AMOUNT = 100; - private static final int ZERO_EXPONENT = 0; - - private static final String CURRENCY_CODE = "AUD"; - - public String getName() - { - return "MonetaryValue"; - } - - public void performTest() - throws Exception - { - MonetaryValue mv = new MonetaryValue(new Iso4217CurrencyCode(CURRENCY_CODE), TEST_AMOUNT, ZERO_EXPONENT); - - checkValues(mv, TEST_AMOUNT, ZERO_EXPONENT); - - mv = MonetaryValue.getInstance(mv); - - checkValues(mv, TEST_AMOUNT, ZERO_EXPONENT); - - ASN1InputStream aIn = new ASN1InputStream(mv.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - mv = MonetaryValue.getInstance(seq); - - checkValues(mv, TEST_AMOUNT, ZERO_EXPONENT); - - mv = MonetaryValue.getInstance(null); - - if (mv != null) - { - fail("null getInstance() failed."); - } - - try - { - MonetaryValue.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkValues( - MonetaryValue mv, - int amount, - int exponent) - { - if (mv.getAmount().intValue() != amount) - { - fail("amounts don't match."); - } - - if (mv.getExponent().intValue() != exponent) - { - fail("exponents don't match."); - } - - Iso4217CurrencyCode cc = mv.getCurrency(); - - if (!cc.getAlphabetic().equals(CURRENCY_CODE)) - { - fail("currency code wrong"); - } - } - - public static void main( - String[] args) - { - runTest(new MonetaryValueUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/NameOrPseudonymUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/NameOrPseudonymUnitTest.java deleted file mode 100644 index 3fbaa10..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/NameOrPseudonymUnitTest.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.ASN1String; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.x500.DirectoryString; -import org.bouncycastle.asn1.x509.sigi.NameOrPseudonym; - -public class NameOrPseudonymUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "NameOrPseudonym"; - } - - public void performTest() - throws Exception - { - String pseudonym = "pseudonym"; - DirectoryString surname = new DirectoryString("surname"); - ASN1Sequence givenName = new DERSequence(new DirectoryString("givenName")); - - NameOrPseudonym id = new NameOrPseudonym(pseudonym); - - checkConstruction(id, pseudonym, null, null); - - id = new NameOrPseudonym(surname, givenName); - - checkConstruction(id, null, surname, givenName); - - id = NameOrPseudonym.getInstance(null); - - if (id != null) - { - fail("null getInstance() failed."); - } - - try - { - NameOrPseudonym.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - NameOrPseudonym id, - String pseudonym, - DirectoryString surname, - ASN1Sequence givenName) - throws IOException - { - checkValues(id, pseudonym, surname, givenName); - - id = NameOrPseudonym.getInstance(id); - - checkValues(id, pseudonym, surname, givenName); - - ASN1InputStream aIn = new ASN1InputStream(id.toASN1Object().getEncoded()); - - if (surname != null) - { - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - id = NameOrPseudonym.getInstance(seq); - } - else - { - ASN1String s = (ASN1String)aIn.readObject(); - - id = NameOrPseudonym.getInstance(s); - } - - checkValues(id, pseudonym, surname, givenName); - } - - private void checkValues( - NameOrPseudonym id, - String pseudonym, - DirectoryString surname, - ASN1Sequence givenName) - { - - if (surname != null) - { - checkMandatoryField("surname", surname, id.getSurname()); - checkMandatoryField("givenName", givenName, new DERSequence(id.getGivenName()[0])); - } - else - { - checkOptionalField("pseudonym", new DirectoryString(pseudonym), id.getPseudonym()); - } - } - - public static void main( - String[] args) - { - runTest(new NameOrPseudonymUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/NamingAuthorityUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/NamingAuthorityUnitTest.java deleted file mode 100644 index 8dfcf8c..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/NamingAuthorityUnitTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.isismtt.x509.NamingAuthority; -import org.bouncycastle.asn1.x500.DirectoryString; - -public class NamingAuthorityUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "NamingAuthority"; - } - - public void performTest() - throws Exception - { - ASN1ObjectIdentifier namingAuthorityID = new ASN1ObjectIdentifier("1.2.3"); - String namingAuthorityURL = "url"; - DirectoryString namingAuthorityText = new DirectoryString("text"); - - NamingAuthority auth = new NamingAuthority(namingAuthorityID, namingAuthorityURL, namingAuthorityText); - - checkConstruction(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText); - - auth = new NamingAuthority(null, namingAuthorityURL, namingAuthorityText); - - checkConstruction(auth, null, namingAuthorityURL, namingAuthorityText); - - auth = new NamingAuthority(namingAuthorityID, null, namingAuthorityText); - - checkConstruction(auth, namingAuthorityID, null, namingAuthorityText); - - auth = new NamingAuthority(namingAuthorityID, namingAuthorityURL, null); - - checkConstruction(auth, namingAuthorityID, namingAuthorityURL, null); - - auth = NamingAuthority.getInstance(null); - - if (auth != null) - { - fail("null getInstance() failed."); - } - - try - { - NamingAuthority.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - NamingAuthority auth, - ASN1ObjectIdentifier namingAuthorityID, - String namingAuthorityURL, - DirectoryString namingAuthorityText) - throws IOException - { - checkValues(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText); - - auth = NamingAuthority.getInstance(auth); - - checkValues(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText); - - ASN1InputStream aIn = new ASN1InputStream(auth.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - auth = NamingAuthority.getInstance(seq); - - checkValues(auth, namingAuthorityID, namingAuthorityURL, namingAuthorityText); - } - - private void checkValues( - NamingAuthority auth, - ASN1ObjectIdentifier namingAuthorityId, - String namingAuthorityURL, - DirectoryString namingAuthorityText) - { - checkOptionalField("namingAuthorityId", namingAuthorityId, auth.getNamingAuthorityId()); - checkOptionalField("namingAuthorityURL", namingAuthorityURL, auth.getNamingAuthorityUrl()); - checkOptionalField("namingAuthorityText", namingAuthorityText, auth.getNamingAuthorityText()); - } - - public static void main( - String[] args) - { - runTest(new NamingAuthorityUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/NetscapeCertTypeTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/NetscapeCertTypeTest.java deleted file mode 100644 index e5aa96e..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/NetscapeCertTypeTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.misc.NetscapeCertType; -import org.bouncycastle.util.test.SimpleTest; - -public class NetscapeCertTypeTest - extends SimpleTest -{ - public String getName() - { - return "NetscapeCertType"; - } - - public void performTest() - throws IOException - { - BitStringConstantTester.testFlagValueCorrect(0, NetscapeCertType.sslClient); - BitStringConstantTester.testFlagValueCorrect(1, NetscapeCertType.sslServer); - BitStringConstantTester.testFlagValueCorrect(2, NetscapeCertType.smime); - BitStringConstantTester.testFlagValueCorrect(3, NetscapeCertType.objectSigning); - BitStringConstantTester.testFlagValueCorrect(4, NetscapeCertType.reserved); - BitStringConstantTester.testFlagValueCorrect(5, NetscapeCertType.sslCA); - BitStringConstantTester.testFlagValueCorrect(6, NetscapeCertType.smimeCA); - BitStringConstantTester.testFlagValueCorrect(7, NetscapeCertType.objectSigningCA); - } - - public static void main( - String[] args) - { - runTest(new NetscapeCertTypeTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/OCSPTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/OCSPTest.java deleted file mode 100644 index ae1b035..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/OCSPTest.java +++ /dev/null @@ -1,193 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.ocsp.BasicOCSPResponse; -import org.bouncycastle.asn1.ocsp.OCSPRequest; -import org.bouncycastle.asn1.ocsp.OCSPResponse; -import org.bouncycastle.asn1.ocsp.ResponseBytes; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; -import org.bouncycastle.util.test.SimpleTestResult; - -public class OCSPTest - implements Test -{ - private byte[] unsignedReq = Base64.decode( - "MEIwQDA+MDwwOjAJBgUrDgMCGgUABBRDb9GODnq7lRhSkEqw4XX24huERwQUkY4j" - + "a6eKuDlkVP9hRgkEvIWqHPECAQE="); - - private byte[] signedReq = Base64.decode( - "MIIC9jBAMD4wPDA6MAkGBSsOAwIaBQAEFENv0Y4OeruVGFKQSrDhdfbiG4RHBBTc" - + "Mr1fP+mZAxbF2ZdehWxn6mtAngIBAaCCArAwggKsMA0GCSqGSIb3DQEBBQUAA4GB" - + "AAzHBm4nL5AcRQB3Jkz7ScNeZF+GbRZ0p4kBDTnqi3IeESuso12yJhpqqyijdnj5" - + "gd4/GsSAgdluLHyYZ6wgozV7G9MDXCnFnG4PBUW05HaVX81JYAp+amVyU0NOgNrG" - + "90npVBsHb0o+UlkxNgMiEbSkp/TeGb6YURsYKhmwp7BgoIICFTCCAhEwggINMIIB" - + "dqADAgECAgEBMA0GCSqGSIb3DQEBBAUAMCUxFjAUBgNVBAoTDUJvdW5jeSBDYXN0" - + "bGUxCzAJBgNVBAYTAkFVMB4XDTA0MTAyNDEzNDc0M1oXDTA1MDIwMTEzNDc0M1ow" - + "JTEWMBQGA1UEChMNQm91bmN5IENhc3RsZTELMAkGA1UEBhMCQVUwgZ8wDQYJKoZI" - + "hvcNAQEBBQADgY0AMIGJAoGBAJBmLeIzthMHUeTkOeJ76iBxcMHY31o/i3a9VT12" - + "y2FcS/ejJmeUCMTdtwl5alOwXY66vF4DyT1VU/nJG3mHpSoqq7qrMXOIFGcXg1Wf" - + "oJRrQgTOLdQ6bod7i9ME/EjEJy70orh0nVS7NGcu0R5TjcbLde2J5zxjb/W9wqfy" - + "RovJAgMBAAGjTTBLMB0GA1UdDgQWBBTcMr1fP+mZAxbF2ZdehWxn6mtAnjAfBgNV" - + "HSMEGDAWgBTcMr1fP+mZAxbF2ZdehWxn6mtAnjAJBgNVHRMEAjAAMA0GCSqGSIb3" - + "DQEBBAUAA4GBAF/4EH1KkNrNxocJPIp7lThmG1KIVYESIadowMowrbok46ESofRF" - + "OIPku07W+e1Y1Y1KXLIiPMG3IGwrBrn04iLsbbBUiN37BcC/VyT4xKJ2MYscGjKL" - + "ua/9bU0lOyeTRAwqb8towWRd5lLYAI3RQ7dhStUTFp3Vqd803PJ/cpR6"); - - private byte[] response = Base64.decode( - "MIIFnAoBAKCCBZUwggWRBgkrBgEFBQcwAQEEggWCMIIFfjCCARehgZ8wgZwx" - + "CzAJBgNVBAYTAklOMRcwFQYDVQQIEw5BbmRocmEgcHJhZGVzaDESMBAGA1UE" - + "BxMJSHlkZXJhYmFkMQwwCgYDVQQKEwNUQ1MxDDAKBgNVBAsTA0FUQzEeMBwG" - + "A1UEAxMVVENTLUNBIE9DU1AgUmVzcG9uZGVyMSQwIgYJKoZIhvcNAQkBFhVv" - + "Y3NwQHRjcy1jYS50Y3MuY28uaW4YDzIwMDMwNDAyMTIzNDU4WjBiMGAwOjAJ" - + "BgUrDgMCGgUABBRs07IuoCWNmcEl1oHwIak1BPnX8QQUtGyl/iL9WJ1VxjxF" - + "j0hAwJ/s1AcCAQKhERgPMjAwMjA4MjkwNzA5MjZaGA8yMDAzMDQwMjEyMzQ1" - + "OFowDQYJKoZIhvcNAQEFBQADgYEAfbN0TCRFKdhsmvOdUoiJ+qvygGBzDxD/" - + "VWhXYA+16AphHLIWNABR3CgHB3zWtdy2j7DJmQ/R7qKj7dUhWLSqclAiPgFt" - + "QQ1YvSJAYfEIdyHkxv4NP0LSogxrumANcDyC9yt/W9yHjD2ICPBIqCsZLuLk" - + "OHYi5DlwWe9Zm9VFwCGgggPMMIIDyDCCA8QwggKsoAMCAQICAQYwDQYJKoZI" - + "hvcNAQEFBQAwgZQxFDASBgNVBAMTC1RDUy1DQSBPQ1NQMSYwJAYJKoZIhvcN" - + "AQkBFhd0Y3MtY2FAdGNzLWNhLnRjcy5jby5pbjEMMAoGA1UEChMDVENTMQww" - + "CgYDVQQLEwNBVEMxEjAQBgNVBAcTCUh5ZGVyYWJhZDEXMBUGA1UECBMOQW5k" - + "aHJhIHByYWRlc2gxCzAJBgNVBAYTAklOMB4XDTAyMDgyOTA3MTE0M1oXDTAz" - + "MDgyOTA3MTE0M1owgZwxCzAJBgNVBAYTAklOMRcwFQYDVQQIEw5BbmRocmEg" - + "cHJhZGVzaDESMBAGA1UEBxMJSHlkZXJhYmFkMQwwCgYDVQQKEwNUQ1MxDDAK" - + "BgNVBAsTA0FUQzEeMBwGA1UEAxMVVENTLUNBIE9DU1AgUmVzcG9uZGVyMSQw" - + "IgYJKoZIhvcNAQkBFhVvY3NwQHRjcy1jYS50Y3MuY28uaW4wgZ8wDQYJKoZI" - + "hvcNAQEBBQADgY0AMIGJAoGBAM+XWW4caMRv46D7L6Bv8iwtKgmQu0SAybmF" - + "RJiz12qXzdvTLt8C75OdgmUomxp0+gW/4XlTPUqOMQWv463aZRv9Ust4f8MH" - + "EJh4ekP/NS9+d8vEO3P40ntQkmSMcFmtA9E1koUtQ3MSJlcs441JjbgUaVnm" - + "jDmmniQnZY4bU3tVAgMBAAGjgZowgZcwDAYDVR0TAQH/BAIwADALBgNVHQ8E" - + "BAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwkwNgYIKwYBBQUHAQEEKjAoMCYG" - + "CCsGAQUFBzABhhpodHRwOi8vMTcyLjE5LjQwLjExMDo3NzAwLzAtBgNVHR8E" - + "JjAkMCKgIKAehhxodHRwOi8vMTcyLjE5LjQwLjExMC9jcmwuY3JsMA0GCSqG" - + "SIb3DQEBBQUAA4IBAQB6FovM3B4VDDZ15o12gnADZsIk9fTAczLlcrmXLNN4" - + "PgmqgnwF0Ymj3bD5SavDOXxbA65AZJ7rBNAguLUo+xVkgxmoBH7R2sBxjTCc" - + "r07NEadxM3HQkt0aX5XYEl8eRoifwqYAI9h0ziZfTNes8elNfb3DoPPjqq6V" - + "mMg0f0iMS4W8LjNPorjRB+kIosa1deAGPhq0eJ8yr0/s2QR2/WFD5P4aXc8I" - + "KWleklnIImS3zqiPrq6tl2Bm8DZj7vXlTOwmraSQxUwzCKwYob1yGvNOUQTq" - + "pG6jxn7jgDawHU1+WjWQe4Q34/pWeGLysxTraMa+Ug9kPe+jy/qRX2xwvKBZ"); - - private boolean isSameAs( - byte[] a, - byte[] b) - { - if (a.length != b.length) - { - return false; - } - - for (int i = 0; i != a.length; i++) - { - if (a[i] != b[i]) - { - return false; - } - } - - return true; - } - - private TestResult unsignedRequest() - { - try - { - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(unsignedReq)); - OCSPRequest req = OCSPRequest.getInstance(aIn.readObject()); - - if (!isSameAs(req.getEncoded(), unsignedReq)) - { - return new SimpleTestResult(false, getName() + ": OCSP unsigned request failed to re-encode"); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": failed unsigned exception - " + e.toString(), e); - } - } - - private TestResult signedRequest() - { - try - { - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(signedReq)); - OCSPRequest req = OCSPRequest.getInstance(aIn.readObject()); - - if (!isSameAs(req.getEncoded(), signedReq)) - { - return new SimpleTestResult(false, getName() + ": OCSP signed request failed to re-encode"); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": failed signed exception - " + e.toString(), e); - } - } - - private TestResult response() - { - try - { - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(response)); - OCSPResponse resp = OCSPResponse.getInstance(aIn.readObject()); - ResponseBytes rBytes = ResponseBytes.getInstance(resp.getResponseBytes()); - - aIn = new ASN1InputStream(new ByteArrayInputStream(rBytes.getResponse().getOctets())); - - BasicOCSPResponse bResp = BasicOCSPResponse.getInstance(aIn.readObject()); - - resp = new OCSPResponse(resp.getResponseStatus(), new ResponseBytes(rBytes.getResponseType(), new DEROctetString(bResp.getEncoded()))); - - if (!isSameAs(resp.getEncoded(), response)) - { - return new SimpleTestResult(false, getName() + ": OCSP response failed to re-encode"); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": failed response exception - " + e.toString(), e); - } - } - - public TestResult perform() - { - TestResult res = unsignedRequest(); - - if (!res.isSuccessful()) - { - return res; - } - - res = signedRequest(); - if (!res.isSuccessful()) - { - return res; - } - - return response(); - } - - public String getName() - { - return "OCSP"; - } - - public static void main( - String[] args) - { - OCSPTest test = new OCSPTest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/OIDTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/OIDTest.java deleted file mode 100644 index fa5aa61..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/OIDTest.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.DEROutputStream; -import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - - -/** - * X.690 test example - */ -public class OIDTest - extends SimpleTest -{ - byte[] req1 = Hex.decode("0603813403"); - byte[] req2 = Hex.decode("06082A36FFFFFFDD6311"); - - public String getName() - { - return "OID"; - } - - private void recodeCheck( - String oid, - byte[] enc) - throws IOException - { - ByteArrayInputStream bIn = new ByteArrayInputStream(enc); - ASN1InputStream aIn = new ASN1InputStream(bIn); - - ASN1ObjectIdentifier o = new ASN1ObjectIdentifier(oid); - ASN1ObjectIdentifier encO = (ASN1ObjectIdentifier)aIn.readObject(); - - if (!o.equals(encO)) - { - fail("oid ID didn't match", o, encO); - } - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DEROutputStream dOut = new DEROutputStream(bOut); - - dOut.writeObject(o); - - byte[] bytes = bOut.toByteArray(); - - if (bytes.length != enc.length) - { - fail("failed length test"); - } - - for (int i = 0; i != enc.length; i++) - { - if (bytes[i] != enc[i]) - { - fail("failed comparison test", new String(Hex.encode(enc)), new String(Hex.encode(bytes))); - } - } - } - - private void validOidCheck( - String oid) - throws IOException - { - ASN1ObjectIdentifier o = new ASN1ObjectIdentifier(oid); - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(o); - - ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray()); - ASN1InputStream aIn = new ASN1InputStream(bIn); - - o = (ASN1ObjectIdentifier)aIn.readObject(); - - if (!o.getId().equals(oid)) - { - fail("failed oid check for " + oid); - } - } - - private void invalidOidCheck( - String oid) - { - try - { - new ASN1ObjectIdentifier(oid); - fail("failed to catch bad oid: " + oid); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void branchCheck(String stem, String branch) - { - String expected = stem + "." + branch; - String actual = new ASN1ObjectIdentifier(stem).branch(branch).getId(); - - if (!expected.equals(actual)) - { - fail("failed 'branch' check for " + stem + "/" + branch); - } - } - - private void onCheck(String stem, String test, boolean expected) - { - if (expected != new ASN1ObjectIdentifier(test).on(new ASN1ObjectIdentifier(stem))) - { - fail("failed 'on' check for " + stem + "/" + test); - } - } - - public void performTest() - throws IOException - { - recodeCheck("2.100.3", req1); - recodeCheck("1.2.54.34359733987.17", req2); - - validOidCheck(PKCSObjectIdentifiers.pkcs_9_at_contentType.getId()); - validOidCheck("0.1"); - validOidCheck("1.1.127.32512.8323072.2130706432.545460846592.139637976727552.35747322042253312.9151314442816847872"); - validOidCheck("1.2.123.12345678901.1.1.1"); - validOidCheck("2.25.196556539987194312349856245628873852187.1"); - - invalidOidCheck("0"); - invalidOidCheck("1"); - invalidOidCheck("2"); - invalidOidCheck("3.1"); - invalidOidCheck("..1"); - invalidOidCheck("192.168.1.1"); - invalidOidCheck(".123452"); - invalidOidCheck("1."); - invalidOidCheck("1.345.23.34..234"); - invalidOidCheck("1.345.23.34.234."); - invalidOidCheck(".12.345.77.234"); - invalidOidCheck(".12.345.77.234."); - invalidOidCheck("1.2.3.4.A.5"); - invalidOidCheck("1,2"); - - branchCheck("1.1", "2.2"); - - onCheck("1.1", "1.1", false); - onCheck("1.1", "1.2", false); - onCheck("1.1", "1.2.1", false); - onCheck("1.1", "2.1", false); - onCheck("1.1", "1.11", false); - onCheck("1.12", "1.1.2", false); - onCheck("1.1", "1.1.1", true); - onCheck("1.1", "1.1.2", true); - } - - public static void main( - String[] args) - { - runTest(new OIDTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ObjectIdentifierTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ObjectIdentifierTest.java deleted file mode 100644 index bd665ec..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ObjectIdentifierTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.util.test.SimpleTest; -import org.bouncycastle.util.test.TestResult; - -public class ObjectIdentifierTest - extends SimpleTest -{ - public String getName() - { - return "ObjectIdentifier"; - } - - public void performTest() - throws Exception - { - // exercise the object cache - for (int i = 0; i < 1024; i++) - { - for (int j = 0; j != 17000; j++) - { - byte[] encoded = new ASN1ObjectIdentifier("1.1." + i + "." + j).getEncoded(); - - ASN1ObjectIdentifier.getInstance(encoded); - } - } - } - - public static void main( - String[] args) - { - ObjectIdentifierTest test = new ObjectIdentifierTest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/OctetStringTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/OctetStringTest.java deleted file mode 100644 index 68ed5da..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/OctetStringTest.java +++ /dev/null @@ -1,203 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.OutputStream; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1OctetStringParser; -import org.bouncycastle.asn1.ASN1SequenceParser; -import org.bouncycastle.asn1.ASN1StreamParser; -import org.bouncycastle.asn1.BEROctetStringGenerator; -import org.bouncycastle.asn1.BERSequenceGenerator; -import org.bouncycastle.asn1.BERTags; -import org.bouncycastle.asn1.DERSequenceGenerator; -import org.bouncycastle.asn1.cms.CMSObjectIdentifiers; -import org.bouncycastle.asn1.cms.CompressedDataParser; -import org.bouncycastle.asn1.cms.ContentInfoParser; - -public class OctetStringTest - extends TestCase -{ - public void testReadingWriting() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - BEROctetStringGenerator octGen = new BEROctetStringGenerator(bOut); - - OutputStream out = octGen.getOctetOutputStream(); - - out.write(new byte[] { 1, 2, 3, 4 }); - out.write(new byte[4]); - - out.close(); - - ASN1StreamParser aIn = new ASN1StreamParser(bOut.toByteArray()); - - ASN1OctetStringParser s = (ASN1OctetStringParser)aIn.readObject(); - - InputStream in = s.getOctetStream(); - int count = 0; - - while (in.read() >= 0) - { - count++; - } - - assertEquals(8, count); - } - - public void testReadingWritingZeroInLength() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - BEROctetStringGenerator octGen = new BEROctetStringGenerator(bOut); - - OutputStream out = octGen.getOctetOutputStream(); - - out.write(new byte[] { 1, 2, 3, 4 }); - out.write(new byte[512]); // forces a zero to appear in length - - out.close(); - - ASN1StreamParser aIn = new ASN1StreamParser(bOut.toByteArray()); - - ASN1OctetStringParser s = (ASN1OctetStringParser)aIn.readObject(); - - InputStream in = s.getOctetStream(); - int count = 0; - - while (in.read() >= 0) - { - count++; - } - - assertEquals(516, count); - } - - public void testReadingWritingNested() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - BERSequenceGenerator sGen = new BERSequenceGenerator(bOut); - BEROctetStringGenerator octGen = new BEROctetStringGenerator(sGen.getRawOutputStream()); - - OutputStream out = octGen.getOctetOutputStream(); - - BERSequenceGenerator inSGen = new BERSequenceGenerator(out); - - BEROctetStringGenerator inOctGen = new BEROctetStringGenerator(inSGen.getRawOutputStream()); - - OutputStream inOut = inOctGen.getOctetOutputStream(); - - inOut.write(new byte[] { 1, 2, 3, 4 }); - inOut.write(new byte[10]); - - inOut.close(); - - inSGen.close(); - - out.close(); - - sGen.close(); - - ASN1StreamParser aIn = new ASN1StreamParser(bOut.toByteArray()); - - ASN1SequenceParser sq = (ASN1SequenceParser)aIn.readObject(); - - ASN1OctetStringParser s = (ASN1OctetStringParser)sq.readObject(); - - ASN1StreamParser aIn2 = new ASN1StreamParser(s.getOctetStream()); - - ASN1SequenceParser sq2 = (ASN1SequenceParser)aIn2.readObject(); - - ASN1OctetStringParser inS = (ASN1OctetStringParser)sq2.readObject(); - - InputStream in = inS.getOctetStream(); - int count = 0; - - while (in.read() >= 0) - { - count++; - } - - assertEquals(14, count); - } - - public void testNestedStructure() - throws Exception - { - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - - BERSequenceGenerator sGen = new BERSequenceGenerator(bOut); - - sGen.addObject(new ASN1ObjectIdentifier(CMSObjectIdentifiers.compressedData.getId())); - - BERSequenceGenerator cGen = new BERSequenceGenerator(sGen.getRawOutputStream(), 0, true); - - cGen.addObject(new ASN1Integer(0)); - - // - // AlgorithmIdentifier - // - DERSequenceGenerator algGen = new DERSequenceGenerator(cGen.getRawOutputStream()); - - algGen.addObject(new ASN1ObjectIdentifier("1.2")); - - algGen.close(); - - // - // Encapsulated ContentInfo - // - BERSequenceGenerator eiGen = new BERSequenceGenerator(cGen.getRawOutputStream()); - - eiGen.addObject(new ASN1ObjectIdentifier("1.1")); - - BEROctetStringGenerator octGen = new BEROctetStringGenerator(eiGen.getRawOutputStream(), 0, true); - - // - // output containing zeroes - // - OutputStream out = octGen.getOctetOutputStream(); - - out.write(new byte[] { 1, 2, 3, 4 }); - out.write(new byte[4]); - out.write(new byte[20]); - - out.close(); - eiGen.close(); - cGen.close(); - sGen.close(); - - // - // reading back - // - ASN1StreamParser aIn = new ASN1StreamParser(bOut.toByteArray()); - - ContentInfoParser cp = new ContentInfoParser((ASN1SequenceParser)aIn.readObject()); - - CompressedDataParser comData = new CompressedDataParser((ASN1SequenceParser)cp.getContent(BERTags.SEQUENCE)); - ContentInfoParser content = comData.getEncapContentInfo(); - - ASN1OctetStringParser bytes = (ASN1OctetStringParser)content.getContent(BERTags.OCTET_STRING); - - InputStream in = bytes.getOctetStream(); - int count = 0; - - while (in.read() >= 0) - { - count++; - } - - assertEquals(28, count); - } - - public static Test suite() - { - return new TestSuite(OctetStringTest.class); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/OtherCertIDUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/OtherCertIDUnitTest.java deleted file mode 100644 index 9a85cea..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/OtherCertIDUnitTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.ess.OtherCertID; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.GeneralNames; -import org.bouncycastle.asn1.x509.IssuerSerial; -import org.bouncycastle.asn1.x509.X509Name; - -public class OtherCertIDUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "OtherCertID"; - } - - public void performTest() - throws Exception - { - AlgorithmIdentifier algId = new AlgorithmIdentifier(new ASN1ObjectIdentifier("1.2.2.3")); - byte[] digest = new byte[20]; - IssuerSerial issuerSerial = new IssuerSerial(new GeneralNames(new GeneralName(new X509Name("CN=test"))), new ASN1Integer(1)); - - OtherCertID certID = new OtherCertID(algId, digest); - - checkConstruction(certID, algId, digest, null); - - certID = new OtherCertID(algId, digest, issuerSerial); - - checkConstruction(certID, algId, digest, issuerSerial); - - certID = OtherCertID.getInstance(null); - - if (certID != null) - { - fail("null getInstance() failed."); - } - - try - { - OtherCertID.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - OtherCertID certID, - AlgorithmIdentifier algId, - byte[] digest, - IssuerSerial issuerSerial) - throws IOException - { - checkValues(certID, algId, digest, issuerSerial); - - certID = OtherCertID.getInstance(certID); - - checkValues(certID, algId, digest, issuerSerial); - - ASN1InputStream aIn = new ASN1InputStream(certID.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - certID = OtherCertID.getInstance(seq); - - checkValues(certID, algId, digest, issuerSerial); - } - - private void checkValues( - OtherCertID certID, - AlgorithmIdentifier algId, - byte[] digest, - IssuerSerial issuerSerial) - { - checkMandatoryField("algorithmHash", algId, certID.getAlgorithmHash()); - checkMandatoryField("certHash", digest, certID.getCertHash()); - - checkOptionalField("issuerSerial", issuerSerial, certID.getIssuerSerial()); - } - - public static void main( - String[] args) - { - runTest(new OtherCertIDUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/OtherSigningCertificateUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/OtherSigningCertificateUnitTest.java deleted file mode 100644 index 9de12ee..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/OtherSigningCertificateUnitTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.ess.OtherCertID; -import org.bouncycastle.asn1.ess.OtherSigningCertificate; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; - -public class OtherSigningCertificateUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "OtherSigningCertificate"; - } - - public void performTest() - throws Exception - { - AlgorithmIdentifier algId = new AlgorithmIdentifier(new ASN1ObjectIdentifier("1.2.2.3")); - byte[] digest = new byte[20]; - OtherCertID otherCertID = new OtherCertID(algId, digest); - - OtherSigningCertificate otherCert = new OtherSigningCertificate(otherCertID); - - checkConstruction(otherCert, otherCertID); - - otherCert = OtherSigningCertificate.getInstance(null); - - if (otherCert != null) - { - fail("null getInstance() failed."); - } - - try - { - OtherCertID.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - OtherSigningCertificate otherCert, - OtherCertID otherCertID) - throws IOException - { - checkValues(otherCert, otherCertID); - - otherCert = OtherSigningCertificate.getInstance(otherCert); - - checkValues(otherCert, otherCertID); - - ASN1InputStream aIn = new ASN1InputStream(otherCert.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - otherCert = OtherSigningCertificate.getInstance(seq); - - checkValues(otherCert, otherCertID); - } - - private void checkValues( - OtherSigningCertificate otherCert, - OtherCertID otherCertID) - { - if (otherCert.getCerts().length != 1) - { - fail("getCerts() length wrong"); - } - checkMandatoryField("getCerts()[0]", otherCertID, otherCert.getCerts()[0]); - } - - public static void main( - String[] args) - { - runTest(new OtherSigningCertificateUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/PKCS10Test.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/PKCS10Test.java deleted file mode 100644 index da6571d..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/PKCS10Test.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DEROutputStream; -import org.bouncycastle.asn1.pkcs.CertificationRequest; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class PKCS10Test - implements Test -{ - byte[] req1 = Base64.decode( - "MIHoMIGTAgEAMC4xDjAMBgNVBAMTBVRlc3QyMQ8wDQYDVQQKEwZBbmFUb20xCzAJBgNVBAYTAlNF" - + "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALlEt31Tzt2MlcOljvacJgzQVhmlMoqAOgqJ9Pgd3Gux" - + "Z7/WcIlgW4QCB7WZT21O1YoghwBhPDMcNGrHei9kHQkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA0EA" - + "NDEI4ecNtJ3uHwGGlitNFq9WxcoZ0djbQJ5hABMotav6gtqlrwKXY2evaIrsNwkJtNdwwH18aQDU" - + "KCjOuBL38Q=="); - - byte[] req2 = Base64.decode( - "MIIB6TCCAVICAQAwgagxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRQwEgYDVQQH" - + "EwtTYW50YSBDbGFyYTEMMAoGA1UEChMDQUJCMVEwTwYDVQQLHEhQAAAAAAAAAG8AAAAAAAAAdwAA" - + "AAAAAABlAAAAAAAAAHIAAAAAAAAAIAAAAAAAAABUAAAAAAAAABxIAAAAAAAARAAAAAAAAAAxDTAL" - + "BgNVBAMTBGJsdWUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANETRZ+6occCOrFxNhfKIp4C" - + "mMkxwhBNb7TnnahpbM9O0r4hrBPcfYuL7u9YX/jN0YNUP+/CiT39HhSe/bikaBPDEyNsl988I8vX" - + "piEdgxYq/+LTgGHbjRsRYCkPtmzwBbuBldNF8bV7pu0v4UScSsExmGqqDlX1TbPU8KkPU1iTAgMB" - + "AAGgADANBgkqhkiG9w0BAQQFAAOBgQAFbrs9qUwh93CtETk7DeUD5HcdCnxauo1bck44snSV6MZV" - + "OCIGaYu1501kmhEvAtVVRr6SEHwimfQDDIjnrWwYsEr/DT6tkTZAbfRd3qUu3iKjT0H0vlUZp0hJ" - + "66mINtBM84uZFBfoXiWY8M3FuAnGmvy6ah/dYtJorTxLKiGkew=="); - - public String getName() - { - return "PKCS10"; - } - - public TestResult pkcs10Test( - String testName, - byte[] req) - { - try - { - ByteArrayInputStream bIn = new ByteArrayInputStream(req); - ASN1InputStream aIn = new ASN1InputStream(bIn); - - CertificationRequest r = new CertificationRequest((ASN1Sequence)aIn.readObject()); - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - DEROutputStream dOut = new DEROutputStream(bOut); - - dOut.writeObject(r.toASN1Primitive()); - - byte[] bytes = bOut.toByteArray(); - - if (bytes.length != req.length) - { - return new SimpleTestResult(false, getName() + ": " + testName + " failed length test"); - } - - for (int i = 0; i != req.length; i++) - { - if (bytes[i] != req[i]) - { - return new SimpleTestResult(false, getName() + ": " + testName + " failed comparison test"); - } - } - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": Exception - " + testName + " " + e.toString()); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - - public TestResult perform() - { - TestResult res = pkcs10Test("basic CR", req1); - - if (!res.isSuccessful()) - { - return res; - } - - return pkcs10Test("Universal CR", req2); - } - - public static void main( - String[] args) - { - Test test = new PKCS10Test(); - - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/PKCS12Test.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/PKCS12Test.java deleted file mode 100644 index f533a65..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/PKCS12Test.java +++ /dev/null @@ -1,227 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1OctetString; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.BEROctetString; -import org.bouncycastle.asn1.DLSequence; -import org.bouncycastle.asn1.pkcs.AuthenticatedSafe; -import org.bouncycastle.asn1.pkcs.ContentInfo; -import org.bouncycastle.asn1.pkcs.EncryptedData; -import org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo; -import org.bouncycastle.asn1.pkcs.MacData; -import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; -import org.bouncycastle.asn1.pkcs.Pfx; -import org.bouncycastle.asn1.pkcs.SafeBag; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.DigestInfo; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTest; - -public class PKCS12Test - extends SimpleTest -{ - byte[] pkcs12 = Base64.decode( - "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" - + "AgFkAAA="); - - public void performTest() - throws Exception - { - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(pkcs12)); - ASN1Sequence obj = (ASN1Sequence)aIn.readObject(); - Pfx bag = Pfx.getInstance(obj); - ContentInfo info = bag.getAuthSafe(); - MacData mData = bag.getMacData(); - DigestInfo dInfo = mData.getMac(); - AlgorithmIdentifier algId = dInfo.getAlgorithmId(); - byte[] salt = mData.getSalt(); - int itCount = mData.getIterationCount().intValue(); - - aIn = new ASN1InputStream(new ByteArrayInputStream(((ASN1OctetString)info.getContent()).getOctets())); - - AuthenticatedSafe authSafe = AuthenticatedSafe.getInstance(aIn.readObject()); - ContentInfo[] c = authSafe.getContentInfo(); - - // - // private key section - // - if (!c[0].getContentType().equals(PKCSObjectIdentifiers.data)) - { - fail("failed comparison data test"); - } - - aIn = new ASN1InputStream(new ByteArrayInputStream(((ASN1OctetString)c[0].getContent()).getOctets())); - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - SafeBag b = SafeBag.getInstance(seq.getObjectAt(0)); - if (!b.getBagId().equals(PKCSObjectIdentifiers.pkcs8ShroudedKeyBag)) - { - fail("failed comparison shroudedKeyBag test"); - } - - EncryptedPrivateKeyInfo encInfo = EncryptedPrivateKeyInfo.getInstance(b.getBagValue()); - - encInfo = new EncryptedPrivateKeyInfo(encInfo.getEncryptionAlgorithm(), encInfo.getEncryptedData()); - - b = new SafeBag(PKCSObjectIdentifiers.pkcs8ShroudedKeyBag, encInfo.toASN1Primitive(), b.getBagAttributes()); - - ByteArrayOutputStream abOut = new ByteArrayOutputStream(); - ASN1OutputStream berOut = new ASN1OutputStream(abOut); - - berOut.writeObject(new DLSequence(b)); - - c[0] = new ContentInfo(PKCSObjectIdentifiers.data, new BEROctetString(abOut.toByteArray())); - - // - // certificates - // - if (!c[1].getContentType().equals(PKCSObjectIdentifiers.encryptedData)) - { - fail("failed comparison encryptedData test"); - } - - EncryptedData eData = EncryptedData.getInstance(c[1].getContent()); - - c[1] = new ContentInfo(PKCSObjectIdentifiers.encryptedData, eData); - - // - // create an octet stream represent the BER encoding of authSafe - // - authSafe = new AuthenticatedSafe(c); - - abOut = new ByteArrayOutputStream(); - berOut = new ASN1OutputStream(abOut); - - berOut.writeObject(authSafe); - - info = new ContentInfo(PKCSObjectIdentifiers.data, new BEROctetString(abOut.toByteArray())); - - mData = new MacData(new DigestInfo(algId, dInfo.getDigest()), salt, itCount); - - bag = new Pfx(info, mData); - - // - // comparison test - // - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(bag); - - if (!Arrays.areEqual(bOut.toByteArray(), pkcs12)) - { - fail("failed comparison test"); - } - } - - public String getName() - { - return "PKCS12"; - } - - public static void main( - String[] args) - { - runTest(new PKCS12Test()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/PKIFailureInfoTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/PKIFailureInfoTest.java deleted file mode 100644 index 164f5a6..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/PKIFailureInfoTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Encoding; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.DERBitString; -import org.bouncycastle.asn1.cmp.PKIFailureInfo; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTest; - - -/** - * PKIFailureInfoTest - */ -public class PKIFailureInfoTest - extends SimpleTest -{ - // A correct hex encoded BAD_DATA_FORMAT PKIFailureInfo - private static final byte[] CORRECT_FAILURE_INFO = Base64.decode("AwIANQ=="); - - public String getName() - { - return "PKIFailureInfo"; - } - - private void testEncoding() - throws IOException - { - DERBitString bitString = (DERBitString)new ASN1InputStream(CORRECT_FAILURE_INFO).readObject(); - PKIFailureInfo correct = new PKIFailureInfo(bitString); - - PKIFailureInfo bug = new PKIFailureInfo(PKIFailureInfo.badRequest | PKIFailureInfo.badTime |PKIFailureInfo.badDataFormat | PKIFailureInfo.incorrectData); - - if (!areEqual(correct.getEncoded(ASN1Encoding.DER),bug.getEncoded(ASN1Encoding.DER))) - { - fail("encoding doesn't match"); - } - } - - public void performTest() - throws IOException - { - BitStringConstantTester.testFlagValueCorrect(0, PKIFailureInfo.badAlg); - BitStringConstantTester.testFlagValueCorrect(1, PKIFailureInfo.badMessageCheck); - BitStringConstantTester.testFlagValueCorrect(2, PKIFailureInfo.badRequest); - BitStringConstantTester.testFlagValueCorrect(3, PKIFailureInfo.badTime); - BitStringConstantTester.testFlagValueCorrect(4, PKIFailureInfo.badCertId); - BitStringConstantTester.testFlagValueCorrect(5, PKIFailureInfo.badDataFormat); - BitStringConstantTester.testFlagValueCorrect(6, PKIFailureInfo.wrongAuthority); - BitStringConstantTester.testFlagValueCorrect(7, PKIFailureInfo.incorrectData); - BitStringConstantTester.testFlagValueCorrect(8, PKIFailureInfo.missingTimeStamp); - BitStringConstantTester.testFlagValueCorrect(9, PKIFailureInfo.badPOP); - BitStringConstantTester.testFlagValueCorrect(14, PKIFailureInfo.timeNotAvailable); - BitStringConstantTester.testFlagValueCorrect(15, PKIFailureInfo.unacceptedPolicy); - BitStringConstantTester.testFlagValueCorrect(16, PKIFailureInfo.unacceptedExtension); - BitStringConstantTester.testFlagValueCorrect(17, PKIFailureInfo.addInfoNotAvailable); - BitStringConstantTester.testFlagValueCorrect(25, PKIFailureInfo.systemFailure); - - testEncoding(); - } - - public static void main( - String[] args) - { - runTest(new PKIFailureInfoTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ParseTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ParseTest.java deleted file mode 100644 index 2e5112a..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ParseTest.java +++ /dev/null @@ -1,308 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import junit.framework.TestCase; -import org.bouncycastle.asn1.ASN1OctetStringParser; -import org.bouncycastle.asn1.ASN1SequenceParser; -import org.bouncycastle.asn1.ASN1StreamParser; -import org.bouncycastle.asn1.ASN1TaggedObjectParser; -import org.bouncycastle.asn1.BERTags; -import org.bouncycastle.asn1.cms.ContentInfoParser; -import org.bouncycastle.asn1.cms.EncryptedContentInfoParser; -import org.bouncycastle.asn1.cms.EnvelopedDataParser; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.io.Streams; - -public class ParseTest - extends TestCase -{ - private static byte[] classCastTest = Base64.decode( - "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"); - - private static byte[] derExpTest = Base64.decode( - "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" - + "yv8TOTFCWnZEUTtVA9+2CpwfmuEjD2UQ4vxoM+o="); - - byte[] longTagged = Hex.decode("9f1f023330"); - - public void testClassCast() - throws IOException - { - parseEnveloped(classCastTest); - } - - public void testDerExp() - throws IOException - { - parseEnveloped(derExpTest); - } - - public void testLongTag() - throws IOException - { - ASN1StreamParser aIn = new ASN1StreamParser(longTagged); - - ASN1TaggedObjectParser tagged = (ASN1TaggedObjectParser)aIn.readObject(); - - assertEquals(31, tagged.getTagNo()); - } - - private void parseEnveloped(byte[] data) throws IOException - { - ASN1StreamParser aIn = new ASN1StreamParser(data); - - ContentInfoParser cP = new ContentInfoParser((ASN1SequenceParser)aIn.readObject()); - - EnvelopedDataParser eP = new EnvelopedDataParser((ASN1SequenceParser)cP.getContent(BERTags.SEQUENCE)); - - eP.getRecipientInfos().toASN1Primitive(); // Must drain the parser! - - EncryptedContentInfoParser ecP = eP.getEncryptedContentInfo(); - - ASN1OctetStringParser content = (ASN1OctetStringParser)ecP.getEncryptedContent(BERTags.OCTET_STRING); - - Streams.drain(content.getOctetStream()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ParsingTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ParsingTest.java deleted file mode 100644 index c5a3353..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ParsingTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1StreamParser; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTest; - -public class ParsingTest - extends SimpleTest -{ - String[] streams = { - "oRNphCO0F+jcMQKC1uMO8qFBPikDDYmtfVGeB45xvbfj1qu696YGjdW2igRnePYM/KkQtADG7gMHIhqBRcl7dBtkejNeolOklPNA3NgsACTiVN9JFUsYq0a5842+TU+U2/6Kt/D0kvz0WmwWFRPHWEWVM9PYOWabGsh28Iucc6s7eEqmr8NEzWUx/jM3dmjpFYVpSpxt2KbbT+yUO0EqFQyy8hQ7JvKRgv1AoWQfPjMsfjkKgxnA8DjenmwXaZnDaKEvQIKQl46L1Yyu3boN082SQliSJMJVgNuNNLFIt5QSUdG1ant5O6f9Yr0niAkAoqGzmqz+LZE1S7RrGHWiQ3DowE9NzviBuaAoI4WdCn1ClMwb9fdEmBMU4C7DJSgs3qaJzPUuaAT9vU3GhZqZ0wcTV5DHxSRzGLqg9JEJRi4qyeuG3Qkg3YBtathl+FiLJ7mVoO3dFIccRuuqp2MpMhfuP1DxHLNLNiUZEhLMQ0CLTGabUISBuyQudVFlKBZIpcLD0k7fKpMPuywrYiDrTinMc2ZP3fOGevoR5fnZ6kZAE5oMTtMNokzBuctGqVapblXNrVMLYbriT538oYz5", - "KEKVhHxtyUR9D3v5K4IJbVQLAMiVKoK9z7wFWUjzvLFNLg9C/r8zKfBa3YgZrt0Nq64+MxBePMbiNLCnfditc2qUcQZUHnvNnhwT6uGK37JmXg7MvQiKwvi31EIYt6ghqBZVs1iaqc0ep7wuQ16uwSQMlaDdXc9Qf1L0dGO/6eLyREz+p4UR4NOXK+GooQLfMxYL40zJlYcwNyR0rigvIr84WP2IMS2hZjqXtyS6HMM4yUv70hkIorjr7+JC4GtU1MyWuPuNSAGen0AZTaEEXd5sMbqXMqWg3jeM4mzRH1Kb3WdAChO5vMJZPBj9jZZKgXzmxkUh5GlIhUdYgztoNceBzQ3PIc7slCDUw9I2PjB87xsfy7jA5tFtFADs2EUyxUTMCuhilP664jSHgwbrr80k9Xc4sU+MCwCq2nQmcZYcPgKb4M31VJMlKwnZF3JUU2Jtqgg4gbErw58YoBwSkEcMJ2Juhiyx9U36MzxHs9OcTURfpsilMy+mDL8arCDx1knM1KkAHCLjWuJI+p1PvuIypgCwVc+MtGfd7wW8iR1JPJLBiuoZyNJ+xx9htd/HVB+rLtB57H8Gz8W+R00f", - "Ol9I/rXMwbLpxTY97v70B+HCl2+cojz2574x/cC56A7KGVF13La8RdzOOvSkl338ct9T/blEFa6QwNz3GmF+MoPdH9lncwz+tqixIqGU02Bp5swH0qjbp/Yjaeq91eR6B+9fl+KKrpglBr8S1BrI4Ey5v3AxxJdCWP8Gd+6Sp15/HMYanwlHBpCsW4+Kq8sGJoJXUXpQ/GBUJKs+WjX1zE6PsvF7/B8cByuqE3NJt7x4Oa+qZtF8qNc0CFDNj31Yhdt7JkAoD30IAd+ue9OhImQMCWwFwySRIRJXU3865K2dBR+VhLuI2aKzLh7MlgVKJk6b2P/ZIkc86ksR1sOUiHrs9EdoYuIssAgMc8QGzn4VN8lxopdzQYVG6pbXGS/VQlHkGdyLd+OHt4srz/NTUWiOquVTRxa6GgtlBFfIXikPTb+iT2pZKyKUlBvpgo0BY9vVUadsteHAI5qrFZBrL5ecK/Qtl9hf/M8qEjyjt2aCXe9B96Hg2QR5A53qW2PJW5VzS0AeB3g+zJSPCTpygrBs20q5Xrna0ux2l17r6HT9Q/AXIOkwPZUXXn0d02igS4D6Hxrg3Fhdp+OTXL8G", - "o3eXWpwAGmUkxHEKm/pGkDb1ZQQctCQ06lltZjeMXDp9AkowmA0KXjPQCQwyWE/nqEvk2g/58AxNU0TWSujo5uU0h4/hdMZ7Mrj33NSskWvDpKe7lE5tUjPi74Rmc5RRS+1T/EQobpNxoic3+tTO7NBbZfJtcUYeZ3jqxL+3YQL3PrGe/Zpno9TnQW8mWbbhKhDRtKY4p3Pgk9hPSpJCM9xYo3EMAOAIiH2P6RKH6uX/gSaUY2b6DE/TT0V6v/jdSmYM4+cnYiTyJCi5txI35jfCqIlVCXJd7klirvUMg9SXBhGR25AgQ5Z8yjd7lbB8FvD8JQAXZrp6xiHxbLIW7G11fWEo7RGLFtALI6H38Ud0vKjsEN7N5AibJcxS2A/CWk9R00sTHRBHFUP8o5mz8nE7FeCiwJPs/+tCt04nGb9wxBFMsmWcPEDfIzphCaO6U/D/tQHlA846gbKoikv/6LI0ussSR/i85XBclNcvzTctxylSbCR02lZ+go6fe5rmMouiel/0Tndz8t1YpQGilVeOQ3mqAFyAJk3dgfTNKZuOhNzVIZ5GWScKQ5ZtNcWrg6siR+6YwKvLiRb/TJZk", - "PwRUnW4yU8PI7ggbI1BIO9fcTup8optkqCirodyHCiqsPOMZ4g28bJ2+kpfQRujWGlKFYQzA1ZT32s9hdci+fvXPX0KAjcUgcxsGzMABFbEm04BwDF2WLgg9s4/x71r5JrgME1S08I3mCo4N0eFHWDeLJL1b5YNNo6tfO5V2WpIE867N9zdAgvp1gijVjUNWqEB3A/NLb3reLMu2hYgqRFTCVBfcFclD46k0XEfUJqwWdQhOz92WNl/3g53bjKX1hDZgjLIzK6m+SU6+J/h4NidrS7E0gOBevZW8gRYdKMVqNWxzUfxv6kgG+kIeF9JqMcO6jdh/Zu/0tpZoHFeCweZ1jT1eEtltFu1FcTTPc1UT0pT+ZNVgefrBONoGnvn8+dBjPese6F2TmRCExJq9taKlIh/kHdkbpaa7vwrBpYRgVGfARPyM9SSCaE7pVBDuwkFeYiGU4tamm5Gq10ojRQgetJ3UOg/PGTJcxo97GBiG5zAST9NdHdgK3eI4FAbWpGwmWxNpPWOst0a7zuGKAzYU+1IQh8XA3IgJ2vy3+w0JihU6G+12LUzsL2aQtpG7d1PqLhwOqHq3Qqv3SDsB", - "ZIAKizvGzbvqvqOlxOeVgHGHV9TfKNjjqyzbCj8tggv2yp7kkq1D3yRlC349tuul3zN9g4u83Ctio9Gg3HiLzMULxoOImF/hKRDhJpPLbLm0jSq1fyF+N7/YvyLeFhGoPhYEBUihDcxo1NIcWy66aBt3EuOlTyDQWrDe0Za3mrTrrl10uLHVKcQMgeD+UMgjQqmHzQJR8wdNjHPKHWVvZEdiwI031nV2giHJHXv08Jvf4vmw4dAlH2drCl6cBgg33jy7ohK8IiXz6eCw6iY9Ri8YaMzxOhgE2BOHzEz5ZC2hilL4xO/ambTER4bhb4+9VTUIehHP18FcXm8TKPQRMqyKP2fMlzWW3/uelYfPP5SHlyLAULa1KjDCkLIDunEKZDpv2ljGB6JPrTlNwFsvlZcihfOAwjbr2jW3MwP704OA8xzd/dynBU47unIZEu0LAvQ3TUz3PLga0GGO1LZGtg0Foo9zFG2wuVCdgYHmozOQ+8I3gRguW1CjGy7ZCTBuN1GZ510ERhae+bRQtldHsLeiHTghnkU1xEX1+W0iEf3csDYrgpuq3NaBYRGirovDiPBYFHmru0AMclhFnpcX", - "uG0wQ55kMlfZtJFAqTl0bnYW/oy9NFOi0e4FqAYwsvMxGO4JtGzXgkVwEUAC0AUDItRUjxBl+TkoPTYaprgn0M/NQvKPpXJ+yzI7Ssi+F2alLR0T6eF/4rQ32AVjnANJaghXZm0ZKduckbhSxk5lilJVJRuzXKchZRtlPluvlj448bq+iThktsEQoNP8NMpi7n/EVxovp+dow4Q6t7msSRP4cGXtyYoWKbf/7e5XzBKOZZ1/f3s86uJke4dcKIaljpJfBrtuFxZC6NYXzX6PkoDoBgqQ8RBrxsX54S9cBDAPxxmkq8zviAOW3oqPMULGGmQzHBiRwE8oeDFoMnzF5aR/lkbNuTLOxhbIkosgLWlDNVEFYx9bVhdLzO7VwaAK829dimlPOo5loKB7Pd2G7ekRKXwu7wNvJBq8KRkhtLKbKoS8D6TaRWUMb9VBJ1CMy4mrw+YwTmAKURQ6Dko9J/RgzRg5Y/sUlwdMYS9HOnvKiTVu5I/ha35wwkhIPVm+FCn05tstntZaXXXu4xExHeugAKNBhkcc/SQt+GFdxXDd+R4C2LfKxGDSyZKVTFYojHTdZUo8Gx6SZLY6b2SZ", - "sH0kIwIq1THAfTLfqUKJfG1YauCQKPc9/mk3l39yK6zgxSpCH2IjZIwhhJtGm3F+8PTneT725OuyR617nxqrgqMGkkZkyY4DA5CjsikpBo5mo8TspX1g+vtXXtxymJMTMo8JwX3nSH4gSb3vPia+gwOW2TcJmxVdp3ITPA4gJpMfqoMBqRM+eDWO6QXW5ijVL4+wnp40u5bU4fQLVzpg25+QGLqBHD6PZTQaN6F9Vy5XpsAGDlncCklVuX3Lkp3Xb9cTiNa/4ii04uwZqx0juszjwFAMPPb6u56crvN1x4FXfXzabWECHbdQLlKazowvU9bEnqG2i4H44Ae+v8Iw8HK5mbZ6ercLTD9oPgs7Ogal037l2WwLApUz/fmD5fV8SxHh+vKDpfOzv6xcQxynS82jAJw9AdUwE/4ndGzzHPIu2M81gbAgZQ02EurMMU62hYgiXeridrtyh+H5R+CiwQdEyX7/op6WVihsYj2O3O/1hgjhGQRFD6sGwnko50jgWRxaMMfJGNlyGoT8WT5k931jU7547u7Ovr7XP/t8r3G7ceCiCcYjQgdwXdvIStzPvvV7Yy02isZjiJF8TLJQ", - "tycxf1mOz1yLE6cT/ZlCxMeTxlEEHFeIdw0+nF/40Tsw4vLco+4kR2A6cVml611CSpN6l/RMKk2LnAkprrbJ/Uam902WBnQ+I6Vsl6GkFFq7362bdixojqMFVKYytXLCT8I78f6s8M6a3jSALQloD6Ftvn+cc+cctO3weaaaPgAlrz+f2MFs8bqpnLQYbbY/JS9IAYJFH+yVtLz7eKcedEp9JMlJ3/43szU2fDN9ZMxBoQnxEmF3WZv6GF0WRc8VhTblXRgk4mlz6Fu3IXvwW/rbn+VCYYIk/XaVLrxFAnnw6mBozAF7vmV0OrIYBlSDU8rMb+F7AvE7pwErO9TJtCE8IUvQf8TsJYRoYv21/X57pzcBedtqVeU3DnTlmESHxG6H1uJbadSFLWSxKS4svfp8T9FWqX5815yD/UplAKEIeorLTAlPIC2ASKDU6SQW260biNAfY8FYQCWa8btaTwFuY8NMwSHzyqgU0aoPKnagi/4hOIWNO5rZ8Xcnzx+ELtEl33hQnzc4OUlT5eeVYQWkz2IWVQ6Re4JWF3L4OXzNZWgefKGMzZU6IHoBeCgfi+popLRJpaOx0dcvwGjk", - "oDsoFvUA+sGOoMyZY6w1UhY3NBkeoozzjEkDSRN1golyXJ1dC5CtYNEjvAJYKj+sqNwg9mBlYyybYpnI3GSP125zMeBHPCoy5CoNOkJW4OH/oLyjVeQbFNic/b2Jcz6lTguYhep8hq9EM2XuFV8T1rm5+4ucI7fH1UiOqRZyuHBAJ0Cna5kv6D3efsa9rd+swybiMIUjmPWpyxzNOOihCYuf4JqRh/D5eZKm6x0Zj2uRhTAYYxI7Q3czd0R9490ufG8VbF8ASBMireMONNNAA/OZCpxJh6xnIANBqV6YDeysws3NBWY2QuNumvg5Kr3/g+VMzJHi4wGuJjraKWi9+ylMfelHF5h/h+pAQVxCotq8JU3OTnMUW4rQp2a8BR5S+mZqPSPlb87tDG9r0+yqb1uO4UIo71C7Xxwoq4M0tXjk6mSmtP/sm+Lh14qfUzKRhTHVdz91TK104mbTJNXbK+jGPD/2BJO9fiaXY8IYanpfDLBfJo06VYbm6HehRZTwnDHnN50j7ki4aMS3COZvffjRInXD8dS5h9zmtKNpoqg//lPg4gpS+4Th2sJ3SGtBV0Ne89r7AfZMAVa26PMK", - "MIDLuZTrtZnEBOB6l14iSEyokAg5Wf5JviumhfPeL7WSFTHfOodU2hrvhyvM6oAlRHY1blTj7mw+Tcf9Tmc+/FHT6PGu0NT5UAqaqChX0gS9jizgAE2Yfhd4X/DoeQySMAixKuhu8TbvDxb54jeW9+7LVkmlntJ/0SkMgsT+WQ31OfpwDmEGDczYc+Ol14aJS+EW+rnGv9d38bo/cy+EnpNh8iV2rGGoC8fDzFHKU4gqGFSZF/tnD2OfCne0Vjr/GD6kyp2MVcHig19DBg2toGRkHnuY5kLkwOanztXA80IaAmv8e6s62U8CE8ozUZeDBcvBigEkSGx79Vsyiks8+9Kq9xLHLeS5kRT6zSl8whe8U1fIfrgic34KPlozcQVahwCru1XWyQ+9uevih8x4zMftkJ3JBZhPrnlgtx9McntH/Ss9fdUEkNwWpDnq8Xby8/5gMMMwQ13XDB73vqqteDiltMq8i7LRez4iIHfSBBfIkZIzMZAblQXaSm029iBcAAUes7wcGHUl7KOpRy18jNtI3+h7e1Ri6sT2vJYQaove0nzZ5xAjpBKnbJX+lpGVlI00fC2YSTfyNqFA0jkL", - "MG4QbKLbQR3enPn6Z/kEUtHrzWBIqYKR7Gvs5QHLPF6417p1O58suZq38Bb8dO5udtgOqNEVAPGmOuidYygWWfWOP5ReggTUk5XlrkvRxCU0MHWbkSKkJ+T4nLjozreqTJ0io41sFVrpxuOugAvXJ6QtMmixSABUaNgU9SkkWf9pOEiJI8dfND51HxJCbXHwsMCMBp5FbaMZmlWPwirRdAox4wbLk9ZLmoWUcorUjdaWhKvT/LnjMgPmwnwwKpN/4MOnRDdAPdzXX3aWHdkzpfsQnqt3UJsTsSaJlzeUja5C5L4CXGyt99qmfcwB8OB9TL4EYTIl3maD/gUWBfckOsji8x2E2c2iuKKrcmMmcChYr4wCjtTjEeVKOAZ2m9mU2MKc2z2hDw3AuZxsY6aOtdAjnrwl5QXGRg9I5LVl5SI5RwnLwk90pJzDGuSSCtSmzh9DUZ4WpfN+1393aTGRqCMOsB4KxbXjspUbVMFJbnXXlsSNWaoFTpHjK6b6Ghi2/re7KJpoKElM3nGs3qvxdvGTKu7LKr/sgKDL6uQLRKoyk8AHSIGX9c8ZUTk7Sq9jV9p4QfV1WFVpaBxSsEmw", - "MR0BACgWKis9/AKwG9/ARgGWJn1aM3nU8YXzWG+b7aeRUkVCjl4WxeL38E3FAMLW4UcyLzxeb+CskOqhPPTglmxhK7jQcrNILsWcZvdZfApYIvk5uKqA5FKuUuL48uvD0aKGRENe/VEUFlkQru5YX4Xnp+ZThrJJlgn7ANat/qAdP6ULEcLaOQlLYcGRh5ttsJTRT4+cZQggTJjWt+9idUQ66HfC6zQ1qHcMuochy7GHiUmNXAs0AgwOF9Jwet/Qh74KGMtmppJ9gkEqiYECFQA2gVgKc1AufHJS6S6Re72FfH/UkL41L2hvlwktkD5/hZrUZ1R+RG12Eip2zKgus4g/aGl0V8B/JvkcnFUsZJ6uxs24arOBDJOuzzxky5F5B/hwVGPEdcfHunqndUcx26/KCK72hOljlqTXl8yEbXlcMqVFNByZLr7TnGzGGUlO7kuHPW/ItZUJvrHokpsLLrb3ZhEZ8pTQd75gFcf0Ve8CYzEtk2ISHtNJQV6Iz4AZHWssU6F6YWM/OlJz5JGTtPHfGMJXgl4oxbBjeenS3JQ0X7vWXYMwPe3U1dat6m5hrRC1KzI6e6w+gPDtF8GQ", - "DH2WX6XoIseX6lHIey3seUr3DAz82fyk0jL7xc5IDTrDfqS64QBhHDpqHETF/81MrPXsM3IANBfjDOl9g/gua8wWPpPNxuWZMNh0GLcAr6PJ939TCbjE3soZHF2wiA82nZEO8jIZosDVRWFUfJS6Y3nrJz63SExqB6OUdBfvSfz1Y1M/90ofBxkfeuS85deMdn+1rZdsnZJYwz2Z6lCDvYjUTfrSwfVFJBP8Y2BXr8WClUYkfGG4eNG7IPNBRuMmhrhHj5y9z+5Jor+EbbTi5F5Jvdu2/bDM7s32XsaMNLYuVtNYONrbQ+3QZ746/yKZM4hDREvxyGLgDx3Apz7pyvwKm0//iTCY3yJLxZifGLh2uc28cFBln7IH1x8oui4Xq9vF+Z2EH4Ow48Ln5pzggBKMGy4dsfW6266TNYd/Z3SZUi28sxondqhGCSGUo7ZVPAOoYDcYKvjdI/cJ688PHliyZSYBYVmR5HBxZ57sqWwgZQ7zVvwv4CHHysvb92sPrXijHxBIkwpNuK56UMyQCcywlTRLDCMAMNAEGi4fWbDQIoPfn+NixMhEieg3Zh7GXPwHxW8morlgBW5aF76P", - "AwClK6Tq9R2DYGf8RAHu9dEttLeOfUVmS4WPwX0NehsnyM7y7n2sgGnXsiva3yFqK1hKZICkVukvHF7/bpgEEm/jRwcAhQUoG+c1qVde38eHJXj58YOBGTveruc+021or9/tHBtenmYPO6+arLQtONi43NKm7+I6ugkgQlp6iBr4haa0XMDTzMX9c8Qm/O+MrVo3qESYKkVtoSSK7SGZTBaRWNF/dOM0NQxeMP+XTVOuroqE23ZNsubBTEZnd4vUilFb/iKnhyT9XnIo7gM/Yz7HLVU5yc3yIj2sFUE+DcwpvcNO5EnPhj3bHsJvf3N4r72+5my2KjoR3KAJE1Imabd54o4xZ/9UaR93qLkVuXMkLRCCU/zlZDtfbJDsRR0C5rSYd2k6IPlNcl7PgmUpsNPUyoDYqvhuRUZxgoUAfKbogzJX8FU/QpllsKVtt68ucBi0bqC5pVKu23j79nDvYQsSlYY3JwJQaM5M558J5qpP1yEF2p4kSRphnB9UR29wWgch5eWZ4a02LlHVM5Msl6W5PdmHt+eFARBRv6edIyYDFzxm4WZroH5F/GxBhM0KObgawkxa5VWsYm0VhhXb", - "KACwq8rZuOLHuNnZJA07WzI7kppCwptbcYU2B7t86QcZrnadCtxoM5QNcl9rsbMA26iWCPV3VlDAmLSWcxtMoSKWuo4edJpk8K915xkFU5U6I/901vx5hqAECQDy/Q+QDWmWTXDoVHqFV9wvIj3wCJPpJL/Ewpl0NZd+68jjOjUhjIdNebLrWNK2nhTPiIjFjkcVqEgashpOmnbHT+2MV/CHoixmUEiuRI1B0dvSf7FHGRgbXGBubisuu60g8XTens5zyRo4Qn/LTxIu2aj4LTtyLonV3sXr+y35A1zq5mCrE1f1nOINVzwYYY76iJGIaBkZuMU3366FPIbYkmXwla6RQU1FA0Y7n05qczw7Ie5TveRTByKFtUqW8OAb9vH+H2ezJ4CXE3AGbu/nTj64KClO/zL499GA+97g+X6tTN6xOJdNknlqw6ZnFNtCL8+A3hL4OyOgWD0IGC+xFvcKjDUaaJenCtQvprCJaFrvoOS+yYmixnFqglnPYL/64/Lca8NmDVpPzlHI8HNwUDzKiXTw3q7GnQZWmUYzu1vLIEi6/hyqrULRN1vLdd/8HCMNQFj4ot61UftHtOG8MCKa", - "rUABPQ3SEWE5rY16pM+o+7EObLNM1jEa5YCMQM/aen0PWajWNax3Pyo6TZL8aGDXZF0yWqDM3b2m6UHOr6yqsUSrD+0jXPT48QN1VdBmh+AFRK+UcaYO383a0nvtv0c9uHt4yfceXLPGWrNjW+uTnS/lKpCdpE4GfLF1SFHIUcMxT+3At7hwDHNkLXllEXqbgDP8LyQSlYwT5jQUDCOzwc8CSxAryUOj6fN+iLKAiw4haPV/WZDG+JOmDMG2azo8SoBMi3y6Z2Le2fz2dMuvn5DUvCUvazrUmWYx4NEdSzc9GfBc6cXkduMqCs+lT2Ik2GHO0WjhrEB6j5NULOaCtbrislM85P6QutN4Pj9l18pcD6vZCcDTOwMj/BznclH342jeMn7rBgpW1YSzbNGP6KC4NeNW1H2xqNtuyhcJvasx4dwhzO18A36H6HtkiQyJNnfnVHh1oviO6mi3atmnh9B/55ugXM1Wf/6Kv8kJyaKtK8cWo+jCAR0/P/EsPtzToJM9Yk2+qxaPFd3k7T2KXvCQ9D1jLeECxL59L+WDvdBtxOEBD7W0a/Mn/9LuQPOiwARKJSTU+blJ6ezTeo83", - "poA1hF4zRh7HF0xVglYoLFqkUR7Pru/qYFnfMKBPuEOOGdgO3MMcAvIZ+w+Ug4THr/6+Vux0TN3wdOB+beObOboLgNE2zaD65lyMFbaulzrEnWjUgIg63CdpQJ2ESaimHGg/GmsipUCndRJ37TbUtn8W112SehsAgrsjiBcuJhw61i4bVfAZEcycq4Y/FlEDxtzoH8WzDoESNbl+r5agLcHGr37BFi81IXS8TLihC1T8b7d6tLb6lpXT+9IR4xAyZTw1IFMDZZEzVmHgYE/Et20/WhkX/oGghkWSpCxR0kynDplk+BEK2oyGKnl+rf4vymhsse2iQ/C99PhaodZjDfuGVSwPLoU0AYyAKaEwmgHPOFbDlrAmNk4iBp+IZYm9guZM2hcQ4GeA5WQyZzw4C1yMywWbdjtL9ZhpClmmPZ28nmwNORAat7tXPJoBBdXFB0gNT/wU7UYIKU5GnAiDIFJ0o8ijnuAMat3AsBki2vxwdypuBq5M6OF9DVA0HRUjOA0l4JHjK8Y282mz3U34PDPQvwCT342uD9cO3uXoSr3T2FnDmsVHz4Q9zYpSjioLmZk9ZTnQWgN5V5Oyat6m" - }; - - public String getName() - { - return "ParsingTest"; - } - - public void performTest() - throws Exception - { - inputStreamTest(); - parserTest(); - } - - private void parserTest() - { - for (int i = 0; i != streams.length; i++) - { - ASN1StreamParser aIn = new ASN1StreamParser(Base64.decode(streams[i])); - - try - { - Object obj; - - while ((obj = aIn.readObject()) != null) - { - - } - - fail("bad stream parsed successfully!"); - } - catch (IOException e) - { - // ignore - } - } - } - - private void inputStreamTest() - { - for (int i = 0; i != streams.length; i++) - { - ASN1InputStream aIn = new ASN1InputStream(Base64.decode(streams[i])); - - try - { - Object obj; - - while ((obj = aIn.readObject()) != null) - { - - } - - fail("bad stream parsed successfully!"); - } - catch (IOException e) - { - // ignore - } - } - } - - public static void main( - String[] args) - { - runTest(new ParsingTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/PersonalDataUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/PersonalDataUnitTest.java deleted file mode 100644 index 95a3120..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/PersonalDataUnitTest.java +++ /dev/null @@ -1,121 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; -import java.math.BigInteger; - -import org.bouncycastle.asn1.ASN1GeneralizedTime; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.x500.DirectoryString; -import org.bouncycastle.asn1.x509.sigi.NameOrPseudonym; -import org.bouncycastle.asn1.x509.sigi.PersonalData; - -public class PersonalDataUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "PersonalData"; - } - - public void performTest() - throws Exception - { - NameOrPseudonym nameOrPseudonym = new NameOrPseudonym("pseudonym"); - BigInteger nameDistinguisher = BigInteger.valueOf(10); - ASN1GeneralizedTime dateOfBirth= new ASN1GeneralizedTime("20070315173729Z"); - DirectoryString placeOfBirth = new DirectoryString("placeOfBirth"); - String gender = "M"; - DirectoryString postalAddress = new DirectoryString("address"); - - PersonalData data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress); - - checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress); - - data = new PersonalData(nameOrPseudonym, null, dateOfBirth, placeOfBirth, gender, postalAddress); - - checkConstruction(data, nameOrPseudonym, null, dateOfBirth, placeOfBirth, gender, postalAddress); - - data = new PersonalData(nameOrPseudonym, nameDistinguisher, null, placeOfBirth, gender, postalAddress); - - checkConstruction(data, nameOrPseudonym, nameDistinguisher, null, placeOfBirth, gender, postalAddress); - - data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, null, gender, postalAddress); - - checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, null, gender, postalAddress); - - data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, null, postalAddress); - - checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, null, postalAddress); - - data = new PersonalData(nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, null); - - checkConstruction(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, null); - - data = PersonalData.getInstance(null); - - if (data != null) - { - fail("null getInstance() failed."); - } - - try - { - PersonalData.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - PersonalData data, - NameOrPseudonym nameOrPseudonym, - BigInteger nameDistinguisher, - ASN1GeneralizedTime dateOfBirth, - DirectoryString placeOfBirth, - String gender, - DirectoryString postalAddress) - throws IOException - { - checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress); - - data = PersonalData.getInstance(data); - - checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress); - - ASN1InputStream aIn = new ASN1InputStream(data.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - data = PersonalData.getInstance(seq); - - checkValues(data, nameOrPseudonym, nameDistinguisher, dateOfBirth, placeOfBirth, gender, postalAddress); - } - - private void checkValues( - PersonalData data, - NameOrPseudonym nameOrPseudonym, - BigInteger nameDistinguisher, - ASN1GeneralizedTime dateOfBirth, - DirectoryString placeOfBirth, - String gender, - DirectoryString postalAddress) - { - checkMandatoryField("nameOrPseudonym", nameOrPseudonym, data.getNameOrPseudonym()); - checkOptionalField("nameDistinguisher", nameDistinguisher, data.getNameDistinguisher()); - checkOptionalField("dateOfBirth", dateOfBirth, data.getDateOfBirth()); - checkOptionalField("placeOfBirth", placeOfBirth, data.getPlaceOfBirth()); - checkOptionalField("gender", gender, data.getGender()); - checkOptionalField("postalAddress", postalAddress, data.getPostalAddress()); - } - - public static void main( - String[] args) - { - runTest(new PersonalDataUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ProcurationSyntaxUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ProcurationSyntaxUnitTest.java deleted file mode 100644 index 32120bb..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ProcurationSyntaxUnitTest.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.isismtt.x509.ProcurationSyntax; -import org.bouncycastle.asn1.x500.DirectoryString; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.GeneralNames; -import org.bouncycastle.asn1.x509.IssuerSerial; -import org.bouncycastle.asn1.x509.X509Name; - -public class ProcurationSyntaxUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "ProcurationSyntax"; - } - - public void performTest() - throws Exception - { - String country = "AU"; - DirectoryString typeOfSubstitution = new DirectoryString("substitution"); - GeneralName thirdPerson = new GeneralName(new X509Name("CN=thirdPerson")); - IssuerSerial certRef = new IssuerSerial(new GeneralNames(new GeneralName(new X509Name("CN=test"))), new ASN1Integer(1)); - - ProcurationSyntax procuration = new ProcurationSyntax(country, typeOfSubstitution, thirdPerson); - - checkConstruction(procuration, country, typeOfSubstitution, thirdPerson, null); - - procuration = new ProcurationSyntax(country, typeOfSubstitution, certRef); - - checkConstruction(procuration, country, typeOfSubstitution, null, certRef); - - procuration = new ProcurationSyntax(null, typeOfSubstitution, certRef); - - checkConstruction(procuration, null, typeOfSubstitution, null, certRef); - - procuration = new ProcurationSyntax(country, null, certRef); - - checkConstruction(procuration, country, null, null, certRef); - - procuration = ProcurationSyntax.getInstance(null); - - if (procuration != null) - { - fail("null getInstance() failed."); - } - - try - { - ProcurationSyntax.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - ProcurationSyntax procuration, - String country, - DirectoryString typeOfSubstitution, - GeneralName thirdPerson, - IssuerSerial certRef) - throws IOException - { - checkValues(procuration, country, typeOfSubstitution, thirdPerson, certRef); - - procuration = ProcurationSyntax.getInstance(procuration); - - checkValues(procuration, country, typeOfSubstitution, thirdPerson, certRef); - - ASN1InputStream aIn = new ASN1InputStream(procuration.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - procuration = ProcurationSyntax.getInstance(seq); - - checkValues(procuration, country, typeOfSubstitution, thirdPerson, certRef); - } - - private void checkValues( - ProcurationSyntax procuration, - String country, - DirectoryString typeOfSubstitution, - GeneralName thirdPerson, - IssuerSerial certRef) - { - checkOptionalField("country", country, procuration.getCountry()); - checkOptionalField("typeOfSubstitution", typeOfSubstitution, procuration.getTypeOfSubstitution()); - checkOptionalField("thirdPerson", thirdPerson, procuration.getThirdPerson()); - checkOptionalField("certRef", certRef, procuration.getCertRef()); - } - - public static void main( - String[] args) - { - runTest(new ProcurationSyntaxUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ProfessionInfoUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ProfessionInfoUnitTest.java deleted file mode 100644 index 34b3307..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ProfessionInfoUnitTest.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.isismtt.x509.NamingAuthority; -import org.bouncycastle.asn1.isismtt.x509.ProcurationSyntax; -import org.bouncycastle.asn1.isismtt.x509.ProfessionInfo; -import org.bouncycastle.asn1.x500.DirectoryString; - -public class ProfessionInfoUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "ProfessionInfo"; - } - - public void performTest() - throws Exception - { - NamingAuthority auth = new NamingAuthority(new ASN1ObjectIdentifier("1.2.3"), "url", new DirectoryString("fred")); - DirectoryString[] professionItems = { new DirectoryString("substitution") }; - ASN1ObjectIdentifier[] professionOids = { new ASN1ObjectIdentifier("1.2.3") }; - String registrationNumber = "12345"; - DEROctetString addProfInfo = new DEROctetString(new byte[20]); - - ProfessionInfo info = new ProfessionInfo(auth, professionItems, professionOids, registrationNumber, addProfInfo); - - checkConstruction(info, auth, professionItems, professionOids, registrationNumber, addProfInfo); - - info = new ProfessionInfo(null, professionItems, professionOids, registrationNumber, addProfInfo); - - checkConstruction(info, null, professionItems, professionOids, registrationNumber, addProfInfo); - - info = new ProfessionInfo(auth, professionItems, null, registrationNumber, addProfInfo); - - checkConstruction(info, auth, professionItems, null, registrationNumber, addProfInfo); - - info = new ProfessionInfo(auth, professionItems, professionOids, null, addProfInfo); - - checkConstruction(info, auth, professionItems, professionOids, null, addProfInfo); - - info = new ProfessionInfo(auth, professionItems, professionOids, registrationNumber, null); - - checkConstruction(info, auth, professionItems, professionOids, registrationNumber, null); - - info = ProfessionInfo.getInstance(null); - - if (info != null) - { - fail("null getInstance() failed."); - } - - try - { - ProcurationSyntax.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - ProfessionInfo profInfo, - NamingAuthority auth, - DirectoryString[] professionItems, - ASN1ObjectIdentifier[] professionOids, - String registrationNumber, - DEROctetString addProfInfo) - throws IOException - { - checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo); - - profInfo = ProfessionInfo.getInstance(profInfo); - - checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo); - - ASN1InputStream aIn = new ASN1InputStream(profInfo.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - profInfo = ProfessionInfo.getInstance(seq); - - checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo); - } - - private void checkValues( - ProfessionInfo profInfo, - NamingAuthority auth, - DirectoryString[] professionItems, - ASN1ObjectIdentifier[] professionOids, - String registrationNumber, - DEROctetString addProfInfo) - { - checkOptionalField("auth", auth, profInfo.getNamingAuthority()); - checkMandatoryField("professionItems", professionItems[0], profInfo.getProfessionItems()[0]); - if (professionOids != null) - { - checkOptionalField("professionOids", professionOids[0], profInfo.getProfessionOIDs()[0]); - } - checkOptionalField("registrationNumber", registrationNumber, profInfo.getRegistrationNumber()); - checkOptionalField("addProfessionInfo", addProfInfo, profInfo.getAddProfessionInfo()); - } - - public static void main( - String[] args) - { - runTest(new ProfessionInfoUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/QCStatementUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/QCStatementUnitTest.java deleted file mode 100644 index d7a84a5..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/QCStatementUnitTest.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.x509.qualified.QCStatement; -import org.bouncycastle.asn1.x509.qualified.RFC3739QCObjectIdentifiers; -import org.bouncycastle.asn1.x509.qualified.SemanticsInformation; -import org.bouncycastle.util.test.SimpleTest; - -public class QCStatementUnitTest - extends SimpleTest -{ - public String getName() - { - return "QCStatement"; - } - - public void performTest() - throws Exception - { - QCStatement mv = new QCStatement(RFC3739QCObjectIdentifiers.id_qcs_pkixQCSyntax_v1); - - checkConstruction(mv, RFC3739QCObjectIdentifiers.id_qcs_pkixQCSyntax_v1, null); - - ASN1Encodable info = new SemanticsInformation(new ASN1ObjectIdentifier("1.2")); - - mv = new QCStatement(RFC3739QCObjectIdentifiers.id_qcs_pkixQCSyntax_v1, info); - - checkConstruction(mv, RFC3739QCObjectIdentifiers.id_qcs_pkixQCSyntax_v1, info); - - mv = QCStatement.getInstance(null); - - if (mv != null) - { - fail("null getInstance() failed."); - } - - try - { - QCStatement.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - QCStatement mv, - ASN1ObjectIdentifier statementId, - ASN1Encodable statementInfo) - throws IOException - { - checkStatement(mv, statementId, statementInfo); - - mv = QCStatement.getInstance(mv); - - checkStatement(mv, statementId, statementInfo); - - ASN1InputStream aIn = new ASN1InputStream(mv.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - mv = QCStatement.getInstance(seq); - - checkStatement(mv, statementId, statementInfo); - } - - private void checkStatement( - QCStatement qcs, - ASN1ObjectIdentifier statementId, - ASN1Encodable statementInfo) - throws IOException - { - if (!qcs.getStatementId().equals(statementId)) - { - fail("statementIds don't match."); - } - - if (statementInfo != null) - { - if (!qcs.getStatementInfo().equals(statementInfo)) - { - fail("statementInfos don't match."); - } - } - else if (qcs.getStatementInfo() != null) - { - fail("statementInfo found when none expected."); - } - } - - public static void main( - String[] args) - { - runTest(new QCStatementUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/RFC4519Test.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/RFC4519Test.java deleted file mode 100644 index 8d7e175..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/RFC4519Test.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x500.X500NameStyle; -import org.bouncycastle.asn1.x500.style.RFC4519Style; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -public class RFC4519Test - extends SimpleTest -{ - static String[] attributeTypes = - { - "businessCategory", - "c", - "cn", - "dc", - "description", - "destinationIndicator", - "distinguishedName", - "dnQualifier", - "enhancedSearchGuide", - "facsimileTelephoneNumber", - "generationQualifier", - "givenName", - "houseIdentifier", - "initials", - "internationalISDNNumber", - "l", - "member", - "name", - "o", - "ou", - "owner", - "physicalDeliveryOfficeName", - "postalAddress", - "postalCode", - "postOfficeBox", - "preferredDeliveryMethod", - "registeredAddress", - "roleOccupant", - "searchGuide", - "seeAlso", - "serialNumber", - "sn", - "st", - "street", - "telephoneNumber", - "teletexTerminalIdentifier", - "telexNumber", - "title", - "uid", - "uniqueMember", - "userPassword", - "x121Address", - "x500UniqueIdentifier" - }; - - static ASN1ObjectIdentifier[] attributeTypeOIDs = - { - new ASN1ObjectIdentifier("2.5.4.15"), - new ASN1ObjectIdentifier("2.5.4.6"), - new ASN1ObjectIdentifier("2.5.4.3"), - new ASN1ObjectIdentifier("0.9.2342.19200300.100.1.25"), - new ASN1ObjectIdentifier("2.5.4.13"), - new ASN1ObjectIdentifier("2.5.4.27"), - new ASN1ObjectIdentifier("2.5.4.49"), - new ASN1ObjectIdentifier("2.5.4.46"), - new ASN1ObjectIdentifier("2.5.4.47"), - new ASN1ObjectIdentifier("2.5.4.23"), - new ASN1ObjectIdentifier("2.5.4.44"), - new ASN1ObjectIdentifier("2.5.4.42"), - new ASN1ObjectIdentifier("2.5.4.51"), - new ASN1ObjectIdentifier("2.5.4.43"), - new ASN1ObjectIdentifier("2.5.4.25"), - new ASN1ObjectIdentifier("2.5.4.7"), - new ASN1ObjectIdentifier("2.5.4.31"), - new ASN1ObjectIdentifier("2.5.4.41"), - new ASN1ObjectIdentifier("2.5.4.10"), - new ASN1ObjectIdentifier("2.5.4.11"), - new ASN1ObjectIdentifier("2.5.4.32"), - new ASN1ObjectIdentifier("2.5.4.19"), - new ASN1ObjectIdentifier("2.5.4.16"), - new ASN1ObjectIdentifier("2.5.4.17"), - new ASN1ObjectIdentifier("2.5.4.18"), - new ASN1ObjectIdentifier("2.5.4.28"), - new ASN1ObjectIdentifier("2.5.4.26"), - new ASN1ObjectIdentifier("2.5.4.33"), - new ASN1ObjectIdentifier("2.5.4.14"), - new ASN1ObjectIdentifier("2.5.4.34"), - new ASN1ObjectIdentifier("2.5.4.5"), - new ASN1ObjectIdentifier("2.5.4.4"), - new ASN1ObjectIdentifier("2.5.4.8"), - new ASN1ObjectIdentifier("2.5.4.9"), - new ASN1ObjectIdentifier("2.5.4.20"), - new ASN1ObjectIdentifier("2.5.4.22"), - new ASN1ObjectIdentifier("2.5.4.21"), - new ASN1ObjectIdentifier("2.5.4.12"), - new ASN1ObjectIdentifier("0.9.2342.19200300.100.1.1"), - new ASN1ObjectIdentifier("2.5.4.50"), - new ASN1ObjectIdentifier("2.5.4.35"), - new ASN1ObjectIdentifier("2.5.4.24"), - new ASN1ObjectIdentifier("2.5.4.45") - }; - - public String getName() - { - return "RFC4519Test"; - } - - public void performTest() - throws Exception - { - X500NameStyle style = RFC4519Style.INSTANCE; - - for (int i = 0; i != attributeTypes.length; i++) - { - if (!attributeTypeOIDs[i].equals(style.attrNameToOID(attributeTypes[i]))) - { - fail("mismatch for " + attributeTypes[i]); - } - } - - byte[] enc = Hex.decode("305e310b300906035504061302415531283026060355040a0c1f546865204c6567696f6e206f662074686520426f756e637920436173746c653125301006035504070c094d656c626f75726e653011060355040b0c0a4173636f742056616c65"); - - X500Name n = new X500Name(style, X500Name.getInstance(enc)); - - if (!n.toString().equals("l=Melbourne+ou=Ascot Vale,o=The Legion of the Bouncy Castle,c=AU")) - { - fail("Failed composite to string test got: " + n.toString()); - } - - n = new X500Name(style, "l=Melbourne+ou=Ascot Vale,o=The Legion of the Bouncy Castle,c=AU"); - - if (!Arrays.areEqual(n.getEncoded(), enc)) - { - fail("re-encoding test after parse failed"); - } - } - - - public static void main( - String[] args) - { - runTest(new RFC4519Test()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/ReasonFlagsTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/ReasonFlagsTest.java deleted file mode 100644 index ebfd126..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/ReasonFlagsTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.x509.ReasonFlags; -import org.bouncycastle.util.test.SimpleTest; - -public class ReasonFlagsTest - extends SimpleTest -{ - public String getName() - { - return "ReasonFlags"; - } - - public void performTest() - throws IOException - { - BitStringConstantTester.testFlagValueCorrect(0, ReasonFlags.unused); - BitStringConstantTester.testFlagValueCorrect(1, ReasonFlags.keyCompromise); - BitStringConstantTester.testFlagValueCorrect(2, ReasonFlags.cACompromise); - BitStringConstantTester.testFlagValueCorrect(3, ReasonFlags.affiliationChanged); - BitStringConstantTester.testFlagValueCorrect(4, ReasonFlags.superseded); - BitStringConstantTester.testFlagValueCorrect(5, ReasonFlags.cessationOfOperation); - BitStringConstantTester.testFlagValueCorrect(6, ReasonFlags.certificateHold); - BitStringConstantTester.testFlagValueCorrect(7, ReasonFlags.privilegeWithdrawn); - BitStringConstantTester.testFlagValueCorrect(8, ReasonFlags.aACompromise); - } - - public static void main( - String[] args) - { - runTest(new ReasonFlagsTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/RegressionTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/RegressionTest.java deleted file mode 100644 index e442729..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/RegressionTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class RegressionTest -{ - public static Test[] tests = { - new InputStreamTest(), - new EqualsAndHashCodeTest(), - new TagTest(), - new SetTest(), - new DERUTF8StringTest(), - new CertificateTest(), - new GenerationTest(), - new CMSTest(), - new OCSPTest(), - new OIDTest(), - new PKCS10Test(), - new PKCS12Test(), - new X509NameTest(), - new X500NameTest(), - new X509ExtensionsTest(), - new GeneralizedTimeTest(), - new BitStringTest(), - new MiscTest(), - new SMIMETest(), - new X9Test(), - new MonetaryValueUnitTest(), - new BiometricDataUnitTest(), - new Iso4217CurrencyCodeUnitTest(), - new SemanticsInformationUnitTest(), - new QCStatementUnitTest(), - new TypeOfBiometricDataUnitTest(), - new SignerLocationUnitTest(), - new CommitmentTypeQualifierUnitTest(), - new CommitmentTypeIndicationUnitTest(), - new EncryptedPrivateKeyInfoTest(), - new DataGroupHashUnitTest(), - new LDSSecurityObjectUnitTest(), - new CscaMasterListTest(), - new AttributeTableUnitTest(), - new ReasonFlagsTest(), - new NetscapeCertTypeTest(), - new PKIFailureInfoTest(), - new KeyUsageTest(), - new StringTest(), - new UTCTimeTest(), - new RequestedCertificateUnitTest(), - new OtherCertIDUnitTest(), - new OtherSigningCertificateUnitTest(), - new ContentHintsUnitTest(), - new CertHashUnitTest(), - new AdditionalInformationSyntaxUnitTest(), - new AdmissionSyntaxUnitTest(), - new AdmissionsUnitTest(), - new DeclarationOfMajorityUnitTest(), - new ProcurationSyntaxUnitTest(), - new ProfessionInfoUnitTest(), - new RestrictionUnitTest(), - new NamingAuthorityUnitTest(), - new MonetaryLimitUnitTest(), - new NameOrPseudonymUnitTest(), - new PersonalDataUnitTest(), - new DERApplicationSpecificTest(), - new IssuingDistributionPointUnitTest(), - new TargetInformationTest(), - new SubjectKeyIdentifierTest(), - new ESSCertIDv2UnitTest(), - new ParsingTest(), - new GeneralNameTest(), - new ObjectIdentifierTest(), - new RFC4519Test() - }; - - public static void main( - String[] args) - { - for (int i = 0; i != tests.length; i++) - { - TestResult result = tests[i].perform(); - - if (result.getException() != null) - { - result.getException().printStackTrace(); - } - - System.out.println(result); - } - } -} - diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/RequestedCertificateUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/RequestedCertificateUnitTest.java deleted file mode 100644 index b167e4e..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/RequestedCertificateUnitTest.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.isismtt.ocsp.RequestedCertificate; -import org.bouncycastle.asn1.x509.Certificate; -import org.bouncycastle.util.encoders.Base64; - -public class RequestedCertificateUnitTest - extends ASN1UnitTest -{ - byte[] certBytes = Base64.decode( - "MIIBWzCCAQYCARgwDQYJKoZIhvcNAQEEBQAwODELMAkGA1UEBhMCQVUxDDAKBgNV" - + "BAgTA1FMRDEbMBkGA1UEAxMSU1NMZWF5L3JzYSB0ZXN0IENBMB4XDTk1MDYxOTIz" - + "MzMxMloXDTk1MDcxNzIzMzMxMlowOjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA1FM" - + "RDEdMBsGA1UEAxMUU1NMZWF5L3JzYSB0ZXN0IGNlcnQwXDANBgkqhkiG9w0BAQEF" - + "AANLADBIAkEAqtt6qS5GTxVxGZYWa0/4u+IwHf7p2LNZbcPBp9/OfIcYAXBQn8hO" - + "/Re1uwLKXdCjIoaGs4DLdG88rkzfyK5dPQIDAQABMAwGCCqGSIb3DQIFBQADQQAE" - + "Wc7EcF8po2/ZO6kNCwK/ICH6DobgLekA5lSLr5EvuioZniZp5lFzAw4+YzPQ7XKJ" - + "zl9HYIMxATFyqSiD9jsx"); - - public String getName() - { - return "RequestedCertificate"; - } - - public void performTest() - throws Exception - { - int type = 1; - byte[] certOctets = new byte[20]; - Certificate cert = Certificate.getInstance(certBytes); - - RequestedCertificate requested = new RequestedCertificate(type, certOctets); - - checkConstruction(requested, type, certOctets, null); - - requested = new RequestedCertificate(cert); - - checkConstruction(requested, RequestedCertificate.certificate, null, cert); - - requested = RequestedCertificate.getInstance(null); - - if (requested != null) - { - fail("null getInstance() failed."); - } - - try - { - RequestedCertificate.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - RequestedCertificate requested, - int type, - byte[] certOctets, - Certificate cert) - throws IOException - { - checkValues(requested, type, certOctets, cert); - - requested = RequestedCertificate.getInstance(requested); - - checkValues(requested, type, certOctets, cert); - - ASN1InputStream aIn = new ASN1InputStream(requested.toASN1Object().getEncoded()); - - Object obj = aIn.readObject(); - - requested = RequestedCertificate.getInstance(obj); - - checkValues(requested, type, certOctets, cert); - } - - private void checkValues( - RequestedCertificate requested, - int type, - byte[] certOctets, - Certificate cert) - throws IOException - { - checkMandatoryField("certType", type, requested.getType()); - - if (requested.getType() == RequestedCertificate.certificate) - { - checkMandatoryField("certificate", cert.getEncoded(), requested.getCertificateBytes()); - } - else - { - checkMandatoryField("certificateOctets", certOctets, requested.getCertificateBytes()); - } - } - - public static void main( - String[] args) - { - runTest(new RequestedCertificateUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/RestrictionUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/RestrictionUnitTest.java deleted file mode 100644 index 3b11305..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/RestrictionUnitTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1String; -import org.bouncycastle.asn1.isismtt.x509.Restriction; -import org.bouncycastle.asn1.x500.DirectoryString; - -public class RestrictionUnitTest - extends ASN1UnitTest -{ - public String getName() - { - return "Restriction"; - } - - public void performTest() - throws Exception - { - DirectoryString res = new DirectoryString("test"); - Restriction restriction = new Restriction(res.getString()); - - checkConstruction(restriction, res); - - try - { - Restriction.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - Restriction restriction, - DirectoryString res) - throws IOException - { - checkValues(restriction, res); - - restriction = Restriction.getInstance(restriction); - - checkValues(restriction, res); - - ASN1InputStream aIn = new ASN1InputStream(restriction.toASN1Object().getEncoded()); - - ASN1String str = (ASN1String)aIn.readObject(); - - restriction = Restriction.getInstance(str); - - checkValues(restriction, res); - } - - private void checkValues( - Restriction restriction, - DirectoryString res) - { - checkMandatoryField("restriction", res, restriction.getRestriction()); - } - - public static void main( - String[] args) - { - runTest(new RestrictionUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/SMIMETest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/SMIMETest.java deleted file mode 100644 index 44d6b1c..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/SMIMETest.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DERGeneralizedTime; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.cms.RecipientKeyIdentifier; -import org.bouncycastle.asn1.smime.SMIMECapabilitiesAttribute; -import org.bouncycastle.asn1.smime.SMIMECapability; -import org.bouncycastle.asn1.smime.SMIMECapabilityVector; -import org.bouncycastle.asn1.smime.SMIMEEncryptionKeyPreferenceAttribute; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class SMIMETest - implements Test -{ - byte[] attrBytes = Base64.decode("MDQGCSqGSIb3DQEJDzEnMCUwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMAcGBSsOAwIH"); - byte[] prefBytes = Base64.decode("MCwGCyqGSIb3DQEJEAILMR2hGwQIAAAAAAAAAAAYDzIwMDcwMzE1MTczNzI5Wg=="); - - private boolean isSameAs( - byte[] a, - byte[] b) - { - if (a.length != b.length) - { - return false; - } - - for (int i = 0; i != a.length; i++) - { - if (a[i] != b[i]) - { - return false; - } - } - - return true; - } - - public TestResult perform() - { - SMIMECapabilityVector caps = new SMIMECapabilityVector(); - - caps.addCapability(SMIMECapability.dES_EDE3_CBC); - caps.addCapability(SMIMECapability.rC2_CBC, 128); - caps.addCapability(SMIMECapability.dES_CBC); - - SMIMECapabilitiesAttribute attr = new SMIMECapabilitiesAttribute(caps); - - SMIMEEncryptionKeyPreferenceAttribute pref = new SMIMEEncryptionKeyPreferenceAttribute( - new RecipientKeyIdentifier(new DEROctetString(new byte[8]), new DERGeneralizedTime("20070315173729Z"), null)); - - try - { - if (!isSameAs(attr.getEncoded(), attrBytes)) - { - return new SimpleTestResult(false, getName() + ": Failed attr data check"); - } - - ByteArrayInputStream bIn = new ByteArrayInputStream(attrBytes); - ASN1InputStream aIn = new ASN1InputStream(bIn); - - ASN1Primitive o = aIn.readObject(); - if (!attr.equals(o)) - { - return new SimpleTestResult(false, getName() + ": Failed equality test for attr"); - } - - if (!isSameAs(pref.getEncoded(), prefBytes)) - { - return new SimpleTestResult(false, getName() + ": Failed attr data check"); - } - - bIn = new ByteArrayInputStream(prefBytes); - aIn = new ASN1InputStream(bIn); - - o = aIn.readObject(); - if (!pref.equals(o)) - { - return new SimpleTestResult(false, getName() + ": Failed equality test for pref"); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": Failed - exception " + e.toString(), e); - } - } - - public String getName() - { - return "SMIME"; - } - - public static void main( - String[] args) - { - SMIMETest test = new SMIMETest(); - TestResult result = test.perform(); - - System.out.println(result); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/SemanticsInformationUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/SemanticsInformationUnitTest.java deleted file mode 100644 index 3fd26db..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/SemanticsInformationUnitTest.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.X509Name; -import org.bouncycastle.asn1.x509.qualified.SemanticsInformation; -import org.bouncycastle.util.test.SimpleTest; - -public class SemanticsInformationUnitTest - extends SimpleTest -{ - public String getName() - { - return "SemanticsInformation"; - } - - public void performTest() - throws Exception - { - ASN1ObjectIdentifier statementId = new ASN1ObjectIdentifier("1.1"); - SemanticsInformation mv = new SemanticsInformation(statementId); - - checkConstruction(mv, statementId, null); - - GeneralName[] names = new GeneralName[2]; - - names[0] = new GeneralName(GeneralName.rfc822Name, "test@test.org"); - names[1] = new GeneralName(new X509Name("cn=test")); - - mv = new SemanticsInformation(statementId, names); - - checkConstruction(mv, statementId, names); - - mv = new SemanticsInformation(names); - - checkConstruction(mv, null, names); - - mv = SemanticsInformation.getInstance(null); - - if (mv != null) - { - fail("null getInstance() failed."); - } - - try - { - SemanticsInformation.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - ASN1EncodableVector v = new ASN1EncodableVector(); - - SemanticsInformation.getInstance(new DERSequence(v)); - - fail("constructor failed to detect empty sequence."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - SemanticsInformation mv, - ASN1ObjectIdentifier semanticsIdentifier, - GeneralName[] names) - throws Exception - { - checkStatement(mv, semanticsIdentifier, names); - - mv = SemanticsInformation.getInstance(mv); - - checkStatement(mv, semanticsIdentifier, names); - - ASN1InputStream aIn = new ASN1InputStream(mv.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - mv = SemanticsInformation.getInstance(seq); - - checkStatement(mv, semanticsIdentifier, names); - } - - private void checkStatement( - SemanticsInformation si, - ASN1ObjectIdentifier id, - GeneralName[] names) - { - if (id != null) - { - if (!si.getSemanticsIdentifier().equals(id)) - { - fail("ids don't match."); - } - } - else if (si.getSemanticsIdentifier() != null) - { - fail("statementId found when none expected."); - } - - if (names != null) - { - GeneralName[] siNames = si.getNameRegistrationAuthorities(); - - for (int i = 0; i != siNames.length; i++) - { - if (!names[i].equals(siNames[i])) - { - fail("name registration authorities don't match."); - } - } - } - else if (si.getNameRegistrationAuthorities() != null) - { - fail("name registration authorities found when none expected."); - } - } - - public static void main( - String[] args) - { - runTest(new SemanticsInformationUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/SetTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/SetTest.java deleted file mode 100644 index 9e568a9..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/SetTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.ASN1Boolean; -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1Set; -import org.bouncycastle.asn1.ASN1TaggedObject; -import org.bouncycastle.asn1.BERSet; -import org.bouncycastle.asn1.DERBitString; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERSet; -import org.bouncycastle.asn1.DERTaggedObject; -import org.bouncycastle.util.test.SimpleTest; - -/** - * Set sorting test example - */ -public class SetTest - extends SimpleTest -{ - - public String getName() - { - return "Set"; - } - - private void checkedSortedSet(int attempt, ASN1Set s) - { - if (s.getObjectAt(0) instanceof ASN1Boolean - && s.getObjectAt(1) instanceof ASN1Integer - && s.getObjectAt(2) instanceof DERBitString - && s.getObjectAt(3) instanceof DEROctetString) - { - return; - } - - fail("sorting failed on attempt: " + attempt); - } - - public void performTest() - { - ASN1EncodableVector v = new ASN1EncodableVector(); - byte[] data = new byte[10]; - - v.add(new DEROctetString(data)); - v.add(new DERBitString(data)); - v.add(new ASN1Integer(100)); - v.add(ASN1Boolean.getInstance(true)); - - checkedSortedSet(0, new DERSet(v)); - - v = new ASN1EncodableVector(); - v.add(new ASN1Integer(100)); - v.add(ASN1Boolean.getInstance(true)); - v.add(new DEROctetString(data)); - v.add(new DERBitString(data)); - - checkedSortedSet(1, new DERSet(v)); - - v = new ASN1EncodableVector(); - v.add(ASN1Boolean.getInstance(true)); - v.add(new DEROctetString(data)); - v.add(new DERBitString(data)); - v.add(new ASN1Integer(100)); - - - checkedSortedSet(2, new DERSet(v)); - - v = new ASN1EncodableVector(); - v.add(new DERBitString(data)); - v.add(new DEROctetString(data)); - v.add(new ASN1Integer(100)); - v.add(ASN1Boolean.getInstance(true)); - - checkedSortedSet(3, new DERSet(v)); - - v = new ASN1EncodableVector(); - v.add(new DEROctetString(data)); - v.add(new DERBitString(data)); - v.add(new ASN1Integer(100)); - v.add(ASN1Boolean.getInstance(true)); - - ASN1Set s = new BERSet(v); - - if (!(s.getObjectAt(0) instanceof DEROctetString)) - { - fail("BER set sort order changed."); - } - - // create an implicitly tagged "set" without sorting - ASN1TaggedObject tag = new DERTaggedObject(false, 1, new DERSequence(v)); - s = ASN1Set.getInstance(tag, false); - - if (s.getObjectAt(0) instanceof ASN1Boolean) - { - fail("sorted when shouldn't be."); - } - - // equality test - v = new ASN1EncodableVector(); - - v.add(ASN1Boolean.getInstance(true)); - v.add(ASN1Boolean.getInstance(true)); - v.add(ASN1Boolean.getInstance(true)); - - s = new DERSet(v); - } - - public static void main( - String[] args) - { - runTest(new SetTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/SignerLocationUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/SignerLocationUnitTest.java deleted file mode 100644 index 8d2c2c0..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/SignerLocationUnitTest.java +++ /dev/null @@ -1,197 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERTaggedObject; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.asn1.esf.SignerLocation; -import org.bouncycastle.util.test.SimpleTest; - -public class SignerLocationUnitTest - extends SimpleTest -{ - public String getName() - { - return "SignerLocation"; - } - - public void performTest() - throws Exception - { - DERUTF8String countryName = new DERUTF8String("Australia"); - - SignerLocation sl = new SignerLocation(countryName, null, null); - - checkConstruction(sl, countryName, null, null); - - DERUTF8String localityName = new DERUTF8String("Melbourne"); - - sl = new SignerLocation(null, localityName, null); - - checkConstruction(sl, null, localityName, null); - - sl = new SignerLocation(countryName, localityName, null); - - checkConstruction(sl, countryName, localityName, null); - - ASN1EncodableVector v = new ASN1EncodableVector(); - - v.add(new DERUTF8String("line 1")); - v.add(new DERUTF8String("line 2")); - - ASN1Sequence postalAddress = new DERSequence(v); - - sl = new SignerLocation(null, null, postalAddress); - - checkConstruction(sl, null, null, postalAddress); - - sl = new SignerLocation(countryName, null, postalAddress); - - checkConstruction(sl, countryName, null, postalAddress); - - sl = new SignerLocation(countryName, localityName, postalAddress); - - checkConstruction(sl, countryName, localityName, postalAddress); - - sl = SignerLocation.getInstance(null); - - if (sl != null) - { - fail("null getInstance() failed."); - } - - try - { - SignerLocation.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - - // - // out of range postal address - // - v = new ASN1EncodableVector(); - - v.add(new DERUTF8String("line 1")); - v.add(new DERUTF8String("line 2")); - v.add(new DERUTF8String("line 3")); - v.add(new DERUTF8String("line 4")); - v.add(new DERUTF8String("line 5")); - v.add(new DERUTF8String("line 6")); - v.add(new DERUTF8String("line 7")); - - postalAddress = new DERSequence(v); - - try - { - new SignerLocation(null, null, postalAddress); - - fail("constructor failed to detect bad postalAddress."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - SignerLocation.getInstance(new DERSequence(new DERTaggedObject(2, postalAddress))); - - fail("sequence constructor failed to detect bad postalAddress."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - SignerLocation.getInstance(new DERSequence(new DERTaggedObject(5, postalAddress))); - - fail("sequence constructor failed to detect bad tag."); - } - catch (IllegalArgumentException e) - { - // expected - } - } - - private void checkConstruction( - SignerLocation sl, - DERUTF8String countryName, - DERUTF8String localityName, - ASN1Sequence postalAddress) - throws IOException - { - checkValues(sl, countryName, localityName, postalAddress); - - sl = SignerLocation.getInstance(sl); - - checkValues(sl, countryName, localityName, postalAddress); - - ASN1InputStream aIn = new ASN1InputStream(sl.toASN1Object().getEncoded()); - - ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); - - sl = SignerLocation.getInstance(seq); - - checkValues(sl, countryName, localityName, postalAddress); - } - - private void checkValues( - SignerLocation sl, - DERUTF8String countryName, - DERUTF8String localityName, - ASN1Sequence postalAddress) - { - if (countryName != null) - { - if (!countryName.equals(sl.getCountryName())) - { - fail("countryNames don't match."); - } - } - else if (sl.getCountryName() != null) - { - fail("countryName found when none expected."); - } - - if (localityName != null) - { - if (!localityName.equals(sl.getLocalityName())) - { - fail("localityNames don't match."); - } - } - else if (sl.getLocalityName() != null) - { - fail("localityName found when none expected."); - } - - if (postalAddress != null) - { - if (!postalAddress.equals(sl.getPostalAddress())) - { - fail("postalAddresses don't match."); - } - } - else if (sl.getPostalAddress() != null) - { - fail("postalAddress found when none expected."); - } - } - - public static void main( - String[] args) - { - runTest(new SignerLocationUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/StringTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/StringTest.java deleted file mode 100644 index 426c06a..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/StringTest.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ASN1String; -import org.bouncycastle.asn1.DERBMPString; -import org.bouncycastle.asn1.DERBitString; -import org.bouncycastle.asn1.DERGeneralString; -import org.bouncycastle.asn1.DERIA5String; -import org.bouncycastle.asn1.DERNumericString; -import org.bouncycastle.asn1.DERPrintableString; -import org.bouncycastle.asn1.DERT61String; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.asn1.DERUniversalString; -import org.bouncycastle.asn1.DERVisibleString; -import org.bouncycastle.util.Strings; -import org.bouncycastle.util.test.SimpleTest; - -/** - * X.690 test example - */ -public class StringTest - extends SimpleTest -{ - public String getName() - { - return "String"; - } - - public void performTest() - throws IOException - { - DERBitString bs = new DERBitString( - new byte[] { (byte)0x01,(byte)0x23,(byte)0x45,(byte)0x67,(byte)0x89,(byte)0xab,(byte)0xcd,(byte)0xef }); - - if (!bs.getString().equals("#0309000123456789ABCDEF")) - { - fail("DERBitString.getString() result incorrect"); - } - - if (!bs.toString().equals("#0309000123456789ABCDEF")) - { - fail("DERBitString.toString() result incorrect"); - } - - bs = new DERBitString( - new byte[] { (byte)0xfe,(byte)0xdc,(byte)0xba,(byte)0x98,(byte)0x76,(byte)0x54,(byte)0x32,(byte)0x10 }); - - if (!bs.getString().equals("#030900FEDCBA9876543210")) - { - fail("DERBitString.getString() result incorrect"); - } - - if (!bs.toString().equals("#030900FEDCBA9876543210")) - { - fail("DERBitString.toString() result incorrect"); - } - - DERUniversalString us = new DERUniversalString( - new byte[] { (byte)0x01,(byte)0x23,(byte)0x45,(byte)0x67,(byte)0x89,(byte)0xab,(byte)0xcd,(byte)0xef }); - - if (!us.getString().equals("#1C080123456789ABCDEF")) - { - fail("DERUniversalString.getString() result incorrect"); - } - - if (!us.toString().equals("#1C080123456789ABCDEF")) - { - fail("DERUniversalString.toString() result incorrect"); - } - - us = new DERUniversalString( - new byte[] { (byte)0xfe,(byte)0xdc,(byte)0xba,(byte)0x98,(byte)0x76,(byte)0x54,(byte)0x32,(byte)0x10 }); - - if (!us.getString().equals("#1C08FEDCBA9876543210")) - { - fail("DERUniversalString.getString() result incorrect"); - } - - if (!us.toString().equals("#1C08FEDCBA9876543210")) - { - fail("DERUniversalString.toString() result incorrect"); - } - - byte[] t61Bytes = new byte[] { -1, -2, -3, -4, -5, -6, -7, -8 }; - String t61String = new String(t61Bytes, "iso-8859-1"); - DERT61String t61 = new DERT61String(Strings.fromByteArray(t61Bytes)); - - if (!t61.getString().equals(t61String)) - { - fail("DERT61String.getString() result incorrect"); - } - - if (!t61.toString().equals(t61String)) - { - fail("DERT61String.toString() result incorrect"); - } - - char[] shortChars = new char[] { 'a', 'b', 'c', 'd', 'e'}; - char[] longChars = new char[1000]; - - for (int i = 0; i != longChars.length; i++) - { - longChars[i] = 'X'; - } - - checkString(new DERBMPString(new String(shortChars)), new DERBMPString(new String(longChars))); - checkString(new DERUTF8String(new String(shortChars)), new DERUTF8String(new String(longChars))); - checkString(new DERIA5String(new String(shortChars)), new DERIA5String(new String(longChars))); - checkString(new DERPrintableString(new String(shortChars)), new DERPrintableString(new String(longChars))); - checkString(new DERVisibleString(new String(shortChars)), new DERVisibleString(new String(longChars))); - checkString(new DERGeneralString(new String(shortChars)), new DERGeneralString(new String(longChars))); - checkString(new DERT61String(new String(shortChars)), new DERT61String(new String(longChars))); - - shortChars = new char[] { '1', '2', '3', '4', '5'}; - longChars = new char[1000]; - - for (int i = 0; i != longChars.length; i++) - { - longChars[i] = '1'; - } - - checkString(new DERNumericString(new String(shortChars)), new DERNumericString(new String(longChars))); - - byte[] shortBytes = new byte[] { (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e'}; - byte[] longBytes = new byte[1000]; - - for (int i = 0; i != longChars.length; i++) - { - longBytes[i] = (byte)'X'; - } - - checkString(new DERUniversalString(shortBytes), new DERUniversalString(longBytes)); - - } - - private void checkString(ASN1String shortString, ASN1String longString) - throws IOException - { - ASN1String short2 = (ASN1String)ASN1Primitive.fromByteArray(((ASN1Primitive)shortString).getEncoded()); - - if (!shortString.toString().equals(short2.toString())) - { - fail(short2.getClass().getName() + " shortBytes result incorrect"); - } - - ASN1String long2 = (ASN1String)ASN1Primitive.fromByteArray(((ASN1Primitive)longString).getEncoded()); - - if (!longString.toString().equals(long2.toString())) - { - fail(long2.getClass().getName() + " longBytes result incorrect"); - } - } - - public static void main( - String[] args) - { - runTest(new StringTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/SubjectKeyIdentifierTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/SubjectKeyIdentifierTest.java deleted file mode 100644 index 9887a31..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/SubjectKeyIdentifierTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -public class SubjectKeyIdentifierTest - extends SimpleTest -{ - private static byte[] pubKeyInfo = Base64.decode( - "MFgwCwYJKoZIhvcNAQEBA0kAMEYCQQC6wMMmHYMZszT/7bNFMn+gaZoiWJLVP8ODRuu1C2jeAe" + - "QpxM+5Oe7PaN2GNy3nBE4EOYkB5pMJWA0y9n04FX8NAgED"); - - private static byte[] shaID = Hex.decode("d8128a06d6c2feb0865994a2936e7b75b836a021"); - private static byte[] shaTruncID = Hex.decode("436e7b75b836a021"); - - public String getName() - { - return "SubjectKeyIdentifier"; - } - - public void performTest() - throws IOException - { -// SubjectPublicKeyInfo pubInfo = SubjectPublicKeyInfo.getInstance(ASN1Primitive.fromByteArray(pubKeyInfo)); -// SubjectKeyIdentifier ski = SubjectKeyIdentifier.createSHA1KeyIdentifier(pubInfo); -// -// if (!Arrays.areEqual(shaID, ski.getKeyIdentifier())) -// { -// fail("SHA-1 ID does not match"); -// } -// -// ski = SubjectKeyIdentifier.createTruncatedSHA1KeyIdentifier(pubInfo); -// -// if (!Arrays.areEqual(shaTruncID, ski.getKeyIdentifier())) -// { -// fail("truncated SHA-1 ID does not match"); -// } - } - - public static void main( - String[] args) - { - runTest(new SubjectKeyIdentifierTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/TagTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/TagTest.java deleted file mode 100644 index 90489a7..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/TagTest.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; -import java.security.SecureRandom; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ASN1TaggedObject; -import org.bouncycastle.asn1.DERApplicationSpecific; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - - -/** - * X.690 test example - */ -public class TagTest - extends SimpleTest -{ - byte[] longTagged = Base64.decode( - "ZSRzIp8gEEZFRENCQTk4NzY1NDMyMTCfIQwyMDA2MDQwMTEyMzSUCCAFERVz" - + "A4kCAHEXGBkalAggBRcYGRqUCCAFZS6QAkRFkQlURUNITklLRVKSBQECAwQF" - + "kxAREhMUFRYXGBkalAggBREVcwOJAgBxFxgZGpQIIAUXGBkalAggBWUukAJE" - + "RZEJVEVDSE5JS0VSkgUBAgMEBZMQERITFBUWFxgZGpQIIAURFXMDiQIAcRcY" - + "GRqUCCAFFxgZGpQIIAVlLpACREWRCVRFQ0hOSUtFUpIFAQIDBAWTEBESExQV" - + "FhcYGRqUCCAFERVzA4kCAHEXGBkalAggBRcYGRqUCCAFFxgZGpQIIAUXGBka" - + "lAg="); - - byte[] longAppSpecificTag = Hex.decode("5F610101"); - - public String getName() - { - return "Tag"; - } - - public void performTest() - throws IOException - { - ASN1InputStream aIn = new ASN1InputStream(longTagged); - - DERApplicationSpecific app = (DERApplicationSpecific)aIn.readObject(); - - aIn = new ASN1InputStream(app.getContents()); - - app = (DERApplicationSpecific)aIn.readObject(); - - aIn = new ASN1InputStream(app.getContents()); - - ASN1TaggedObject tagged = (ASN1TaggedObject)aIn.readObject(); - - if (tagged.getTagNo() != 32) - { - fail("unexpected tag value found - not 32"); - } - - tagged = (ASN1TaggedObject)ASN1Primitive.fromByteArray(tagged.getEncoded()); - - if (tagged.getTagNo() != 32) - { - fail("unexpected tag value found on recode - not 32"); - } - - tagged = (ASN1TaggedObject)aIn.readObject(); - - if (tagged.getTagNo() != 33) - { - fail("unexpected tag value found - not 33"); - } - - tagged = (ASN1TaggedObject)ASN1Primitive.fromByteArray(tagged.getEncoded()); - - if (tagged.getTagNo() != 33) - { - fail("unexpected tag value found on recode - not 33"); - } - - aIn = new ASN1InputStream(longAppSpecificTag); - - app = (DERApplicationSpecific)aIn.readObject(); - - if (app.getApplicationTag() != 97) - { - fail("incorrect tag number read"); - } - - app = (DERApplicationSpecific)ASN1Primitive.fromByteArray(app.getEncoded()); - - if (app.getApplicationTag() != 97) - { - fail("incorrect tag number read on recode"); - } - - SecureRandom sr = new SecureRandom(); - for (int i = 0; i < 100; ++i) - { - int testTag = sr.nextInt() >>> (1 + (sr.nextInt() >>> 1) % 26); - app = new DERApplicationSpecific(testTag, new byte[]{ 1 }); - app = (DERApplicationSpecific)ASN1Primitive.fromByteArray(app.getEncoded()); - - if (app.getApplicationTag() != testTag) - { - fail("incorrect tag number read on recode (random test value: " + testTag + ")"); - } - } - } - - public static void main( - String[] args) - { - runTest(new TagTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/TargetInformationTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/TargetInformationTest.java deleted file mode 100644 index 34dc70f..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/TargetInformationTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.x509.GeneralName; -import org.bouncycastle.asn1.x509.Target; -import org.bouncycastle.asn1.x509.TargetInformation; -import org.bouncycastle.asn1.x509.Targets; -import org.bouncycastle.util.test.SimpleTest; - -public class TargetInformationTest - extends SimpleTest -{ - - public String getName() - { - return "TargetInformation"; - } - - public void performTest() throws Exception - { - Target[] targets = new Target[2]; - Target targetName = new Target(Target.targetName, new GeneralName(GeneralName.dNSName, "www.test.com")); - Target targetGroup = new Target(Target.targetGroup, new GeneralName(GeneralName.directoryName, "o=Test, ou=Test")); - targets[0] = targetName; - targets[1] = targetGroup; - Targets targetss = new Targets(targets); - TargetInformation targetInformation1 = new TargetInformation(targetss); - // use an Target array - TargetInformation targetInformation2 = new TargetInformation(targets); - // targetInformation1 and targetInformation2 must have same - // encoding. - if (!targetInformation1.equals(targetInformation2)) - { - fail("targetInformation1 and targetInformation2 should have the same encoding."); - } - TargetInformation targetInformation3 = TargetInformation.getInstance(targetInformation1); - TargetInformation targetInformation4 = TargetInformation.getInstance(targetInformation2); - if (!targetInformation3.equals(targetInformation4)) - { - fail("targetInformation3 and targetInformation4 should have the same encoding."); - } - } - - public static void main(String[] args) - { - runTest(new TargetInformationTest()); - } -} - diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/TypeOfBiometricDataUnitTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/TypeOfBiometricDataUnitTest.java deleted file mode 100644 index add21ce..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/TypeOfBiometricDataUnitTest.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.x509.qualified.TypeOfBiometricData; -import org.bouncycastle.util.test.SimpleTest; - -public class TypeOfBiometricDataUnitTest - extends SimpleTest -{ - public String getName() - { - return "TypeOfBiometricData"; - } - - public void performTest() - throws Exception - { - // - // predefined - // - checkPredefinedType(TypeOfBiometricData.PICTURE); - - checkPredefinedType(TypeOfBiometricData.HANDWRITTEN_SIGNATURE); - - // - // non-predefined - // - ASN1ObjectIdentifier localType = new ASN1ObjectIdentifier("1.1"); - - TypeOfBiometricData type = new TypeOfBiometricData(localType); - - checkNonPredefined(type, localType); - - type = TypeOfBiometricData.getInstance(type); - - checkNonPredefined(type, localType); - - ASN1Primitive obj = type.toASN1Primitive(); - - type = TypeOfBiometricData.getInstance(obj); - - checkNonPredefined(type, localType); - - type = TypeOfBiometricData.getInstance(null); - - if (type != null) - { - fail("null getInstance() failed."); - } - - try - { - TypeOfBiometricData.getInstance(new Object()); - - fail("getInstance() failed to detect bad object."); - } - catch (IllegalArgumentException e) - { - // expected - } - - try - { - new TypeOfBiometricData(100); - - fail("constructor failed to detect bad predefined type."); - } - catch (IllegalArgumentException e) - { - // expected - } - - if (TypeOfBiometricData.PICTURE != 0) - { - fail("predefined picture should be 0"); - } - - if (TypeOfBiometricData.HANDWRITTEN_SIGNATURE != 1) - { - fail("predefined handwritten signature should be 1"); - } - } - - private void checkPredefinedType( - int predefinedType) - throws IOException - { - TypeOfBiometricData type = new TypeOfBiometricData(predefinedType); - - checkPredefined(type, predefinedType); - - type = TypeOfBiometricData.getInstance(type); - - checkPredefined(type, predefinedType); - - ASN1InputStream aIn = new ASN1InputStream(type.toASN1Object().getEncoded()); - - ASN1Primitive obj = aIn.readObject(); - - type = TypeOfBiometricData.getInstance(obj); - - checkPredefined(type, predefinedType); - } - - private void checkPredefined( - TypeOfBiometricData type, - int value) - { - if (!type.isPredefined()) - { - fail("predefined type expected but not found."); - } - - if (type.getPredefinedBiometricType() != value) - { - fail("predefined type does not match."); - } - } - - private void checkNonPredefined( - TypeOfBiometricData type, - ASN1ObjectIdentifier value) - { - if (type.isPredefined()) - { - fail("predefined type found when not expected."); - } - - if (!type.getBiometricDataOid().equals(value)) - { - fail("data oid does not match."); - } - } - - public static void main( - String[] args) - { - runTest(new TypeOfBiometricDataUnitTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/UTCTimeTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/UTCTimeTest.java deleted file mode 100644 index 8067e78..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/UTCTimeTest.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.bouncycastle.asn1.test; - -import org.bouncycastle.asn1.DERUTCTime; -import org.bouncycastle.util.test.SimpleTest; - -import java.text.SimpleDateFormat; -import java.util.SimpleTimeZone; - -/** - * X.690 test example - */ -public class UTCTimeTest - extends SimpleTest -{ - String[] input = - { - "020122122220Z", - "020122122220-1000", - "020122122220+1000", - "020122122220+00", - "0201221222Z", - "0201221222-1000", - "0201221222+1000", - "0201221222+00", - "550122122220Z", - "5501221222Z" - }; - - String[] output = { - "20020122122220GMT+00:00", - "20020122122220GMT-10:00", - "20020122122220GMT+10:00", - "20020122122220GMT+00:00", - "20020122122200GMT+00:00", - "20020122122200GMT-10:00", - "20020122122200GMT+10:00", - "20020122122200GMT+00:00", - "19550122122220GMT+00:00", - "19550122122200GMT+00:00" - }; - - String[] zOutput1 = { - "20020122122220Z", - "20020122222220Z", - "20020122022220Z", - "20020122122220Z", - "20020122122200Z", - "20020122222200Z", - "20020122022200Z", - "20020122122200Z", - "19550122122220Z", - "19550122122200Z" - }; - - String[] zOutput2 = { - "20020122122220Z", - "20020122222220Z", - "20020122022220Z", - "20020122122220Z", - "20020122122200Z", - "20020122222200Z", - "20020122022200Z", - "20020122122200Z", - "19550122122220Z", - "19550122122200Z" - }; - - public String getName() - { - return "UTCTime"; - } - - public void performTest() - throws Exception - { - SimpleDateFormat yyyyF = new SimpleDateFormat("yyyyMMddHHmmss'Z'"); - SimpleDateFormat yyF = new SimpleDateFormat("yyyyMMddHHmmss'Z'"); - - yyyyF.setTimeZone(new SimpleTimeZone(0,"Z")); - yyF.setTimeZone(new SimpleTimeZone(0,"Z")); - - for (int i = 0; i != input.length; i++) - { - DERUTCTime t = new DERUTCTime(input[i]); - - if (!t.getAdjustedTime().equals(output[i])) - { - fail("failed conversion test " + i); - } - - if (!yyyyF.format(t.getAdjustedDate()).equals(zOutput1[i])) - { - fail("failed date conversion test " + i); - } - - if (!yyF.format(t.getDate()).equals(zOutput2[i])) - { - fail("failed date shortened conversion test " + i); - } - } - } - - public static void main( - String[] args) - { - runTest(new UTCTimeTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/X500NameTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/X500NameTest.java deleted file mode 100644 index 2822f8c..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/X500NameTest.java +++ /dev/null @@ -1,777 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1GeneralizedTime; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.ASN1Set; -import org.bouncycastle.asn1.ASN1String; -import org.bouncycastle.asn1.ASN1TaggedObject; -import org.bouncycastle.asn1.DERIA5String; -import org.bouncycastle.asn1.DERPrintableString; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERSet; -import org.bouncycastle.asn1.DERTaggedObject; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.asn1.x500.RDN; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x500.X500NameBuilder; -import org.bouncycastle.asn1.x500.style.BCStrictStyle; -import org.bouncycastle.asn1.x500.style.BCStyle; -import org.bouncycastle.asn1.x500.style.IETFUtils; -import org.bouncycastle.asn1.x509.X509DefaultEntryConverter; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -public class X500NameTest - extends SimpleTest -{ - String[] subjects = - { - "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Webserver Team,CN=www2.connect4.com.au,E=webmaster@connect4.com.au", - "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Certificate Authority,CN=Connect 4 CA,E=webmaster@connect4.com.au", - "C=AU,ST=QLD,CN=SSLeay/rsa test cert", - "C=US,O=National Aeronautics and Space Administration,SERIALNUMBER=16+CN=Steve Schoch", - "E=cooke@issl.atl.hp.com,C=US,OU=Hewlett Packard Company (ISSL),CN=Paul A. Cooke", - "O=Sun Microsystems Inc,CN=store.sun.com", - "unstructuredAddress=192.168.1.33,unstructuredName=pixfirewall.ciscopix.com,CN=pixfirewall.ciscopix.com", - "CN=*.canal-plus.com,OU=Provided by TBS INTERNET http://www.tbs-certificats.com/,OU=\\ CANAL \\+,O=CANAL\\+DISTRIBUTION,L=issy les moulineaux,ST=Hauts de Seine,C=FR", - "O=Bouncy Castle,CN=www.bouncycastle.org\\ ", - "O=Bouncy Castle,CN=c:\\\\fred\\\\bob", - }; - - String[] hexSubjects = - { - "CN=\\20Test\\20X,O=\\20Test,C=GB", // input - "CN=\\ Test X,O=\\ Test,C=GB", // expected - "CN=\\20Test\\20X\\20,O=\\20Test,C=GB", // input - "CN=\\ Test X\\ ,O=\\ Test,C=GB" // expected - }; - - public String getName() - { - return "X500Name"; - } - - private static X500Name fromBytes( - byte[] bytes) - throws IOException - { - return X500Name.getInstance(new ASN1InputStream(new ByteArrayInputStream(bytes)).readObject()); - } - - private ASN1Encodable createEntryValue(ASN1ObjectIdentifier oid, String value) - { - X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE); - - builder.addRDN(oid, value); - - X500Name name = builder.build(); - - ASN1Sequence seq = (ASN1Sequence)name.toASN1Primitive(); - ASN1Set set = ASN1Set.getInstance(seq.getObjectAt(0).toASN1Primitive()); - seq = (ASN1Sequence)set.getObjectAt(0); - - return seq.getObjectAt(1); - } - - private ASN1Encodable createEntryValueFromString(ASN1ObjectIdentifier oid, String value) - { - X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE); - - builder.addRDN(oid, value); - - X500Name name = new X500Name(builder.build().toString()); - - ASN1Sequence seq = (ASN1Sequence)name.toASN1Primitive(); - ASN1Set set = ASN1Set.getInstance(seq.getObjectAt(0).toASN1Primitive()); - seq = (ASN1Sequence)set.getObjectAt(0); - - return seq.getObjectAt(1); - } - - private void testEncodingPrintableString(ASN1ObjectIdentifier oid, String value) - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof DERPrintableString)) - { - fail("encoding for " + oid + " not printable string"); - } - } - - private void testEncodingIA5String(ASN1ObjectIdentifier oid, String value) - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof DERIA5String)) - { - fail("encoding for " + oid + " not IA5String"); - } - } - - private void testEncodingUTF8String(ASN1ObjectIdentifier oid, String value) - throws IOException - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof DERUTF8String)) - { - fail("encoding for " + oid + " not IA5String"); - } - if (!value.equals((DERUTF8String.getInstance(converted.toASN1Primitive().getEncoded()).getString()))) - { - fail("decoding not correct"); - } - } - - private void testEncodingGeneralizedTime(ASN1ObjectIdentifier oid, String value) - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof ASN1GeneralizedTime)) - { - fail("encoding for " + oid + " not GeneralizedTime"); - } - converted = createEntryValueFromString(oid, value); - if (!(converted instanceof ASN1GeneralizedTime)) - { - fail("encoding for " + oid + " not GeneralizedTime"); - } - } - - public void performTest() - throws Exception - { - ietfUtilsTest(); - - testEncodingPrintableString(BCStyle.C, "AU"); - testEncodingPrintableString(BCStyle.SERIALNUMBER, "123456"); - testEncodingPrintableString(BCStyle.DN_QUALIFIER, "123456"); - testEncodingIA5String(BCStyle.EmailAddress, "test@test.com"); - testEncodingIA5String(BCStyle.DC, "test"); - // correct encoding - testEncodingGeneralizedTime(BCStyle.DATE_OF_BIRTH, "#180F32303032303132323132323232305A"); - // compatibility encoding - testEncodingGeneralizedTime(BCStyle.DATE_OF_BIRTH, "20020122122220Z"); - testEncodingUTF8String(BCStyle.CN, "Mörsky"); - - // - // composite - // - X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE); - - builder.addRDN(BCStyle.C, "AU"); - builder.addRDN(BCStyle.O, "The Legion of the Bouncy Castle"); - builder.addRDN(BCStyle.L, "Melbourne"); - builder.addRDN(BCStyle.ST, "Victoria"); - builder.addRDN(BCStyle.E, "feedback-crypto@bouncycastle.org"); - - X500Name name1 = builder.build(); - - if (!name1.equals(name1)) - { - fail("Failed same object test"); - } - -// if (!name1.equals(name1, true)) -// { -// fail("Failed same object test - in Order"); -// } - - builder = new X500NameBuilder(BCStyle.INSTANCE); - - builder.addRDN(BCStyle.C, "AU"); - builder.addRDN(BCStyle.O, "The Legion of the Bouncy Castle"); - builder.addRDN(BCStyle.L, "Melbourne"); - builder.addRDN(BCStyle.ST, "Victoria"); - builder.addRDN(BCStyle.E, "feedback-crypto@bouncycastle.org"); - - X500Name name2 = builder.build(); - - if (!name1.equals(name2)) - { - fail("Failed same name test"); - } - -// if (!name1.equals(name2, true)) -// { -// fail("Failed same name test - in Order"); -// } - - if (name1.hashCode() != name2.hashCode()) - { - fail("Failed same name test - in Order"); - } - - X500NameBuilder builder1 = new X500NameBuilder(BCStyle.INSTANCE); - - builder.addRDN(BCStyle.C, "AU"); - builder.addRDN(BCStyle.O, "The Legion of the Bouncy Castle"); - builder.addRDN(BCStyle.L, "Melbourne"); - builder.addRDN(BCStyle.ST, "Victoria"); - builder.addRDN(BCStyle.E, "feedback-crypto@bouncycastle.org"); - - X500NameBuilder builder2 = new X500NameBuilder(BCStyle.INSTANCE); - - builder.addRDN(BCStyle.E, "feedback-crypto@bouncycastle.org"); - builder.addRDN(BCStyle.C, "AU"); - builder.addRDN(BCStyle.O, "The Legion of the Bouncy Castle"); - builder.addRDN(BCStyle.L, "Melbourne"); - builder.addRDN(BCStyle.ST, "Victoria"); - - name1 = builder1.build(); - name2 = builder2.build(); - - if (!name1.equals(name2)) - { - fail("Failed reverse name test"); - } - - if (name1.hashCode() != name2.hashCode()) - { - fail("Failed reverse name test hashCode"); - } - -// if (name1.equals(name2, true)) -// { -// fail("Failed reverse name test - in Order"); -// } -// -// if (!name1.equals(name2, false)) -// { -// fail("Failed reverse name test - in Order false"); -// } - -// Vector oids = name1.getOIDs(); -// if (!compareVectors(oids, ord1)) -// { -// fail("oid comparison test"); -// } - /* - Vector val1 = new Vector(); - - val1.addElement("AU"); - val1.addElement("The Legion of the Bouncy Castle"); - val1.addElement("Melbourne"); - val1.addElement("Victoria"); - val1.addElement("feedback-crypto@bouncycastle.org"); - - name1 = new X500Name(ord1, val1); - - Vector values = name1.getValues(); - if (!compareVectors(values, val1)) - { - fail("value comparison test"); - } - - ord2 = new Vector(); - - ord2.addElement(X500Name.ST); - ord2.addElement(X500Name.ST); - ord2.addElement(X500Name.L); - ord2.addElement(X500Name.O); - ord2.addElement(X500Name.C); - - name1 = new X500Name(ord1, attrs); - name2 = new X500Name(ord2, attrs); - - if (name1.equals(name2)) - { - fail("Failed different name test"); - } - - ord2 = new Vector(); - - ord2.addElement(X500Name.ST); - ord2.addElement(X500Name.L); - ord2.addElement(X500Name.O); - ord2.addElement(X500Name.C); - - name1 = new X500Name(ord1, attrs); - name2 = new X500Name(ord2, attrs); - - if (name1.equals(name2)) - { - fail("Failed subset name test"); - } - - compositeTest(); - */ - ByteArrayOutputStream bOut; - ASN1OutputStream aOut; - ASN1InputStream aIn; - /* - // - // getValues test - // - Vector v1 = name1.getValues(X500Name.O); - - if (v1.size() != 1 || !v1.elementAt(0).equals("The Legion of the Bouncy Castle")) - { - fail("O test failed"); - } - - Vector v2 = name1.getValues(X500Name.L); - - if (v2.size() != 1 || !v2.elementAt(0).equals("Melbourne")) - { - fail("L test failed"); - } - */ - // - // general subjects test - // - for (int i = 0; i != subjects.length; i++) - { - X500Name name = new X500Name(subjects[i]); - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(name); - - aIn = new ASN1InputStream(new ByteArrayInputStream(bOut.toByteArray())); - - name = X500Name.getInstance(aIn.readObject()); - if (!name.toString().equals(subjects[i])) - { - fail("failed regeneration test " + i + " got: " + name.toString() + " expected " + subjects[i]); - } - } - - for (int i = 0; i < hexSubjects.length; i += 2) - { - X500Name name = new X500Name(hexSubjects[i]); - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(name); - - aIn = new ASN1InputStream(new ByteArrayInputStream(bOut.toByteArray())); - - name = X500Name.getInstance(aIn.readObject()); - if (!name.toString().equals(hexSubjects[i + 1])) - { - fail("failed hex regeneration test " + i + " got: " + name.toString() + " expected " + subjects[i]); - } - } - - // - // sort test - // - X500Name unsorted = new X500Name("SERIALNUMBER=BBB + CN=AA"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("CN=AA+SERIALNUMBER=BBB")) - { - fail("failed sort test 1"); - } - - unsorted = new X500Name("CN=AA + SERIALNUMBER=BBB"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("CN=AA+SERIALNUMBER=BBB")) - { - fail("failed sort test 2"); - } - - unsorted = new X500Name("SERIALNUMBER=B + CN=AA"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("SERIALNUMBER=B+CN=AA")) - { - fail("failed sort test 3"); - } - - unsorted = new X500Name("CN=AA + SERIALNUMBER=B"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("SERIALNUMBER=B+CN=AA")) - { - fail("failed sort test 4"); - } - - // - // equality tests - // - equalityTest(new X500Name("CN=The Legion"), new X500Name("CN=The Legion")); - equalityTest(new X500Name("CN= The Legion"), new X500Name("CN=The Legion")); - equalityTest(new X500Name("CN=The Legion "), new X500Name("CN=The Legion")); - equalityTest(new X500Name("CN= The Legion "), new X500Name("CN=The Legion")); - equalityTest(new X500Name("CN= the legion "), new X500Name("CN=The Legion")); - - equalityTest(new X500Name("CN= the legion+C=AU, O=Legion "), new X500Name("CN=The Legion+C=AU, O=Legion")); - // # test - - X500Name n1 = new X500Name("SERIALNUMBER=8,O=ABC,CN=ABC Class 3 CA,C=LT"); - X500Name n2 = new X500Name("2.5.4.5=8,O=ABC,CN=ABC Class 3 CA,C=LT"); - X500Name n3 = new X500Name("2.5.4.5=#130138,O=ABC,CN=ABC Class 3 CA,C=LT"); - - equalityTest(n1, n2); - equalityTest(n2, n3); - equalityTest(n3, n1); - - n1 = new X500Name("2.5.4.5=#130138,CN=SSC Class 3 CA,O=UAB Skaitmeninio sertifikavimo centras,C=LT"); - n2 = new X500Name("SERIALNUMBER=#130138,CN=SSC Class 3 CA,O=UAB Skaitmeninio sertifikavimo centras,C=LT"); - n3 = X500Name.getInstance(ASN1Primitive.fromByteArray(Hex.decode("3063310b3009060355040613024c54312f302d060355040a1326" - + "55414220536b6169746d656e696e696f20736572746966696b6176696d6f2063656e74726173311730150603550403130e53534320436c6173732033204341310a30080603550405130138"))); - - equalityTest(n1, n2); - equalityTest(n2, n3); - equalityTest(n3, n1); - - n1 = new X500Name("SERIALNUMBER=8,O=XX,CN=ABC Class 3 CA,C=LT"); - n2 = new X500Name("2.5.4.5=8,O=,CN=ABC Class 3 CA,C=LT"); - -// if (n1.equals(n2)) -// { -// fail("empty inequality check failed"); -// } - - n1 = new X500Name("SERIALNUMBER=8,O=,CN=ABC Class 3 CA,C=LT"); - n2 = new X500Name("2.5.4.5=8,O=,CN=ABC Class 3 CA,C=LT"); - - equalityTest(n1, n2); - - equalityTest(X500Name.getInstance(BCStrictStyle.INSTANCE, n1), X500Name.getInstance(BCStrictStyle.INSTANCE, n2)); - - n2 = new X500Name("C=LT,2.5.4.5=8,O=,CN=ABC Class 3 CA"); - - equalityTest(n1, n2); - - if (X500Name.getInstance(BCStrictStyle.INSTANCE, n1).equals(X500Name.getInstance(BCStrictStyle.INSTANCE, n2))) - { - fail("strict comparison failed"); - } - - // - // inequality to sequences - // - name1 = new X500Name("CN=The Legion"); - - if (name1.equals(new DERSequence())) - { - fail("inequality test with sequence"); - } - - if (name1.equals(new DERSequence(new DERSet()))) - { - fail("inequality test with sequence and set"); - } - - ASN1EncodableVector v = new ASN1EncodableVector(); - - v.add(new ASN1ObjectIdentifier("1.1")); - v.add(new ASN1ObjectIdentifier("1.1")); - if (name1.equals(new DERSequence(new DERSet(new DERSet(v))))) - { - fail("inequality test with sequence and bad set"); - } - - if (name1.equals(new DERSequence(new DERSet(new DERSet(v))))) - { - fail("inequality test with sequence and bad set"); - } - - if (name1.equals(new DERSequence(new DERSet(new DERSequence())))) - { - fail("inequality test with sequence and short sequence"); - } - - if (name1.equals(new DERSequence(new DERSet(new DERSequence())))) - { - fail("inequality test with sequence and short sequence"); - } - - v = new ASN1EncodableVector(); - - v.add(new ASN1ObjectIdentifier("1.1")); - v.add(new DERSequence()); - - if (name1.equals(new DERSequence(new DERSet(new DERSequence(v))))) - { - fail("inequality test with sequence and bad sequence"); - } - - if (name1.equals(null)) - { - fail("inequality test with null"); - } - -// if (name1.equals(null, true)) -// { -// fail("inequality test with null"); -// } - - // - // this is contrived but it checks sorting of sets with equal elements - // - unsorted = new X500Name("CN=AA + CN=AA + CN=AA"); - - ASN1ObjectIdentifier[] types = unsorted.getAttributeTypes(); - if (types.length != 3 || !types[0].equals(BCStyle.CN) || !types[1].equals(BCStyle.CN) || !types[2].equals(BCStyle.CN)) - { - fail("types not matched correctly"); - } - - // general type test - X500Name nested = new X500Name("CN=AA + CN=AA, C=AU"); - - types = nested.getAttributeTypes(); - if (types.length != 3 || !types[0].equals(BCStyle.CN) || !types[1].equals(BCStyle.CN) || !types[2].equals(BCStyle.C)) - { - fail("nested types not matched correctly"); - } - // - // tagging test - only works if CHOICE implemented - // - ASN1TaggedObject tag = new DERTaggedObject(false, 1, new X500Name("CN=AA")); - - if (!tag.isExplicit()) - { - fail("failed to explicitly tag CHOICE object"); - } - - X500Name name = X500Name.getInstance(tag, false); - - if (!name.equals(new X500Name("CN=AA"))) - { - fail("failed to recover tagged name"); - } - - DERUTF8String testString = new DERUTF8String("The Legion of the Bouncy Castle"); - byte[] encodedBytes = testString.getEncoded(); - byte[] hexEncodedBytes = Hex.encode(encodedBytes); - String hexEncodedString = "#" + new String(hexEncodedBytes); - - DERUTF8String converted = (DERUTF8String) - new X509DefaultEntryConverter().getConvertedValue( - BCStyle.L , hexEncodedString); - - if (!converted.equals(testString)) - { - fail("failed X509DefaultEntryConverter test"); - } - - // - // try escaped. - // - converted = (DERUTF8String) - new X509DefaultEntryConverter().getConvertedValue( - BCStyle.L , "\\" + hexEncodedString); - - if (!converted.equals(new DERUTF8String(hexEncodedString))) - { - fail("failed X509DefaultEntryConverter test got " + converted + " expected: " + hexEncodedString); - } - - // - // try a weird value - // - X500Name n = new X500Name("CN=\\#nothex#string"); - - if (!n.toString().equals("CN=\\#nothex#string")) - { - fail("# string not properly escaped."); - } - - RDN[] vls = n.getRDNs(BCStyle.CN); - if (vls.length != 1 || !getValue(vls[0]).equals("#nothex#string")) - { - fail("escaped # not reduced properly"); - } - - types = n.getAttributeTypes(); - if (types.length != 1 || !types[0].equals(BCStyle.CN)) - { - fail("type not matched correctly"); - } - - n = new X500Name("CN=\"a+b\""); - - vls = n.getRDNs(BCStyle.CN); - if (vls.length != 1 || !getValue(vls[0]).equals("a+b")) - { - fail("escaped + not reduced properly"); - } - - n = new X500Name("CN=a\\+b"); - - vls = n.getRDNs(BCStyle.CN); - if (vls.length != 1 || !getValue(vls[0]).equals("a+b")) - { - fail("escaped + not reduced properly"); - } - - if (!n.toString().equals("CN=a\\+b")) - { - fail("+ in string not properly escaped."); - } - - n = new X500Name("CN=a\\=b"); - - vls = n.getRDNs(BCStyle.CN); - if (vls.length != 1 || !getValue(vls[0]).equals("a=b")) - { - fail("escaped = not reduced properly"); - } - - if (!n.toString().equals("CN=a\\=b")) - { - fail("= in string not properly escaped."); - } - - n = new X500Name("TELEPHONENUMBER=\"+61999999999\""); - - vls = n.getRDNs(BCStyle.TELEPHONE_NUMBER); - if (vls.length != 1 || !getValue(vls[0]).equals("+61999999999")) - { - fail("telephonenumber escaped + not reduced properly"); - } - - n = new X500Name("TELEPHONENUMBER=\\+61999999999"); - - vls = n.getRDNs(BCStyle.TELEPHONE_NUMBER); - if (vls.length != 1 || !getValue(vls[0]).equals("+61999999999")) - { - fail("telephonenumber escaped + not reduced properly"); - } - - // test query methods - if (!"E".equals(BCStyle.INSTANCE.oidToDisplayName(BCStyle.EmailAddress))) - { - fail("display name for E incorrect"); - } - - String[] aliases = BCStyle.INSTANCE.oidToAttrNames(BCStyle.EmailAddress); - if (aliases.length != 2) - { - fail("no aliases found"); - } - if (!("e".equals(aliases[0]) || "e".equals(aliases[1]))) - { - fail("first alias name for E incorrect"); - } - if (!("emailaddress".equals(aliases[0]) || "emailaddress".equals(aliases[1]))) - { - fail("second alias name for E incorrect"); - } - - if (BCStyle.INSTANCE.oidToDisplayName(new ASN1ObjectIdentifier("1.2.1")) != null) - { - fail("unknown oid matched!"); - } - - if (BCStyle.INSTANCE.oidToAttrNames(new ASN1ObjectIdentifier("1.2.1")).length != 0) - { - fail("unknown oid matched aliases!"); - } - - if (!new X500Name("CN=\" CA1 - CP.04.03\", OU=Testing, OU=Dod, O=U.S. Government, C=US") - .equals(new X500Name("CN=\"ca1 - CP.04.03 \", OU=Testing, OU=Dod, O=U.S. Government, C=US"))) - { - fail("padded equality test failed"); - } - } - - private String getValue(RDN vl) - { - return ((ASN1String)vl.getFirst().getValue()).getString(); - } - - private void ietfUtilsTest() - throws Exception - { - IETFUtils.valueToString(new DERUTF8String(" ")); - } - - /* - private boolean compareVectors(Vector a, Vector b) // for compatibility with early JDKs - { - if (a.size() != b.size()) - { - return false; - } - - for (int i = 0; i != a.size(); i++) - { - if (!a.elementAt(i).equals(b.elementAt(i))) - { - return false; - } - } - - return true; - } - - private void compositeTest() - throws IOException - { - // - // composite test - // - byte[] enc = Hex.decode("305e310b300906035504061302415531283026060355040a0c1f546865204c6567696f6e206f662074686520426f756e637920436173746c653125301006035504070c094d656c626f75726e653011060355040b0c0a4173636f742056616c65"); - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(enc)); - - X500Name n = X500Name.getInstance(aIn.readObject()); - - if (!n.toString().equals("C=AU,O=The Legion of the Bouncy Castle,L=Melbourne+OU=Ascot Vale")) - { - fail("Failed composite to string test got: " + n.toString()); - } - - if (!n.toString(true, X500Name.DefaultSymbols).equals("L=Melbourne+OU=Ascot Vale,O=The Legion of the Bouncy Castle,C=AU")) - { - fail("Failed composite to string test got: " + n.toString(true, X500Name.DefaultSymbols)); - } - - n = new X500Name(true, "L=Melbourne+OU=Ascot Vale,O=The Legion of the Bouncy Castle,C=AU"); - if (!n.toString().equals("C=AU,O=The Legion of the Bouncy Castle,L=Melbourne+OU=Ascot Vale")) - { - fail("Failed composite to string reversal test got: " + n.toString()); - } - - n = new X500Name("C=AU, O=The Legion of the Bouncy Castle, L=Melbourne + OU=Ascot Vale"); - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(n); - - byte[] enc2 = bOut.toByteArray(); - - if (!Arrays.areEqual(enc, enc2)) - { - fail("Failed composite string to encoding test"); - } - - // - // dud name test - handle empty DN without barfing. - // - n = new X500Name("C=CH,O=,OU=dummy,CN=mail@dummy.com"); - - n = X500Name.getInstance(ASN1Object.fromByteArray(n.getEncoded())); - } - */ - private void equalityTest(X500Name name1, X500Name name2) - { - if (!name1.equals(name2)) - { - fail("equality test failed for " + name1 + " : " + name2); - } - - if (name1.hashCode() != name2.hashCode()) - { - fail("hashCodeTest test failed for " + name1 + " : " + name2); - } - } - - - public static void main( - String[] args) - { - runTest(new X500NameTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/X509ExtensionsTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/X509ExtensionsTest.java deleted file mode 100644 index 008d4d8..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/X509ExtensionsTest.java +++ /dev/null @@ -1,105 +0,0 @@ -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()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/X509NameTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/X509NameTest.java deleted file mode 100644 index f1ae757..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/X509NameTest.java +++ /dev/null @@ -1,693 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Hashtable; -import java.util.Vector; - -import org.bouncycastle.asn1.ASN1Encodable; -import org.bouncycastle.asn1.ASN1EncodableVector; -import org.bouncycastle.asn1.ASN1GeneralizedTime; -import org.bouncycastle.asn1.ASN1InputStream; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.ASN1OutputStream; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.ASN1Sequence; -import org.bouncycastle.asn1.ASN1Set; -import org.bouncycastle.asn1.DERIA5String; -import org.bouncycastle.asn1.DERPrintableString; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERSet; -import org.bouncycastle.asn1.DERUTF8String; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x500.X500NameBuilder; -import org.bouncycastle.asn1.x500.style.BCStyle; -import org.bouncycastle.asn1.x509.X509DefaultEntryConverter; -import org.bouncycastle.asn1.x509.X509Name; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -public class X509NameTest - extends SimpleTest -{ - String[] subjects = - { - "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Webserver Team,CN=www2.connect4.com.au,E=webmaster@connect4.com.au", - "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Certificate Authority,CN=Connect 4 CA,E=webmaster@connect4.com.au", - "C=AU,ST=QLD,CN=SSLeay/rsa test cert", - "C=US,O=National Aeronautics and Space Administration,SERIALNUMBER=16+CN=Steve Schoch", - "E=cooke@issl.atl.hp.com,C=US,OU=Hewlett Packard Company (ISSL),CN=Paul A. Cooke", - "O=Sun Microsystems Inc,CN=store.sun.com", - "unstructuredAddress=192.168.1.33,unstructuredName=pixfirewall.ciscopix.com,CN=pixfirewall.ciscopix.com", - "CN=*.canal-plus.com,OU=Provided by TBS INTERNET http://www.tbs-certificats.com/,OU=\\ CANAL \\+,O=CANAL\\+DISTRIBUTION,L=issy les moulineaux,ST=Hauts de Seine,C=FR", - "O=Bouncy Castle,CN=www.bouncycastle.org\\ ", - "O=Bouncy Castle,CN=c:\\\\fred\\\\bob" - }; - - public String getName() - { - return "X509Name"; - } - - private static X509Name fromBytes( - byte[] bytes) - throws IOException - { - return X509Name.getInstance(new ASN1InputStream(new ByteArrayInputStream(bytes)).readObject()); - } - - private ASN1Encodable createEntryValue(ASN1ObjectIdentifier oid, String value) - { - Hashtable attrs = new Hashtable(); - - attrs.put(oid, value); - - Vector order = new Vector(); - - order.addElement(oid); - - X509Name name = new X509Name(order, attrs); - - ASN1Sequence seq = (ASN1Sequence)name.toASN1Primitive(); - ASN1Set set = (ASN1Set)seq.getObjectAt(0); - seq = (ASN1Sequence)set.getObjectAt(0); - - return seq.getObjectAt(1); - } - - private ASN1Encodable createEntryValueFromString(ASN1ObjectIdentifier oid, String value) - { - Hashtable attrs = new Hashtable(); - - attrs.put(oid, value); - - Vector order = new Vector(); - - order.addElement(oid); - - X509Name name = new X509Name(new X509Name(order, attrs).toString()); - - ASN1Sequence seq = (ASN1Sequence)name.toASN1Primitive(); - ASN1Set set = (ASN1Set)seq.getObjectAt(0); - seq = (ASN1Sequence)set.getObjectAt(0); - - return seq.getObjectAt(1); - } - - private void testEncodingPrintableString(ASN1ObjectIdentifier oid, String value) - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof DERPrintableString)) - { - fail("encoding for " + oid + " not printable string"); - } - } - - private void testEncodingIA5String(ASN1ObjectIdentifier oid, String value) - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof DERIA5String)) - { - fail("encoding for " + oid + " not IA5String"); - } - } - - - private void testEncodingUTF8String(ASN1ObjectIdentifier oid, String value) - throws IOException - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof DERUTF8String)) - { - fail("encoding for " + oid + " not IA5String"); - } - if (!value.equals((DERUTF8String.getInstance(converted.toASN1Primitive().getEncoded()).getString()))) - { - fail("decoding not correct"); - } - } - - private void testEncodingGeneralizedTime(ASN1ObjectIdentifier oid, String value) - { - ASN1Encodable converted = createEntryValue(oid, value); - if (!(converted instanceof ASN1GeneralizedTime)) - { - fail("encoding for " + oid + " not GeneralizedTime"); - } - converted = createEntryValueFromString(oid, value); - if (!(converted instanceof ASN1GeneralizedTime)) - { - fail("encoding for " + oid + " not GeneralizedTime"); - } - } - - public void performTest() - throws Exception - { - testEncodingPrintableString(X509Name.C, "AU"); - testEncodingPrintableString(X509Name.SERIALNUMBER, "123456"); - testEncodingPrintableString(X509Name.DN_QUALIFIER, "123456"); - testEncodingIA5String(X509Name.EmailAddress, "test@test.com"); - testEncodingIA5String(X509Name.DC, "test"); - // correct encoding - testEncodingGeneralizedTime(X509Name.DATE_OF_BIRTH, "#180F32303032303132323132323232305A"); - // compatibility encoding - testEncodingGeneralizedTime(X509Name.DATE_OF_BIRTH, "20020122122220Z"); - testEncodingUTF8String(X509Name.CN, "Mörsky"); - // - // composite - // - Hashtable attrs = new Hashtable(); - - attrs.put(X509Name.C, "AU"); - attrs.put(X509Name.O, "The Legion of the Bouncy Castle"); - attrs.put(X509Name.L, "Melbourne"); - attrs.put(X509Name.ST, "Victoria"); - attrs.put(X509Name.E, "feedback-crypto@bouncycastle.org"); - - Vector order = new Vector(); - - order.addElement(X509Name.C); - order.addElement(X509Name.O); - order.addElement(X509Name.L); - order.addElement(X509Name.ST); - order.addElement(X509Name.E); - - X509Name name1 = new X509Name(order, attrs); - - if (!name1.equals(name1)) - { - fail("Failed same object test"); - } - - if (!name1.equals(name1, true)) - { - fail("Failed same object test - in Order"); - } - - X509Name name2 = new X509Name(order, attrs); - - if (!name1.equals(name2)) - { - fail("Failed same name test"); - } - - if (!name1.equals(name2, true)) - { - fail("Failed same name test - in Order"); - } - - if (name1.hashCode() != name2.hashCode()) - { - fail("Failed same name test - in Order"); - } - - Vector ord1 = new Vector(); - - ord1.addElement(X509Name.C); - ord1.addElement(X509Name.O); - ord1.addElement(X509Name.L); - ord1.addElement(X509Name.ST); - ord1.addElement(X509Name.E); - - Vector ord2 = new Vector(); - - ord2.addElement(X509Name.E); - ord2.addElement(X509Name.ST); - ord2.addElement(X509Name.L); - ord2.addElement(X509Name.O); - ord2.addElement(X509Name.C); - - name1 = new X509Name(ord1, attrs); - name2 = new X509Name(ord2, attrs); - - if (!name1.equals(name2)) - { - fail("Failed reverse name test"); - } - - if (name1.hashCode() != name2.hashCode()) - { - fail("Failed reverse name test hashCode"); - } - - if (name1.equals(name2, true)) - { - fail("Failed reverse name test - in Order"); - } - - if (!name1.equals(name2, false)) - { - fail("Failed reverse name test - in Order false"); - } - - Vector oids = name1.getOIDs(); - if (!compareVectors(oids, ord1)) - { - fail("oid comparison test"); - } - - Vector val1 = new Vector(); - - val1.addElement("AU"); - val1.addElement("The Legion of the Bouncy Castle"); - val1.addElement("Melbourne"); - val1.addElement("Victoria"); - val1.addElement("feedback-crypto@bouncycastle.org"); - - name1 = new X509Name(ord1, val1); - - Vector values = name1.getValues(); - if (!compareVectors(values, val1)) - { - fail("value comparison test"); - } - - ord2 = new Vector(); - - ord2.addElement(X509Name.ST); - ord2.addElement(X509Name.ST); - ord2.addElement(X509Name.L); - ord2.addElement(X509Name.O); - ord2.addElement(X509Name.C); - - name1 = new X509Name(ord1, attrs); - name2 = new X509Name(ord2, attrs); - - if (name1.equals(name2)) - { - fail("Failed different name test"); - } - - ord2 = new Vector(); - - ord2.addElement(X509Name.ST); - ord2.addElement(X509Name.L); - ord2.addElement(X509Name.O); - ord2.addElement(X509Name.C); - - name1 = new X509Name(ord1, attrs); - name2 = new X509Name(ord2, attrs); - - if (name1.equals(name2)) - { - fail("Failed subset name test"); - } - - compositeTest(); - - ByteArrayOutputStream bOut; - ASN1OutputStream aOut; - ASN1InputStream aIn; - - // - // getValues test - // - Vector v1 = name1.getValues(X509Name.O); - - if (v1.size() != 1 || !v1.elementAt(0).equals("The Legion of the Bouncy Castle")) - { - fail("O test failed"); - } - - Vector v2 = name1.getValues(X509Name.L); - - if (v2.size() != 1 || !v2.elementAt(0).equals("Melbourne")) - { - fail("L test failed"); - } - - // - // general subjects test - // - for (int i = 0; i != subjects.length; i++) - { - X509Name name = new X509Name(subjects[i]); - - bOut = new ByteArrayOutputStream(); - aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(name); - - aIn = new ASN1InputStream(new ByteArrayInputStream(bOut.toByteArray())); - - name = X509Name.getInstance(aIn.readObject()); - - if (!name.toString().equals(subjects[i])) - { - fail("failed regeneration test " + i + " got " + name.toString()); - } - } - - // - // sort test - // - X509Name unsorted = new X509Name("SERIALNUMBER=BBB + CN=AA"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("CN=AA+SERIALNUMBER=BBB")) - { - fail("failed sort test 1"); - } - - unsorted = new X509Name("CN=AA + SERIALNUMBER=BBB"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("CN=AA+SERIALNUMBER=BBB")) - { - fail("failed sort test 2"); - } - - unsorted = new X509Name("SERIALNUMBER=B + CN=AA"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("SERIALNUMBER=B+CN=AA")) - { - fail("failed sort test 3"); - } - - unsorted = new X509Name("CN=AA + SERIALNUMBER=B"); - - if (!fromBytes(unsorted.getEncoded()).toString().equals("SERIALNUMBER=B+CN=AA")) - { - fail("failed sort test 4"); - } - - // - // equality tests - // - equalityTest(new X509Name("CN=The Legion"), new X509Name("CN=The Legion")); - equalityTest(new X509Name("CN= The Legion"), new X509Name("CN=The Legion")); - equalityTest(new X509Name("CN=The Legion "), new X509Name("CN=The Legion")); - equalityTest(new X509Name("CN= The Legion "), new X509Name("CN=The Legion")); - equalityTest(new X509Name("CN= the legion "), new X509Name("CN=The Legion")); - - // # test - - X509Name n1 = new X509Name("SERIALNUMBER=8,O=ABC,CN=ABC Class 3 CA,C=LT"); - X509Name n2 = new X509Name("2.5.4.5=8,O=ABC,CN=ABC Class 3 CA,C=LT"); - X509Name n3 = new X509Name("2.5.4.5=#130138,O=ABC,CN=ABC Class 3 CA,C=LT"); - - equalityTest(n1, n2); - equalityTest(n2, n3); - equalityTest(n3, n1); - - n1 = new X509Name(true, "2.5.4.5=#130138,CN=SSC Class 3 CA,O=UAB Skaitmeninio sertifikavimo centras,C=LT"); - n2 = new X509Name(true, "SERIALNUMBER=#130138,CN=SSC Class 3 CA,O=UAB Skaitmeninio sertifikavimo centras,C=LT"); - n3 = X509Name.getInstance(ASN1Primitive.fromByteArray(Hex.decode("3063310b3009060355040613024c54312f302d060355040a1326" - + "55414220536b6169746d656e696e696f20736572746966696b6176696d6f2063656e74726173311730150603550403130e53534320436c6173732033204341310a30080603550405130138"))); - - equalityTest(n1, n2); - equalityTest(n2, n3); - equalityTest(n3, n1); - - n1 = new X509Name("SERIALNUMBER=8,O=XX,CN=ABC Class 3 CA,C=LT"); - n2 = new X509Name("2.5.4.5=8,O=,CN=ABC Class 3 CA,C=LT"); - - if (n1.equals(n2)) - { - fail("empty inequality check failed"); - } - - n1 = new X509Name("SERIALNUMBER=8,O=,CN=ABC Class 3 CA,C=LT"); - n2 = new X509Name("2.5.4.5=8,O=,CN=ABC Class 3 CA,C=LT"); - - equalityTest(n1, n2); - - // - // inequality to sequences - // - name1 = new X509Name("CN=The Legion"); - - if (name1.equals(new DERSequence())) - { - fail("inequality test with sequence"); - } - - if (name1.equals(new DERSequence(new DERSet()))) - { - fail("inequality test with sequence and set"); - } - - ASN1EncodableVector v = new ASN1EncodableVector(); - - v.add(new ASN1ObjectIdentifier("1.1")); - v.add(new ASN1ObjectIdentifier("1.1")); - if (name1.equals(new DERSequence(new DERSet(new DERSet(v))))) - { - fail("inequality test with sequence and bad set"); - } - - if (name1.equals(new DERSequence(new DERSet(new DERSet(v))), true)) - { - fail("inequality test with sequence and bad set"); - } - - if (name1.equals(new DERSequence(new DERSet(new DERSequence())))) - { - fail("inequality test with sequence and short sequence"); - } - - if (name1.equals(new DERSequence(new DERSet(new DERSequence())), true)) - { - fail("inequality test with sequence and short sequence"); - } - - v = new ASN1EncodableVector(); - - v.add(new ASN1ObjectIdentifier("1.1")); - v.add(new DERSequence()); - - if (name1.equals(new DERSequence(new DERSet(new DERSequence(v))))) - { - fail("inequality test with sequence and bad sequence"); - } - - if (name1.equals(null)) - { - fail("inequality test with null"); - } - - if (name1.equals(null, true)) - { - fail("inequality test with null"); - } - - // - // this is contrived but it checks sorting of sets with equal elements - // - unsorted = new X509Name("CN=AA + CN=AA + CN=AA"); - - // - // tagging test - only works if CHOICE implemented - // - /* - ASN1TaggedObject tag = new DERTaggedObject(false, 1, new X509Name("CN=AA")); - - if (!tag.isExplicit()) - { - fail("failed to explicitly tag CHOICE object"); - } - - X509Name name = X509Name.getInstance(tag, false); - - if (!name.equals(new X509Name("CN=AA"))) - { - fail("failed to recover tagged name"); - } - */ - - DERUTF8String testString = new DERUTF8String("The Legion of the Bouncy Castle"); - byte[] encodedBytes = testString.getEncoded(); - byte[] hexEncodedBytes = Hex.encode(encodedBytes); - String hexEncodedString = "#" + new String(hexEncodedBytes); - - DERUTF8String converted = (DERUTF8String) - new X509DefaultEntryConverter().getConvertedValue( - X509Name.L , hexEncodedString); - - if (!converted.equals(testString)) - { - fail("failed X509DefaultEntryConverter test"); - } - - // - // try escaped. - // - converted = (DERUTF8String) - new X509DefaultEntryConverter().getConvertedValue( - X509Name.L , "\\" + hexEncodedString); - - if (!converted.equals(new DERUTF8String(hexEncodedString))) - { - fail("failed X509DefaultEntryConverter test got " + converted + " expected: " + hexEncodedString); - } - - // - // try a weird value - // - X509Name n = new X509Name("CN=\\#nothex#string"); - - if (!n.toString().equals("CN=\\#nothex#string")) - { - fail("# string not properly escaped."); - } - - Vector vls = n.getValues(X509Name.CN); - if (vls.size() != 1 || !vls.elementAt(0).equals("#nothex#string")) - { - fail("escaped # not reduced properly"); - } - - n = new X509Name("CN=\"a+b\""); - - vls = n.getValues(X509Name.CN); - if (vls.size() != 1 || !vls.elementAt(0).equals("a+b")) - { - fail("escaped + not reduced properly"); - } - - n = new X509Name("CN=a\\+b"); - - vls = n.getValues(X509Name.CN); - if (vls.size() != 1 || !vls.elementAt(0).equals("a+b")) - { - fail("escaped + not reduced properly"); - } - - if (!n.toString().equals("CN=a\\+b")) - { - fail("+ in string not properly escaped."); - } - - n = new X509Name("CN=a\\=b"); - - vls = n.getValues(X509Name.CN); - if (vls.size() != 1 || !vls.elementAt(0).equals("a=b")) - { - fail("escaped = not reduced properly"); - } - - if (!n.toString().equals("CN=a\\=b")) - { - fail("= in string not properly escaped."); - } - - n = new X509Name("TELEPHONENUMBER=\"+61999999999\""); - - vls = n.getValues(X509Name.TELEPHONE_NUMBER); - if (vls.size() != 1 || !vls.elementAt(0).equals("+61999999999")) - { - fail("telephonenumber escaped + not reduced properly"); - } - - n = new X509Name("TELEPHONENUMBER=\\+61999999999"); - - vls = n.getValues(X509Name.TELEPHONE_NUMBER); - if (vls.size() != 1 || !vls.elementAt(0).equals("+61999999999")) - { - fail("telephonenumber escaped + not reduced properly"); - } - - // migration - X500NameBuilder builder = new X500NameBuilder(BCStyle.INSTANCE); - builder.addMultiValuedRDN(new ASN1ObjectIdentifier[] { BCStyle.CN, BCStyle.SN }, new String[] { "Thomas", "CVR:12341233-UID:1111" }); - builder.addRDN(BCStyle.O, "Test"); - builder.addRDN(BCStyle.C, "DK"); - - X500Name subject = builder.build(); - ASN1Primitive derObject = subject.toASN1Primitive(); - X509Name instance = X509Name.getInstance(derObject); - } - - private boolean compareVectors(Vector a, Vector b) // for compatibility with early JDKs - { - if (a.size() != b.size()) - { - return false; - } - - for (int i = 0; i != a.size(); i++) - { - if (!a.elementAt(i).equals(b.elementAt(i))) - { - return false; - } - } - - return true; - } - - private void compositeTest() - throws IOException - { - // - // composite test - // - byte[] enc = Hex.decode("305e310b300906035504061302415531283026060355040a0c1f546865204c6567696f6e206f662074686520426f756e637920436173746c653125301006035504070c094d656c626f75726e653011060355040b0c0a4173636f742056616c65"); - ASN1InputStream aIn = new ASN1InputStream(new ByteArrayInputStream(enc)); - - X509Name n = X509Name.getInstance(aIn.readObject()); - - if (!n.toString().equals("C=AU,O=The Legion of the Bouncy Castle,L=Melbourne+OU=Ascot Vale")) - { - fail("Failed composite to string test got: " + n.toString()); - } - - if (!n.toString(true, X509Name.DefaultSymbols).equals("L=Melbourne+OU=Ascot Vale,O=The Legion of the Bouncy Castle,C=AU")) - { - fail("Failed composite to string test got: " + n.toString(true, X509Name.DefaultSymbols)); - } - - n = new X509Name(true, "L=Melbourne+OU=Ascot Vale,O=The Legion of the Bouncy Castle,C=AU"); - if (!n.toString().equals("C=AU,O=The Legion of the Bouncy Castle,L=Melbourne+OU=Ascot Vale")) - { - fail("Failed composite to string reversal test got: " + n.toString()); - } - - n = new X509Name("C=AU, O=The Legion of the Bouncy Castle, L=Melbourne + OU=Ascot Vale"); - - ByteArrayOutputStream bOut = new ByteArrayOutputStream(); - ASN1OutputStream aOut = new ASN1OutputStream(bOut); - - aOut.writeObject(n); - - byte[] enc2 = bOut.toByteArray(); - - if (!Arrays.areEqual(enc, enc2)) - { - //fail("Failed composite string to encoding test"); - } - - // - // dud name test - handle empty DN without barfing. - // - n = new X509Name("C=CH,O=,OU=dummy,CN=mail@dummy.com"); - - n = X509Name.getInstance(ASN1Primitive.fromByteArray(n.getEncoded())); - } - - private void equalityTest(X509Name x509Name, X509Name x509Name1) - { - if (!x509Name.equals(x509Name1)) - { - fail("equality test failed for " + x509Name + " : " + x509Name1); - } - - if (x509Name.hashCode() != x509Name1.hashCode()) - { - fail("hashCodeTest test failed for " + x509Name + " : " + x509Name1); - } - - if (!x509Name.equals(x509Name1, true)) - { - fail("equality test failed for " + x509Name + " : " + x509Name1); - } - } - - - public static void main( - String[] args) - { - runTest(new X509NameTest()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/X9Test.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/X9Test.java deleted file mode 100644 index effe266..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/X9Test.java +++ /dev/null @@ -1,173 +0,0 @@ -package org.bouncycastle.asn1.test; - -import java.math.BigInteger; - -import org.bouncycastle.asn1.ASN1OctetString; -import org.bouncycastle.asn1.ASN1Primitive; -import org.bouncycastle.asn1.DEROctetString; -import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; -import org.bouncycastle.asn1.sec.ECPrivateKey; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; -import org.bouncycastle.asn1.x9.X962NamedCurves; -import org.bouncycastle.asn1.x9.X962Parameters; -import org.bouncycastle.asn1.x9.X9ECParameters; -import org.bouncycastle.asn1.x9.X9ECPoint; -import org.bouncycastle.asn1.x9.X9IntegerConverter; -import org.bouncycastle.asn1.x9.X9ObjectIdentifiers; -import org.bouncycastle.math.ec.ECPoint; -import org.bouncycastle.util.Arrays; -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -public class X9Test - extends SimpleTest -{ - private byte[] namedPub = Base64.decode("MDcwEwYHKoZIzj0CAQYIKoZIzj0DAQEDIAADG5xRI+Iki/JrvL20hoDUa7Cggzorv5B9yyqSMjYu"); - private byte[] expPub = Base64.decode( - "MIH8MIHXBgcqhkjOPQIBMIHLAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAA" + - "AAAH///////zBXBB5///////////////9///////+AAAAAAAB///////wEHiVXBfoqMGZUsfTL" + - "A9anUKMMJQEC1JiHF9m6FattPgMVAH1zdBaP/jRxtgqFdoahlHXTv6L/BB8DZ2iujhi7ks/PAF" + - "yUmqLG2UhT0OZgu/hUsclQX+laAh5///////////////9///+XXetBs6YFfDxDIUZSZVECAQED" + - "IAADG5xRI+Iki/JrvL20hoDUa7Cggzorv5B9yyqSMjYu"); - - private byte[] namedPriv = Base64.decode("MDkCAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEHzAdAgEBBB" + - "gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo="); - - private byte[] expPriv = Base64.decode( - "MIIBBAIBADCB1wYHKoZIzj0CATCBywIBATApBgcqhkjOPQEBAh5///////////////9///////" + - "+AAAAAAAB///////8wVwQef///////////////f///////gAAAAAAAf//////8BB4lVwX6KjBmVL" + - "H0ywPWp1CjDCUBAtSYhxfZuhWrbT4DFQB9c3QWj/40cbYKhXaGoZR107+i/wQfA2doro4Yu5LPzw" + - "BclJqixtlIU9DmYLv4VLHJUF/pWgIef///////////////f///l13rQbOmBXw8QyFGUmVRAgEBBC" + - "UwIwIBAQQeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU"); - - private void encodePublicKey() - throws Exception - { - X9ECParameters ecP = X962NamedCurves.getByOID(X9ObjectIdentifiers.prime239v3); - - X9IntegerConverter conv = new X9IntegerConverter(); - - if (conv.getByteLength(ecP.getCurve()) != 30) - { - fail("wrong byte length reported for curve"); - } - - if (ecP.getCurve().getFieldSize() != 239) - { - fail("wrong field size reported for curve"); - } - - // - // named curve - // - X962Parameters params = new X962Parameters(X9ObjectIdentifiers.prime192v1); - ECPoint point = ecP.getG().multiply(BigInteger.valueOf(100)); - - ASN1OctetString p = new DEROctetString(point.getEncoded(true)); - - SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), p.getOctets()); - if (!areEqual(info.getEncoded(), namedPub)) - { - fail("failed public named generation"); - } - - X9ECPoint x9P = new X9ECPoint(ecP.getCurve(), p); - - if (!Arrays.areEqual(p.getOctets(), x9P.getPoint().getEncoded())) - { - fail("point encoding not preserved"); - } - - ASN1Primitive o = ASN1Primitive.fromByteArray(namedPub); - - if (!info.equals(o)) - { - fail("failed public named equality"); - } - - // - // explicit curve parameters - // - params = new X962Parameters(ecP); - - info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), p.getOctets()); - - if (!areEqual(info.getEncoded(), expPub)) - { - fail("failed public explicit generation"); - } - - o = ASN1Primitive.fromByteArray(expPub); - - if (!info.equals(o)) - { - fail("failed public explicit equality"); - } - } - - private void encodePrivateKey() - throws Exception - { - X9ECParameters ecP = X962NamedCurves.getByOID(X9ObjectIdentifiers.prime192v1); - - // - // named curve - // - X962Parameters params = new X962Parameters(X9ObjectIdentifiers.prime192v1); - - PrivateKeyInfo info = new PrivateKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), new ECPrivateKey(ecP.getCurve().getOrder().bitLength(), BigInteger.valueOf(10))); - - if (!areEqual(info.getEncoded(), namedPriv)) - { - fail("failed private named generation"); - } - - ASN1Primitive o = ASN1Primitive.fromByteArray(namedPriv); - - if (!info.equals(o)) - { - fail("failed private named equality"); - } - - // - // explicit curve parameters - // - ecP = X962NamedCurves.getByOID(X9ObjectIdentifiers.prime239v3); - - params = new X962Parameters(ecP); - - info = new PrivateKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), new ECPrivateKey(ecP.getCurve().getOrder().bitLength(), BigInteger.valueOf(20))); - - if (!areEqual(info.getEncoded(), expPriv)) - { - fail("failed private explicit generation"); - } - - o = ASN1Primitive.fromByteArray(expPriv); - - if (!info.equals(o)) - { - fail("failed private explicit equality"); - } - } - - public void performTest() - throws Exception - { - encodePublicKey(); - encodePrivateKey(); - } - - public String getName() - { - return "X9"; - } - - public static void main( - String[] args) - { - runTest(new X9Test()); - } -} diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/package.html b/bcprov/src/main/java/org/bouncycastle/asn1/test/package.html deleted file mode 100644 index df45e19..0000000 --- a/bcprov/src/main/java/org/bouncycastle/asn1/test/package.html +++ /dev/null @@ -1,5 +0,0 @@ -<html> -<body bgcolor="#ffffff"> -Test programs for the ASN.1 package. -</body> -</html> |