X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FTestCertificateAdd.java;h=6009095a9de0be8b9b8f59fd145c01808ab8358f;hb=8d98e8c550a5fc426d7efbd57436dcb61bd41243;hp=6490c4aa6da1ad4f15e3f86b8f22f8a15191b2b0;hpb=52861b747c9687ec8050e73b7c8c7294024634ab;p=gigi.git diff --git a/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java b/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java index 6490c4aa..6009095a 100644 --- a/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java +++ b/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java @@ -31,11 +31,10 @@ import java.util.regex.Pattern; import org.cacert.gigi.crypto.SPKAC; import org.cacert.gigi.dbObjects.Digest; -import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.pages.account.certs.CertificateAdd; -import org.cacert.gigi.pages.account.certs.CertificateIssueForm; +import org.cacert.gigi.pages.account.certs.CertificateRequest; +import org.cacert.gigi.testUtils.ClientTest; import org.cacert.gigi.testUtils.IOUtils; -import org.cacert.gigi.testUtils.ManagedTest; import org.cacert.gigi.util.PEM; import org.junit.Test; @@ -53,25 +52,21 @@ import sun.security.x509.RFC822Name; import sun.security.x509.SubjectAlternativeNameExtension; import sun.security.x509.X509Key; -public class TestCertificateAdd extends ManagedTest { +public class TestCertificateAdd extends ClientTest { KeyPair kp = generateKeypair(); - User u = User.getById(createVerifiedUser("testuser", "testname", uniq + "@testdom.com", TEST_PASSWORD)); - - String session = login(uniq + "@testdom.com", TEST_PASSWORD); - String csrf; public TestCertificateAdd() throws GeneralSecurityException, IOException { - TestDomain.addDomain(session, uniq + ".tld"); + TestDomain.addDomain(cookie, uniq + ".tld"); } @Test public void testSimpleServer() throws IOException, GeneralSecurityException { PKCS10Attributes atts = buildAtts(new ObjectIdentifier[] { - CertificateIssueForm.OID_KEY_USAGE_SSL_SERVER + CertificateRequest.OID_KEY_USAGE_SSL_SERVER }, new DNSName(uniq + ".tld")); String pem = generatePEMCSR(kp, "CN=a." + uniq + ".tld", atts); @@ -85,28 +80,28 @@ public class TestCertificateAdd extends ManagedTest { @Test public void testSimpleMail() throws IOException, GeneralSecurityException { PKCS10Attributes atts = buildAtts(new ObjectIdentifier[] { - CertificateIssueForm.OID_KEY_USAGE_EMAIL_PROTECTION - }, new DNSName("a." + uniq + ".tld"), new DNSName("b." + uniq + ".tld"), new RFC822Name(uniq + "@testdom.com")); + CertificateRequest.OID_KEY_USAGE_EMAIL_PROTECTION + }, new DNSName("a." + uniq + ".tld"), new DNSName("b." + uniq + ".tld"), new RFC822Name(email)); - String pem = generatePEMCSR(kp, "CN=testuser testname", atts, "SHA384WithRSA"); + String pem = generatePEMCSR(kp, "CN=a b", atts, "SHA384WithRSA"); String[] res = fillOutForm("CSR=" + URLEncoder.encode(pem, "UTF-8")); assertArrayEquals(new String[] { - "mail", "testuser testname", "dns:a." + uniq + ".tld\ndns:b." + uniq + ".tld\nemail:" + uniq + "@testdom.com\n", Digest.SHA384.toString() + "mail", "a b", "dns:a." + uniq + ".tld\ndns:b." + uniq + ".tld\nemail:" + email + "\n", Digest.SHA384.toString() }, res); } @Test public void testSimpleClient() throws IOException, GeneralSecurityException { PKCS10Attributes atts = buildAtts(new ObjectIdentifier[] { - CertificateIssueForm.OID_KEY_USAGE_SSL_CLIENT - }, new RFC822Name(uniq + "@testdom.com")); + CertificateRequest.OID_KEY_USAGE_SSL_CLIENT + }, new RFC822Name(email)); - String pem = generatePEMCSR(kp, "CN=testuser testname,email=" + uniq + "@testdom.com", atts, "SHA512WithRSA"); + String pem = generatePEMCSR(kp, "CN=a b,email=" + email, atts, "SHA512WithRSA"); String[] res = fillOutForm("CSR=" + URLEncoder.encode(pem, "UTF-8")); assertArrayEquals(new String[] { - "client", "testuser testname", "email:" + uniq + "@testdom.com\n", Digest.SHA512.toString() + "client", "a b", "email:" + email + "\n", Digest.SHA512.toString() }, res); } @@ -119,22 +114,22 @@ public class TestCertificateAdd extends ManagedTest { @Test public void testIssue() throws IOException, GeneralSecurityException { PKCS10Attributes atts = buildAtts(new ObjectIdentifier[] { - CertificateIssueForm.OID_KEY_USAGE_SSL_CLIENT - }, new RFC822Name(uniq + "@testdom.com")); + CertificateRequest.OID_KEY_USAGE_SSL_CLIENT + }, new RFC822Name(email)); - String pem = generatePEMCSR(kp, "CN=testuser testname,email=" + uniq + "@testdom.com", atts, "SHA512WithRSA"); + String pem = generatePEMCSR(kp, "CN=a b,email=" + email, atts, "SHA512WithRSA"); String[] res = fillOutForm("CSR=" + URLEncoder.encode(pem, "UTF-8")); assertArrayEquals(new String[] { - "client", "testuser testname", "email:" + uniq + "@testdom.com\n", Digest.SHA512.toString() + "client", "a b", "email:" + email + "\n", Digest.SHA512.toString() }, res); HttpURLConnection huc = (HttpURLConnection) ncert.openConnection(); - huc.setRequestProperty("Cookie", session); + huc.setRequestProperty("Cookie", cookie); huc.setDoOutput(true); OutputStream out = huc.getOutputStream(); out.write(("csrf=" + URLEncoder.encode(csrf, "UTF-8")).getBytes()); - out.write(("&profile=client&CN=testuser+testname&SANs=" + URLEncoder.encode("email:" + uniq + "@testdom.com\n", "UTF-8")).getBytes()); + out.write(("&profile=client&CN=a+b&SANs=" + URLEncoder.encode("email:" + email + "\n", "UTF-8")).getBytes()); out.write(("&hash_alg=SHA512&CCA=y").getBytes()); URLConnection uc = authenticate(new URL(huc.getHeaderField("Location") + ".crt")); String crt = IOUtils.readURL(new InputStreamReader(uc.getInputStream(), "UTF-8")); @@ -151,9 +146,9 @@ public class TestCertificateAdd extends ManagedTest { uc = authenticate(new URL(huc.getHeaderField("Location"))); String gui = IOUtils.readURL(uc); assertThat(gui, containsString("clientAuth")); - assertThat(gui, containsString("CN=testuser testname")); + assertThat(gui, containsString("CN=a b")); assertThat(gui, containsString("SHA512withRSA")); - assertThat(gui, containsString("RFC822Name: " + uniq + "@testdom.com")); + assertThat(gui, containsString("RFC822Name: " + email)); } @@ -206,18 +201,18 @@ public class TestCertificateAdd extends ManagedTest { private X509Certificate createCertWithValidity(String validity) throws IOException, GeneralSecurityException, UnsupportedEncodingException, MalformedURLException, CertificateException { PKCS10Attributes atts = buildAtts(new ObjectIdentifier[] { - CertificateIssueForm.OID_KEY_USAGE_SSL_CLIENT - }, new RFC822Name(uniq + "@testdom.com")); + CertificateRequest.OID_KEY_USAGE_SSL_CLIENT + }, new RFC822Name(email)); - String pem = generatePEMCSR(kp, "CN=testuser testname", atts, "SHA512WithRSA"); + String pem = generatePEMCSR(kp, "CN=a b", atts, "SHA512WithRSA"); fillOutForm("CSR=" + URLEncoder.encode(pem, "UTF-8")); HttpURLConnection huc = (HttpURLConnection) ncert.openConnection(); - huc.setRequestProperty("Cookie", session); + huc.setRequestProperty("Cookie", cookie); huc.setDoOutput(true); OutputStream out = huc.getOutputStream(); out.write(("csrf=" + URLEncoder.encode(csrf, "UTF-8")).getBytes()); - out.write(("&profile=client&CN=testuser+testname&SANs=" + URLEncoder.encode("email:" + uniq + "@testdom.com\n", "UTF-8")).getBytes()); + out.write(("&profile=client&CN=a+b&SANs=" + URLEncoder.encode("email:" + email + "\n", "UTF-8")).getBytes()); out.write(("&hash_alg=SHA512&CCA=y&").getBytes()); out.write(validity.getBytes()); @@ -235,13 +230,13 @@ public class TestCertificateAdd extends ManagedTest { private URLConnection authenticate(URL url) throws IOException { URLConnection uc = url.openConnection(); - uc.setRequestProperty("Cookie", session); + uc.setRequestProperty("Cookie", cookie); return uc; } protected String testSPKAC(boolean correctChallange) throws GeneralSecurityException, IOException { HttpURLConnection uc = (HttpURLConnection) ncert.openConnection(); - uc.setRequestProperty("Cookie", session); + uc.setRequestProperty("Cookie", cookie); String s = IOUtils.readURL(uc); csrf = extractPattern(s, Pattern.compile("]*name='csrf' [^>]*value='([^']*)'>")); @@ -256,7 +251,7 @@ public class TestCertificateAdd extends ManagedTest { fail("Should not succeed with wrong challange."); } assertArrayEquals(new String[] { - "client", CertificateIssueForm.DEFAULT_CN, "", Digest.SHA512.toString() + "client", CertificateRequest.DEFAULT_CN, "", Digest.SHA512.toString() }, res); } catch (Error e) { assertTrue(e.getMessage().startsWith("
Challenge mismatch")); @@ -285,7 +280,7 @@ public class TestCertificateAdd extends ManagedTest { private String[] fillOutForm(String pem) throws IOException { HttpURLConnection uc = (HttpURLConnection) ncert.openConnection(); - uc.setRequestProperty("Cookie", session); + uc.setRequestProperty("Cookie", cookie); csrf = getCSRF(uc); return fillOutFormDirect(pem); @@ -294,7 +289,7 @@ public class TestCertificateAdd extends ManagedTest { private String[] fillOutFormDirect(String pem) throws IOException { HttpURLConnection uc = (HttpURLConnection) ncert.openConnection(); - uc.setRequestProperty("Cookie", session); + uc.setRequestProperty("Cookie", cookie); uc.setDoOutput(true); uc.getOutputStream().write(("csrf=" + URLEncoder.encode(csrf, "UTF-8") + "&" + pem).getBytes()); uc.getOutputStream().flush(); @@ -310,7 +305,7 @@ public class TestCertificateAdd extends ManagedTest { } String profileKey = extractPattern(result, Pattern.compile("