1package tests.api.javax.net.ssl; 2 3import java.io.ByteArrayInputStream; 4import java.security.cert.CertificateException; 5import java.security.cert.CertificateFactory; 6import java.security.cert.X509Certificate; 7import javax.net.ssl.X509TrustManager; 8import junit.framework.TestCase; 9import org.apache.harmony.security.tests.support.cert.TestUtils; 10import org.apache.harmony.xnet.tests.support.X509TrustManagerImpl; 11 12public class X509TrustManagerTest extends TestCase { 13 14 private X509Certificate[] setX509Certificate() throws Exception { 15 CertificateFactory certFact = CertificateFactory.getInstance("X.509"); 16 X509Certificate pemCert = (X509Certificate) certFact.generateCertificate( 17 new ByteArrayInputStream(TestUtils.getX509Certificate_v3())); 18 X509Certificate[] xcert = { pemCert }; 19 return xcert; 20 } 21 22 private X509Certificate[] setInvalid() throws Exception { 23 CertificateFactory certFact = CertificateFactory.getInstance("X.509"); 24 X509Certificate pemCert = (X509Certificate) certFact.generateCertificate( 25 new ByteArrayInputStream(TestUtils.getX509Certificate_v1())); 26 X509Certificate[] xcert = { pemCert }; 27 return xcert; 28 } 29 30 public void test_checkClientTrusted_01() throws Exception { 31 X509TrustManagerImpl xtm = new X509TrustManagerImpl(); 32 X509Certificate[] xcert = null; 33 34 try { 35 xtm.checkClientTrusted(xcert, "SSL"); 36 fail("IllegalArgumentException wasn't thrown"); 37 } catch (IllegalArgumentException expected) { 38 } 39 40 xcert = new X509Certificate[0]; 41 try { 42 xtm.checkClientTrusted(xcert, "SSL"); 43 fail("IllegalArgumentException wasn't thrown"); 44 } catch (IllegalArgumentException expected) { 45 } 46 47 xcert = setX509Certificate(); 48 try { 49 xtm.checkClientTrusted(xcert, null); 50 fail("IllegalArgumentException wasn't thrown"); 51 } catch (IllegalArgumentException expected) { 52 } 53 54 try { 55 xtm.checkClientTrusted(xcert, ""); 56 fail("IllegalArgumentException wasn't thrown"); 57 } catch (IllegalArgumentException expected) { 58 } 59 } 60 61 /** 62 * javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType) 63 */ 64 public void test_checkClientTrusted_02() throws Exception { 65 X509TrustManagerImpl xtm = new X509TrustManagerImpl(); 66 X509Certificate[] xcert = setInvalid(); 67 68 try { 69 xtm.checkClientTrusted(xcert, "SSL"); 70 fail("CertificateException wasn't thrown"); 71 } catch (CertificateException expected) { 72 } 73 } 74 75 /** 76 * javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType) 77 */ 78 public void test_checkClientTrusted_03() throws Exception { 79 X509TrustManagerImpl xtm = new X509TrustManagerImpl(); 80 X509Certificate[] xcert = setX509Certificate(); 81 xtm.checkClientTrusted(xcert, "SSL"); 82 } 83 84 /** 85 * javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType) 86 */ 87 public void test_checkServerTrusted_01() throws Exception { 88 X509TrustManagerImpl xtm = new X509TrustManagerImpl(); 89 X509Certificate[] xcert = null; 90 91 try { 92 xtm.checkServerTrusted(xcert, "SSL"); 93 fail("IllegalArgumentException wasn't thrown"); 94 } catch (IllegalArgumentException expected) { 95 } 96 97 xcert = new X509Certificate[0]; 98 try { 99 xtm.checkServerTrusted(xcert, "SSL"); 100 fail("IllegalArgumentException wasn't thrown"); 101 } catch (IllegalArgumentException expected) { 102 } 103 104 xcert = setX509Certificate(); 105 try { 106 xtm.checkServerTrusted(xcert, null); 107 fail("IllegalArgumentException wasn't thrown"); 108 } catch (IllegalArgumentException expected) { 109 } 110 111 try { 112 xtm.checkServerTrusted(xcert, ""); 113 fail("IllegalArgumentException wasn't thrown"); 114 } catch (IllegalArgumentException expected) { 115 } 116 } 117 118 /** 119 * javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType) 120 */ 121 public void test_checkServerTrusted_02() throws Exception { 122 X509TrustManagerImpl xtm = new X509TrustManagerImpl(); 123 X509Certificate[] xcert = setInvalid(); 124 125 try { 126 xtm.checkServerTrusted(xcert, "SSL"); 127 fail("CertificateException wasn't thrown"); 128 } catch (CertificateException expected) { 129 } 130 } 131 132 /** 133 * javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType) 134 */ 135 public void test_checkServerTrusted_03() throws Exception { 136 X509TrustManagerImpl xtm = new X509TrustManagerImpl(); 137 X509Certificate[] xcert = setX509Certificate(); 138 xtm.checkServerTrusted(xcert, "SSL"); 139 } 140 141 /** 142 * javax.net.ssl.X509TrustManager#getAcceptedIssuers() 143 */ 144 public void test_getAcceptedIssuers() throws Exception { 145 X509TrustManagerImpl xtm = new X509TrustManagerImpl(); 146 assertNotNull(xtm.getAcceptedIssuers()); 147 } 148 149} 150