Home | History | Annotate | Download | only in ssl
      1 package tests.api.javax.net.ssl;
      2 
      3 import java.io.ByteArrayInputStream;
      4 import java.security.cert.CertificateException;
      5 import java.security.cert.CertificateFactory;
      6 import java.security.cert.X509Certificate;
      7 import javax.net.ssl.X509TrustManager;
      8 import junit.framework.TestCase;
      9 import org.apache.harmony.security.tests.support.cert.TestUtils;
     10 import org.apache.harmony.xnet.tests.support.X509TrustManagerImpl;
     11 
     12 public 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