X509TrustManagerTest.java revision f33eae7e84eb6d3b0f4e86b59605bb3de73009f3
1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.javax.net.ssl;
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughesimport dalvik.annotation.TestTargetClass;
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets;
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel;
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetNew;
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream;
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertificateFactory;
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.CertificateException;
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.cert.X509Certificate;
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.ssl.X509TrustManager;
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.security.tests.support.cert.TestUtils;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.apache.harmony.xnet.tests.support.X509TrustManagerImpl;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>X509TrustManager</code> class constructors and methods.
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
22f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes@TestTargetClass(X509TrustManager.class)
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class X509TrustManagerTest extends TestCase {
24f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private X509Certificate[] setX509Certificate() {
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            CertificateFactory certFact = CertificateFactory.getInstance("X.509");
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            X509Certificate pemCert = (X509Certificate) certFact
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .generateCertificate(new ByteArrayInputStream(TestUtils
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getX509Certificate_v3()));
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            X509Certificate[] xcert = {pemCert};
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return xcert;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception ex) {
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + ex);
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return null;
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private X509Certificate[] setInvalid() {
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            CertificateFactory certFact = CertificateFactory.getInstance("X.509");
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            X509Certificate pemCert = (X509Certificate) certFact
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .generateCertificate(new ByteArrayInputStream(TestUtils
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getX509Certificate_v1()));
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            X509Certificate[] xcert = {pemCert};
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return xcert;
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception ex) {
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + ex);
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return null;
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
52f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
54f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * @tests javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "checkClientTrusted",
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.security.cert.X509Certificate[].class, java.lang.String.class}
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_checkClientTrusted_01() {
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate[] xcert = null;
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkClientTrusted(xcert, "SSL");
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
72f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
74f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        xcert = new X509Certificate[0];
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkClientTrusted(xcert, "SSL");
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
82f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
84f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        xcert = setX509Certificate();
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkClientTrusted(xcert, null);
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
92f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
94f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkClientTrusted(xcert, "");
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
101f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
104f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
106f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * @tests javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "checkClientTrusted",
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.security.cert.X509Certificate[].class, java.lang.String.class}
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_checkClientTrusted_02() {
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate[] xcert = setInvalid();
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkClientTrusted(xcert, "SSL");
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("CertificateException wasn't thrown");
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (CertificateException ce) {
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
127f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * @tests javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "checkClientTrusted",
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.security.cert.X509Certificate[].class, java.lang.String.class}
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_checkClientTrusted_03() {
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate[] xcert = setX509Certificate();
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkClientTrusted(xcert, "SSL");
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception ex) {
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + ex);
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
147f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * @tests javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "checkServerTrusted",
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.security.cert.X509Certificate[].class, java.lang.String.class}
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_checkServerTrusted_01() {
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate[] xcert = null;
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkServerTrusted(xcert, "SSL");
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
165f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
167f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        xcert = new X509Certificate[0];
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkServerTrusted(xcert, "SSL");
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
175f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
177f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        xcert = setX509Certificate();
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkServerTrusted(xcert, null);
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
185f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
187f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkServerTrusted(xcert, "");
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException wasn't thrown");
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException iae) {
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
194f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail(e + " was thrown instead of IllegalArgumentException");
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
197f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
199f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * @tests javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "checkServerTrusted",
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.security.cert.X509Certificate[].class, java.lang.String.class}
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_checkServerTrusted_02() {
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate[] xcert = setInvalid();
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkServerTrusted(xcert, "SSL");
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("CertificateException wasn't thrown");
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (CertificateException ce) {
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
218f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
220f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * @tests javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "checkServerTrusted",
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.security.cert.X509Certificate[].class, java.lang.String.class}
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_checkServerTrusted_03() {
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509Certificate[] xcert = setX509Certificate();
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            xtm.checkServerTrusted(xcert, "SSL");
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception ex) {
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + ex);
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
238f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
240f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * @tests javax.net.ssl.X509TrustManager#getAcceptedIssuers()
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "getAcceptedIssuers",
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getAcceptedIssuers() {
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        X509TrustManagerImpl xtm = new X509TrustManagerImpl();
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNotNull(xtm.getAcceptedIssuers());
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception ex) {
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + ex);
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
257f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
259