X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=tests%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FTestCertificateAdd.java;h=4d6529db3197554802749bfefeee3430c04db9aa;hb=d40f5d54f3332e655eb64e75c34bf4212e610710;hp=5aebe2d87698d1fdc769f61b34075805c23a64a1;hpb=952f3ddd9438cf10ba25a5d9f1e9d8a04d75e0dc;p=gigi.git diff --git a/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java b/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java index 5aebe2d8..4d6529db 100644 --- a/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java +++ b/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java @@ -31,6 +31,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.cacert.gigi.crypto.SPKAC; +import org.cacert.gigi.dbObjects.CertificateOwner; import org.cacert.gigi.dbObjects.Digest; import org.cacert.gigi.pages.account.certs.CertificateAdd; import org.cacert.gigi.pages.account.certs.CertificateRequest; @@ -58,6 +59,8 @@ public class TestCertificateAdd extends ClientTest { private static class OnPageError extends Error { + private static final long serialVersionUID = 1L; + public OnPageError(String page) { super(page); } @@ -82,7 +85,7 @@ public class TestCertificateAdd extends ClientTest { String[] res = fillOutForm("CSR=" + URLEncoder.encode(pem, "UTF-8")); assertArrayEquals(new String[] { - "server", "CAcert WoT User", "dns:a." + uniq + ".tld\ndns:" + uniq + ".tld\n", Digest.SHA256.toString() + "server", CertificateRequest.DEFAULT_CN, "dns:a." + uniq + ".tld\ndns:" + uniq + ".tld\n", Digest.SHA256.toString() }, res); } @@ -138,7 +141,7 @@ public class TestCertificateAdd extends ClientTest { huc.setDoOutput(true); OutputStream out = huc.getOutputStream(); out.write(("csrf=" + URLEncoder.encode(csrf, "UTF-8")).getBytes("UTF-8")); - out.write(("&CN=CAcert+WoT+User&profile=client&SANs=" + URLEncoder.encode("email:" + email + "\n", "UTF-8")).getBytes("UTF-8")); + out.write(("&CN=" + URLEncoder.encode(CertificateRequest.DEFAULT_CN, "UTF-8") + "&profile=client&SANs=" + URLEncoder.encode("email:" + email + "\n", "UTF-8")).getBytes("UTF-8")); out.write(("&hash_alg=SHA512").getBytes("UTF-8")); URLConnection uc = authenticate(new URL(huc.getHeaderField("Location") + ".crt")); String crt = IOUtils.readURL(new InputStreamReader(uc.getInputStream(), "UTF-8")); @@ -163,7 +166,7 @@ public class TestCertificateAdd extends ClientTest { Certificate c = CertificateFactory.getInstance("X509").generateCertificate(new ByteArrayInputStream(cert)); gui = c.toString(); assertThat(gui, containsString("clientAuth")); - assertThat(gui, containsString("CN=CAcert WoT User")); + assertThat(gui, containsString("CN=" + CertificateRequest.DEFAULT_CN)); assertThat(gui, containsString("SHA512withRSA")); assertThat(gui, containsString("RFC822Name: " + email)); @@ -222,14 +225,14 @@ public class TestCertificateAdd extends ClientTest { Date start = new Date(now); Date end = new Date(now + MS_PER_DAY * 10); String validity = "&validFrom=" + sdf.format(start) + "&validity=" + sdf.format(end); - X509Certificate res = createCertWithValidity(validity); + X509Certificate res = createCertWithValidity(validity, false); assertNotNull(validity, res); assertEquals(start, res.getNotBefore()); assertEquals(end, res.getNotAfter()); } private void testCertificateValidityRelative(int field, int amount, String length, boolean shouldsucceed) throws IOException, GeneralSecurityException, UnsupportedEncodingException, MalformedURLException, CertificateException { - X509Certificate parsed = createCertWithValidity("&validFrom=now&validity=" + length); + X509Certificate parsed = createCertWithValidity("&validFrom=now&validity=" + length, false); if (parsed == null) { assertTrue( !shouldsucceed); return; @@ -248,7 +251,7 @@ public class TestCertificateAdd extends ClientTest { assertEquals(c.getTime(), end); } - private X509Certificate createCertWithValidity(String validity) throws IOException, GeneralSecurityException, UnsupportedEncodingException, MalformedURLException, CertificateException { + private X509Certificate createCertWithValidity(String validity, boolean login) throws IOException, GeneralSecurityException, UnsupportedEncodingException, MalformedURLException, CertificateException { PKCS10Attributes atts = buildAtts(new ObjectIdentifier[] { CertificateRequest.OID_KEY_USAGE_SSL_CLIENT }, new RFC822Name(email)); @@ -263,6 +266,9 @@ public class TestCertificateAdd extends ClientTest { out.write(("csrf=" + URLEncoder.encode(csrf, "UTF-8")).getBytes("UTF-8")); out.write(("&profile=client&CN=" + CertificateRequest.DEFAULT_CN + "&SANs=" + URLEncoder.encode("email:" + email + "\n", "UTF-8")).getBytes("UTF-8")); out.write(("&hash_alg=SHA512&").getBytes("UTF-8")); + if (login) { + out.write(("login=1&").getBytes("UTF-8")); + } out.write(validity.getBytes("UTF-8")); String certurl = huc.getHeaderField("Location"); @@ -368,4 +374,13 @@ public class TestCertificateAdd extends ClientTest { String resultingCN = m.group(1); return resultingCN; } + + @Test + public void testSetLoginEnabled() throws IOException, GeneralSecurityException { + X509Certificate parsedLoginNotEnabled = createCertWithValidity("&validFrom=now&validity=1m", false); + assertNull(CertificateOwner.getByEnabledSerial(parsedLoginNotEnabled.getSerialNumber().toString(16))); + + X509Certificate parsedLoginEnabled = createCertWithValidity("&validFrom=now&validity=1m", true); + assertEquals(u, CertificateOwner.getByEnabledSerial(parsedLoginEnabled.getSerialNumber().toString(16))); + } }