blob: ebe57ded56ae99ed394d1b1d4b939e518b682303 [file] [log] [blame]
package tests.api.javax.net.ssl;
import java.io.ByteArrayInputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
import junit.framework.TestCase;
import org.apache.harmony.security.tests.support.cert.TestUtils;
import org.apache.harmony.xnet.tests.support.X509TrustManagerImpl;
/**
* Tests for <code>X509TrustManager</code> class constructors and methods.
*/
public class X509TrustManagerTest extends TestCase {
private X509Certificate[] setX509Certificate() {
try {
CertificateFactory certFact = CertificateFactory.getInstance("X.509");
X509Certificate pemCert = (X509Certificate) certFact
.generateCertificate(new ByteArrayInputStream(TestUtils
.getX509Certificate_v3()));
X509Certificate[] xcert = {pemCert};
return xcert;
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
return null;
}
private X509Certificate[] setInvalid() {
try {
CertificateFactory certFact = CertificateFactory.getInstance("X.509");
X509Certificate pemCert = (X509Certificate) certFact
.generateCertificate(new ByteArrayInputStream(TestUtils
.getX509Certificate_v1()));
X509Certificate[] xcert = {pemCert};
return xcert;
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
return null;
}
/**
* javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
*/
public void test_checkClientTrusted_01() {
X509TrustManagerImpl xtm = new X509TrustManagerImpl();
X509Certificate[] xcert = null;
try {
xtm.checkClientTrusted(xcert, "SSL");
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
xcert = new X509Certificate[0];
try {
xtm.checkClientTrusted(xcert, "SSL");
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
xcert = setX509Certificate();
try {
xtm.checkClientTrusted(xcert, null);
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
try {
xtm.checkClientTrusted(xcert, "");
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
}
/**
* javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
*/
public void test_checkClientTrusted_02() {
X509TrustManagerImpl xtm = new X509TrustManagerImpl();
X509Certificate[] xcert = setInvalid();
try {
xtm.checkClientTrusted(xcert, "SSL");
fail("CertificateException wasn't thrown");
} catch (CertificateException ce) {
//expected
}
}
/**
* javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[] chain, String authType)
*/
public void test_checkClientTrusted_03() {
X509TrustManagerImpl xtm = new X509TrustManagerImpl();
X509Certificate[] xcert = setX509Certificate();
try {
xtm.checkClientTrusted(xcert, "SSL");
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
/**
* javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
*/
public void test_checkServerTrusted_01() {
X509TrustManagerImpl xtm = new X509TrustManagerImpl();
X509Certificate[] xcert = null;
try {
xtm.checkServerTrusted(xcert, "SSL");
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
xcert = new X509Certificate[0];
try {
xtm.checkServerTrusted(xcert, "SSL");
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
xcert = setX509Certificate();
try {
xtm.checkServerTrusted(xcert, null);
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
try {
xtm.checkServerTrusted(xcert, "");
fail("IllegalArgumentException wasn't thrown");
} catch (IllegalArgumentException iae) {
//expected
} catch (Exception e) {
fail(e + " was thrown instead of IllegalArgumentException");
}
}
/**
* javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
*/
public void test_checkServerTrusted_02() {
X509TrustManagerImpl xtm = new X509TrustManagerImpl();
X509Certificate[] xcert = setInvalid();
try {
xtm.checkServerTrusted(xcert, "SSL");
fail("CertificateException wasn't thrown");
} catch (CertificateException ce) {
//expected
}
}
/**
* javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[] chain, String authType)
*/
public void test_checkServerTrusted_03() {
X509TrustManagerImpl xtm = new X509TrustManagerImpl();
X509Certificate[] xcert = setX509Certificate();
try {
xtm.checkServerTrusted(xcert, "SSL");
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
/**
* javax.net.ssl.X509TrustManager#getAcceptedIssuers()
*/
public void test_getAcceptedIssuers() {
X509TrustManagerImpl xtm = new X509TrustManagerImpl();
try {
assertNotNull(xtm.getAcceptedIssuers());
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
}