diff options
Diffstat (limited to 'base/util/test/com/netscape/security/x509')
5 files changed, 465 insertions, 0 deletions
diff --git a/base/util/test/com/netscape/security/x509/ConverterTestUtil.java b/base/util/test/com/netscape/security/x509/ConverterTestUtil.java new file mode 100644 index 000000000..748c1b284 --- /dev/null +++ b/base/util/test/com/netscape/security/x509/ConverterTestUtil.java @@ -0,0 +1,22 @@ +package com.netscape.security.x509; + +import netscape.security.util.DerOutputStream; +import netscape.security.util.DerValue; +import netscape.security.x509.AVAValueConverter; + +public class ConverterTestUtil { + + public static byte[] convert(AVAValueConverter converter, String string, byte[] tags) throws Exception { + + DerOutputStream os = new DerOutputStream(); + + DerValue value = converter.getValue(string, tags); + value.encode(os); + + return os.toByteArray(); + } + + public static byte[] convert(AVAValueConverter converter, String string) throws Exception { + return convert(converter, string, null); + } +} diff --git a/base/util/test/com/netscape/security/x509/DirStrConverterTest.java b/base/util/test/com/netscape/security/x509/DirStrConverterTest.java new file mode 100644 index 000000000..0549dec9c --- /dev/null +++ b/base/util/test/com/netscape/security/x509/DirStrConverterTest.java @@ -0,0 +1,122 @@ +package com.netscape.security.x509; + +import org.junit.Test; +import org.junit.Assert; + +import com.netscape.security.util.JSSUtil; +import com.netscape.security.util.StringTestUtil; + +import netscape.security.util.DerValue; +import netscape.security.x509.DirStrConverter; + +public class DirStrConverterTest { + + @Test + public void testEmptyString() throws Exception { + + String string = ""; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_PrintableString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new DirStrConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testNullCharacters() throws Exception { + + String string = StringTestUtil.NULL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_T61String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new DirStrConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testPrintableCharacters() throws Exception { + + String string = StringTestUtil.PRINTABLE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_PrintableString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new DirStrConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testControlCharacters() throws Exception { + + String string = StringTestUtil.CONTROL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_T61String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new DirStrConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testMultibyteCharacters() throws Exception { + + String string = StringTestUtil.MULTIBYTE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_UniversalString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new DirStrConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testPrintableCharactersWithTags() throws Exception { + + String string = StringTestUtil.PRINTABLE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_IA5String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new DirStrConverter(), string, new byte[] { + DerValue.tag_IA5String, DerValue.tag_UTF8String + }); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testMultibyteCharactersWithTags() throws Exception { + + String string = StringTestUtil.MULTIBYTE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_UTF8String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new DirStrConverter(), string, new byte[] { + DerValue.tag_IA5String, DerValue.tag_UTF8String + }); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } +} diff --git a/base/util/test/com/netscape/security/x509/GenericValueConverterTest.java b/base/util/test/com/netscape/security/x509/GenericValueConverterTest.java new file mode 100644 index 000000000..46ea86cc7 --- /dev/null +++ b/base/util/test/com/netscape/security/x509/GenericValueConverterTest.java @@ -0,0 +1,125 @@ +package com.netscape.security.x509; + +import org.junit.Test; +import org.junit.Assert; + +import com.netscape.security.util.JSSUtil; +import com.netscape.security.util.StringTestUtil; + +import netscape.security.util.DerValue; +import netscape.security.x509.GenericValueConverter; + +public class GenericValueConverterTest { + + @Test + public void testEmptyString() throws Exception { + + String string = ""; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_PrintableString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new GenericValueConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testNullCharacters() throws Exception { + + String string = StringTestUtil.NULL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_IA5String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new GenericValueConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testPrintableCharacters() throws Exception { + + String string = StringTestUtil.PRINTABLE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_PrintableString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new GenericValueConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testControlCharacters() throws Exception { + + String string = StringTestUtil.CONTROL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_IA5String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new GenericValueConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testMultibyteCharacters() throws Exception { + + String string = StringTestUtil.MULTIBYTE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_BMPString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new GenericValueConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + actual = StringTestUtil.normalizeUnicode(actual); + System.out.println(" - norm. : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testPrintableCharactersWithTags() throws Exception { + + String string = StringTestUtil.PRINTABLE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_T61String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new GenericValueConverter(), string, new byte[] { + DerValue.tag_T61String, DerValue.tag_UniversalString + }); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testMultibyteCharactersWithTags() throws Exception { + + String string = StringTestUtil.MULTIBYTE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_UniversalString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new GenericValueConverter(), string, new byte[] { + DerValue.tag_T61String, DerValue.tag_UniversalString + }); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } +} diff --git a/base/util/test/com/netscape/security/x509/IA5StringConverterTest.java b/base/util/test/com/netscape/security/x509/IA5StringConverterTest.java new file mode 100644 index 000000000..ba99218ad --- /dev/null +++ b/base/util/test/com/netscape/security/x509/IA5StringConverterTest.java @@ -0,0 +1,93 @@ +package com.netscape.security.x509; + +import org.junit.Test; +import org.junit.Assert; + +import com.netscape.security.util.JSSUtil; +import com.netscape.security.util.StringTestUtil; + +import netscape.security.util.DerValue; +import netscape.security.x509.IA5StringConverter; + +public class IA5StringConverterTest { + + @Test + public void testEmptyString() throws Exception { + + String string = ""; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_IA5String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new IA5StringConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testNullCharacters() throws Exception { + + String string = StringTestUtil.NULL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_IA5String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new IA5StringConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testPrintableCharacters() throws Exception { + + String string = StringTestUtil.PRINTABLE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_IA5String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new IA5StringConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testControlCharacters() throws Exception { + + String string = StringTestUtil.CONTROL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_IA5String, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new IA5StringConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testMultibyteCharacters() throws Exception { + + String string = StringTestUtil.MULTIBYTE_CHARS; + System.out.println("Converting: [" + string + "]"); + + System.out.println(" - expected: IllegalArgumentException"); + + try { + byte[] actual = ConverterTestUtil.convert(new IA5StringConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.fail(); + + } catch (Exception e) { + System.out.println(" - actual : " + e.getClass().getSimpleName()); + Assert.assertTrue(e instanceof IllegalArgumentException); + } + } +} diff --git a/base/util/test/com/netscape/security/x509/PrintableConverterTest.java b/base/util/test/com/netscape/security/x509/PrintableConverterTest.java new file mode 100644 index 000000000..a7acc9c90 --- /dev/null +++ b/base/util/test/com/netscape/security/x509/PrintableConverterTest.java @@ -0,0 +1,103 @@ +package com.netscape.security.x509; + +import org.junit.Test; +import org.junit.Assert; + +import com.netscape.security.util.JSSUtil; +import com.netscape.security.util.StringTestUtil; + +import netscape.security.util.DerValue; +import netscape.security.x509.PrintableConverter; + +public class PrintableConverterTest { + + @Test + public void testEmptyString() throws Exception { + + String string = ""; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_PrintableString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new PrintableConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testNullCharacters() throws Exception { + + String string = StringTestUtil.NULL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + System.out.println(" - expected: IllegalArgumentException"); + + try { + byte[] actual = ConverterTestUtil.convert(new PrintableConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.fail(); + + } catch (Exception e) { + System.out.println(" - actual : " + e.getClass().getSimpleName()); + Assert.assertTrue(e instanceof IllegalArgumentException); + } + } + + @Test + public void testPrintableCharacters() throws Exception { + + String string = StringTestUtil.PRINTABLE_CHARS; + System.out.println("Converting: [" + string + "]"); + + byte[] expected = JSSUtil.encode(DerValue.tag_PrintableString, string); + System.out.println(" - expected: " + StringTestUtil.toString(expected)); + + byte[] actual = ConverterTestUtil.convert(new PrintableConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void testControlCharacters() throws Exception { + + String string = StringTestUtil.CONTROL_CHARS; + System.out.println("Converting: [" + StringTestUtil.toString(string.getBytes()) + "]"); + + System.out.println(" - expected: IllegalArgumentException"); + + try { + byte[] actual = ConverterTestUtil.convert(new PrintableConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.fail(); + + } catch (Exception e) { + System.out.println(" - actual : " + e.getClass().getSimpleName()); + Assert.assertTrue(e instanceof IllegalArgumentException); + } + } + + @Test + public void testMultibyteCharacters() throws Exception { + + String string = StringTestUtil.MULTIBYTE_CHARS; + System.out.println("Converting: [" + string + "]"); + + System.out.println(" - expected: IllegalArgumentException"); + + try { + byte[] actual = ConverterTestUtil.convert(new PrintableConverter(), string); + System.out.println(" - actual : " + StringTestUtil.toString(actual)); + + Assert.fail(); + + } catch (Exception e) { + System.out.println(" - actual : " + e.getClass().getSimpleName()); + Assert.assertTrue(e instanceof IllegalArgumentException); + } + } +} |