]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/MailCertificateAdd.java
97038898e8e704619dead0ded5b15f57eee6f66b
[gigi.git] / src / org / cacert / gigi / pages / account / MailCertificateAdd.java
1 package org.cacert.gigi.pages.account;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.security.GeneralSecurityException;
6 import java.sql.SQLException;
7 import java.util.HashMap;
8
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 import org.cacert.gigi.Certificate;
13 import org.cacert.gigi.output.ClientCSRGenerate;
14 import org.cacert.gigi.pages.Page;
15
16 public class MailCertificateAdd extends Page {
17         public static final String PATH = "/account/certs/email/new";
18
19         public MailCertificateAdd() {
20                 super("Create Email certificate");
21         }
22
23         @Override
24         public void doGet(HttpServletRequest req, HttpServletResponse resp)
25                         throws IOException {
26                 HashMap<String, Object> vars = new HashMap<String, Object>();
27                 vars.put("CCA",
28                                 "<a href='/policy/CAcertCommunityAgreement.html'>CCA</a>");
29                 getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
30         }
31         @Override
32         public void doPost(HttpServletRequest req, HttpServletResponse resp)
33                         throws IOException {
34                 PrintWriter out = resp.getWriter();
35                 if (req.getParameter("optionalCSR") == null
36                                 || req.getParameter("optionalCSR").equals("")) {
37                         out.println("csr missing");
38                         ClientCSRGenerate.output(req, resp);
39                 }
40                 String csr = req.getParameter("optionalCSR");
41                 if (!"on".equals(req.getParameter("CCA"))) {
42                         // Error.
43                         return;
44                 }
45                 Certificate c = new Certificate("/commonName=felix@dogcraft.de",
46                                 "sha256", csr);
47                 c.issue();
48                 try {
49                         c.waitFor(60000);
50                         out.println(c.getStatus());
51                         out.println(c.cert());
52                 } catch (SQLException e1) {
53                         e1.printStackTrace();
54                 } catch (GeneralSecurityException e) {
55                         e.printStackTrace();
56                 } catch (InterruptedException e) {
57                         e.printStackTrace();
58                 }
59         }
60
61 }