X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2Fping%2FTestSSL.java;h=ab41ca510a11014f5adaefb5dda3469c533cb4a1;hp=007d570b435b6ff32e15420f209610cb47d94c5b;hb=d7be034f96e06985f57d86d2779c434276b5bd4d;hpb=a793cf333e23cba27e2ce4378becc0426f1e186a diff --git a/tests/org/cacert/gigi/ping/TestSSL.java b/tests/org/cacert/gigi/ping/TestSSL.java index 007d570b..ab41ca51 100644 --- a/tests/org/cacert/gigi/ping/TestSSL.java +++ b/tests/org/cacert/gigi/ping/TestSSL.java @@ -3,9 +3,9 @@ package org.cacert.gigi.ping; import static org.junit.Assert.*; import static org.junit.Assume.*; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.net.Socket; -import java.net.URL; import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.security.KeyManagementException; @@ -15,8 +15,14 @@ import java.security.Principal; import java.security.PrivateKey; import java.security.SecureRandom; import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.sql.SQLException; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -27,23 +33,80 @@ import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509KeyManager; import javax.net.ssl.X509TrustManager; +import javax.security.auth.x500.X500Principal; import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.database.DatabaseConnection; +import org.cacert.gigi.database.DatabaseConnection.Link; import org.cacert.gigi.dbObjects.Certificate; import org.cacert.gigi.dbObjects.Certificate.CSRType; import org.cacert.gigi.dbObjects.CertificateProfile; +import org.cacert.gigi.dbObjects.Digest; import org.cacert.gigi.dbObjects.User; -import org.cacert.gigi.pages.account.domain.DomainOverview; import org.cacert.gigi.testUtils.IOUtils; import org.cacert.gigi.testUtils.PingTest; -import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; +import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail; +import org.cacert.gigi.util.SimpleSigner; import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameter; +import org.junit.runners.Parameterized.Parameters; +@RunWith(Parameterized.class) public class TestSSL extends PingTest { + @Parameters(name = "self-signed = {0}") + public static Iterable genParams() throws IOException { + return Arrays.asList(new Object[] { + true + }, new Object[] { + false + }); + + } + + @Parameter + public Boolean self = false; + + public abstract static class AsyncTask { + + T res; + + Thread runner; + + Exception ex; + + public T join() throws InterruptedException { + runner.join(); + if (ex != null) { + throw new Error(ex); + } + return res; + } + + public void start() { + runner = new Thread() { + + @Override + public void run() { + try { + res = AsyncTask.this.run(); + } catch (Exception e) { + ex = e; + } + } + }; + runner.start(); + } + + public abstract T run() throws Exception; + + } + private KeyPair kp; - private Certificate c; + private X509Certificate c; @Test(timeout = 70000) public void sslAndMailSuccess() throws IOException, InterruptedException, SQLException, GeneralSecurityException, GigiApiException { @@ -70,6 +133,12 @@ public class TestSSL extends PingTest { testEmailAndSSL(1, 1, false); } + private void testEmailAndSSL(int sslVariant, int emailVariant, boolean successMail) throws IOException, InterruptedException, SQLException, GeneralSecurityException, GigiApiException { + try (Link link = DatabaseConnection.newLink(false)) { + testEmailAndSSLWithLink(sslVariant, emailVariant, successMail); + } + } + /** * @param sslVariant *