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