package org.bouncycastle.util.io.pem; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.Collections; import java.util.List; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; public class AllTests extends TestCase { public void testPemLength() throws IOException { for (int i = 1; i != 60; i++) { lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[i]); } lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[100]); lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[101]); lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[102]); lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[103]); lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[1000]); lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[1001]); lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[1002]); lengthTest("CERTIFICATE", Collections.EMPTY_LIST, new byte[1003]); List headers = new ArrayList(); headers.add(new PemHeader("Proc-Type", "4,ENCRYPTED")); headers.add(new PemHeader("DEK-Info", "DES3,0001020304050607")); lengthTest("RSA PRIVATE KEY", headers, new byte[103]); } private void lengthTest(String type, List headers, byte[] data) throws IOException { ByteArrayOutputStream bOut = new ByteArrayOutputStream(); PemWriter pWrt = new PemWriter(new OutputStreamWriter(bOut)); PemObject pemObj = new PemObject(type, headers, data); pWrt.writeObject(pemObj); pWrt.close(); assertEquals(bOut.toByteArray().length, pWrt.getOutputSize(pemObj)); } public static void main (String[] args) { junit.textui.TestRunner.run (suite()); } public static Test suite() { TestSuite suite = new TestSuite("util tests"); suite.addTestSuite(AllTests.class); return suite; } }