CertificateCertificateRepTest.java revision f33eae7e84eb6d3b0f4e86b59605bb3de73009f3
131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectpackage tests.security.cert;
231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport dalvik.annotation.TestLevel;
431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport junit.framework.TestCase;
831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport org.apache.harmony.security.tests.support.cert.MyCertificate;
1031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport org.apache.harmony.security.tests.support.cert.TestUtils;
1131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport org.apache.harmony.security.tests.support.cert.MyCertificate.MyCertificateRep;
1231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
1331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport java.io.ObjectStreamException;
1431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport java.security.cert.Certificate;
1531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport java.util.Arrays;
1631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project
17325dc23624160689e59fbac708cf6f222b20d025Daniel Sandler@TestTargetClass(java.security.cert.Certificate.class)
1831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectpublic class CertificateCertificateRepTest extends TestCase {
190280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka
20a5f4e488dff461fbbc61400a8d284d9886164f76Adam Cohen    private static final byte[] testEncoding = new byte[] { (byte) 1, (byte) 2,
21f358a4bbd6ce5b6ddadfae19e6b9c6872530d627Adam Cohen            (byte) 3, (byte) 4, (byte) 5 };
22b1254a6bdb11024042fb6c27e179210c1bbd6e1cChet Haase
2322cba7f9958569a5e4c1dfcce4969daeaa6c898cAdam Cohen    protected void setUp() throws Exception {
240280c3be4d9f8fc6fdf015b7ecd276eb26f76f2dMichael Jurka        super.setUp();
25ad4e15cae4b628677fc249628a9ff661e67add78Adam Cohen    }
26cd68ff5b88de9b5136ff5a9ef698e4db2fc5db66Patrick Dubroy
27cd68ff5b88de9b5136ff5a9ef698e4db2fc5db66Patrick Dubroy    protected void tearDown() throws Exception {
28cd68ff5b88de9b5136ff5a9ef698e4db2fc5db66Patrick Dubroy        super.tearDown();
298f573952b8729b4319043ae0908997ecd2d68951Dianne Hackborn    }
30bed61d22bdbfcdbe04f92675c7751b83c7a8947cMichael Jurka
31629de3ef739883c0962423cc0c3a26299f162d3dRomain Guy    /**
32495f2892288504f4ab87e62957b3f71144dd73c2Adam Powell     * Test for
3331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project     * <code>Certificate.CertificateRep(String type, byte[] data)</code>
34adc574ccb1986856b38198ad5a934b7543a1debbMichael Jurka     * method<br>
357247f6315baf16eacb3286f21bd80321385c1defPatrick Dubroy     */
3631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project    @TestTargetNew(
374be866d3a1665aa2098cb5d38d535b1ad1aab6d6Joe Onorato        level = TestLevel.COMPLETE,
3831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        notes = "",
39a63c452f5bd491ba9b28c332ccedc6c6c7e2f3ccMichael Jurka        method = "Certificate.CertificateRep.CertificateRep",
40b8c69f3c17a40adc2d85e8e996f754c383c293dcWinson Chung        args = { String.class, byte[].class}
41043f2af567178b82b0b41f12d379e7dd12da2936Winson Chung    )
4231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project    public final void testCertificateCertificateRep() {
434be866d3a1665aa2098cb5d38d535b1ad1aab6d6Joe Onorato        MyCertificate c1 = new MyCertificate("TEST_TYPE", testEncoding);
44f96811cdf564469a7a654a0c876288c9fd14f35eThe Android Open Source Project        MyCertificateRep rep = c1.new MyCertificateRep("TEST_TYPE", new byte[] {
454caf298a2c9d861d69f5a47b747ada911b125b6dAdam Cohen                (byte) 1, (byte) 2, (byte) 3 });
46956091ba7863bd72086275e61084864994dd6fa7Joe Onorato
47495f2892288504f4ab87e62957b3f71144dd73c2Adam Powell        assertTrue(Arrays.equals(new byte[] { (byte) 1, (byte) 2, (byte) 3 },
4853805218809cc1f93a0f1307b442df7c65a3068cAdam Cohen                rep.getData()));
4931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        assertEquals("TEST_TYPE", rep.getType());
50291ad12232c98e383d44d76ffe09e97e204c61bcDaniel Sandler
511462de39f01cec0ba785386532719cb0207dd827Adam Cohen        try {
52cc07e7a9c6e383f35a8de717be71201f666b01a8Michael Jurka            c1.new MyCertificateRep(null, null);
53a34abf8c781485b788fddacb352d586bffca886cWinson Chung        } catch (Exception e) {
5431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project            fail("Unexpected exeption " + e.getMessage());
5531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        }
566e3140865d3f0def2e55934d8b0b2c1503386e54Winson Chung
5753805218809cc1f93a0f1307b442df7c65a3068cAdam Cohen        try {
58cd68ff5b88de9b5136ff5a9ef698e4db2fc5db66Patrick Dubroy            MyCertificate.MyCertificateRep rep1 = c1.new MyCertificateRep(
59cc07e7a9c6e383f35a8de717be71201f666b01a8Michael Jurka                    "X509", TestUtils.getX509Certificate_v3());
60f96811cdf564469a7a654a0c876288c9fd14f35eThe Android Open Source Project            assertEquals("X509", rep1.getType());
6131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project            assertTrue(Arrays.equals(TestUtils.getX509Certificate_v3(), rep1.getData()));
62325dc23624160689e59fbac708cf6f222b20d025Daniel Sandler        } catch (Exception e) {
63bffe745b1e195deedc1dcc60f37950b3b0b4c652Adam Cohen            fail("Unexpected exeption " + e.getMessage());
64325dc23624160689e59fbac708cf6f222b20d025Daniel Sandler        }
65edcce099c98a6c40d10109ac092ab50f9d2668f3Romain Guy    }
66716b51e030f9c6ed34af2b947760e46a280c65a6Adam Cohen
67dcd297f05a866e07090d6e2af8fb4b15f28cb555Adam Cohen    /**
68716b51e030f9c6ed34af2b947760e46a280c65a6Adam Cohen     * Test for <code>readResolve()</code> method<br>
698bd65f5c57b8bae2fb82256e89ac30ddc0769319Michael Jurka     */
70716b51e030f9c6ed34af2b947760e46a280c65a6Adam Cohen    @TestTargetNew(
7131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project        level = TestLevel.COMPLETE,
720142d49e1378a7155bcca1fb59965d9e73016dbcMichael Jurka        notes = "",
730142d49e1378a7155bcca1fb59965d9e73016dbcMichael Jurka        method = "Certificate.CertificateRep.readResolve",
74aafa03cbb925c74be1c13f8bb99d928be429e62fWinson Chung        args = {}
7531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project    )
760142d49e1378a7155bcca1fb59965d9e73016dbcMichael Jurka    public final void testReadResolve() {
77d74c984fcc61f86160476a2543faff715e3ee2fdMichael Jurka        MyCertificate c1 = new MyCertificate("TEST_TYPE", testEncoding);
7877e1f47520958edd7ec04e203db65b932537bd1cJohn Spurlock        MyCertificateRep rep = c1.new MyCertificateRep("TEST_TYPE", new byte[] {
7977e1f47520958edd7ec04e203db65b932537bd1cJohn Spurlock                (byte) 1, (byte) 2, (byte) 3 });
803a8820bdbad90642cf5cda4b00a8c92ecb699159Joe Onorato
810142d49e1378a7155bcca1fb59965d9e73016dbcMichael Jurka        try {
82f34bab59fc0260f926aec44d044883dce1b4191fAdam Cohen            rep.readResolve();
83b5ba097015c4794fa822f30b38a60a7070a00097Adam Cohen            fail("ObjectStreamException expected");
84a985e598f6071f4caca15ba3cb6b2cd3e38b217dAdam Cohen        } catch (ObjectStreamException e) {
8568d739365bf650fe7fecf99cd3bfe63a0d41bd12Adam Cohen            // expected
8668d739365bf650fe7fecf99cd3bfe63a0d41bd12Adam Cohen        }
879171e6d8a2b7b5aa136617b9779a8bbadc5259f7Winson Chung
88f34bab59fc0260f926aec44d044883dce1b4191fAdam Cohen        MyCertificateRep rep1 = c1.new MyCertificateRep("X509", TestUtils
89ad4e15cae4b628677fc249628a9ff661e67add78Adam Cohen                .getX509Certificate_v3());
90ad4e15cae4b628677fc249628a9ff661e67add78Adam Cohen        try {
91ad4e15cae4b628677fc249628a9ff661e67add78Adam Cohen            Certificate obj = (Certificate) rep1.readResolve();
92f135c6c364e92cddb84c1b4a94ed535214b712a6Winson Chung            assertEquals("0.3.5", obj.getPublicKey().getAlgorithm());
93ed51cc9a12c50d12e7d30ed209a49f1a40858043Adam Cohen            assertEquals("X.509", obj.getPublicKey().getFormat());
94265b9a66542148e0ff13971001cb9461065e1e0eAdam Cohen            assertEquals("X.509", obj.getType());
95ed51cc9a12c50d12e7d30ed209a49f1a40858043Adam Cohen        } catch (ObjectStreamException e) {
96f358a4bbd6ce5b6ddadfae19e6b9c6872530d627Adam Cohen            fail("Unexpected ObjectStreamException " + e.getMessage());
97f358a4bbd6ce5b6ddadfae19e6b9c6872530d627Adam Cohen        }
989171e6d8a2b7b5aa136617b9779a8bbadc5259f7Winson Chung    }
999171e6d8a2b7b5aa136617b9779a8bbadc5259f7Winson Chung}
1009171e6d8a2b7b5aa136617b9779a8bbadc5259f7Winson Chung