- KeyPair kp = generateKeypair();
- String key1 = generatePEMCSR(kp, "CN=testmail@example.com");
- Certificate c = new Certificate(u, Certificate.buildDN("CN", "testmail@example.com"), "sha256", key1, CSRType.CSR, CertificateProfile.getById(1));
- final PrivateKey pk = kp.getPrivate();
- c.issue(null, "2y").waitFor(60000);
- final X509Certificate ce = c.cert();
- HttpURLConnection connection = (HttpURLConnection) new URL("https://" + getServerName().replaceFirst("^www.", "api.") + "/account/certs/new").openConnection();
+ String cert = issueCert(generatePEMCSR(kp, "EMAIL=" + email + ",CN=CAcert WoT User"), "profile=client");
+
+ CertificateFactory cf = CertificateFactory.getInstance("X509");
+ java.security.cert.X509Certificate xcert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(cert.getBytes("UTF-8")));
+ assertEquals("CAcert WoT User", ((X500Name) xcert.getSubjectDN()).getCommonName());
+
+ }
+
+ @Test
+ public void testRevoke() throws Exception {
+ revoke(c.getSerial().toLowerCase());
+ assertEquals(CertificateStatus.REVOKED, c.getStatus());
+ }
+
+ @Test
+ public void testIssueCertAssured() throws Exception {
+ makeAssurer(id);
+
+ Name n = u.getName();
+ String whishName = n.getFname() + " " + n.getLname();
+ String cert = issueCert(generatePEMCSR(kp, "EMAIL=" + email + ",CN=" + whishName), "profile=client-a");
+
+ CertificateFactory cf = CertificateFactory.getInstance("X509");
+ java.security.cert.X509Certificate xcert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(cert.getBytes("UTF-8")));
+ assertEquals(whishName, ((X500Name) xcert.getSubjectDN()).getCommonName());
+
+ }
+
+ @Test
+ public void testIssueOrgCert() throws Exception {
+ makeAssurer(id);
+ u.grantGroup(u, Group.ORGASSURER);
+
+ Organisation o1 = new Organisation("name", "st", "pr", "st", "test@mail", "", "", u);
+ o1.addAdmin(u, u, false);
+ String testdom = createUniqueName() + "-example.com";
+ Domain d2 = new Domain(u, o1, testdom);
+ verify(d2);
+
+ String whishName = createUniqueName();
+ String cert = issueCert(generatePEMCSR(kp, "EMAIL=test@" + testdom + ",CN=" + whishName), "profile=client-orga&asOrg=" + o1.getId());
+
+ CertificateFactory cf = CertificateFactory.getInstance("X509");
+ java.security.cert.X509Certificate xcert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(cert.getBytes("UTF-8")));
+ assertEquals(whishName, ((X500Name) xcert.getSubjectDN()).getCommonName());
+
+ }
+
+ private String issueCert(String csr, String options) throws IOException, GeneralSecurityException {
+ HttpURLConnection connection = (HttpURLConnection) new URL("https://" + getServerName().replaceFirst("^www.", "api.") + CreateCertificate.PATH).openConnection();