X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FIssueCertificateForm.java;h=da3a85b3a6f945abfa56acd02f0674fe74e4f178;hb=edd3dc5109f2dbeaf1797c7643d85ba36d0b3763;hp=a318408078ac5368e1f49bdc2e9727c976ac6791;hpb=b789f288b3c328442c15ce0bc45602d060b679de;p=gigi.git diff --git a/src/org/cacert/gigi/pages/account/IssueCertificateForm.java b/src/org/cacert/gigi/pages/account/IssueCertificateForm.java index a3184080..da3a85b3 100644 --- a/src/org/cacert/gigi/pages/account/IssueCertificateForm.java +++ b/src/org/cacert/gigi/pages/account/IssueCertificateForm.java @@ -7,19 +7,19 @@ import java.security.PublicKey; import java.security.interfaces.DSAPublicKey; import java.security.interfaces.ECPublicKey; import java.security.interfaces.RSAPublicKey; -import java.sql.PreparedStatement; -import java.sql.ResultSet; import java.sql.SQLException; import java.util.Base64; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; + import org.cacert.gigi.Certificate; import org.cacert.gigi.Digest; +import org.cacert.gigi.EmailAddress; import org.cacert.gigi.Language; import org.cacert.gigi.User; -import org.cacert.gigi.database.DatabaseConnection; +import org.cacert.gigi.Certificate.CSRType; import org.cacert.gigi.output.Form; import org.cacert.gigi.output.template.HashAlgorithms; import org.cacert.gigi.output.template.IterableDataset; @@ -48,6 +48,7 @@ public class IssueCertificateForm extends Form { } Certificate result; + private CSRType csrType; public Certificate getResult() { return result; @@ -56,7 +57,7 @@ public class IssueCertificateForm extends Form { @Override public boolean submit(PrintWriter out, HttpServletRequest req) { String csr = req.getParameter("CSR"); - String spkac = req.getParameter("spkac"); + String spkac = req.getParameter("SPKAC"); try { if (csr != null) { PKCS10 parsed = parseCSR(csr); @@ -80,8 +81,10 @@ public class IssueCertificateForm extends Form { } out.println("
digest: sha256
"); this.csr = csr; + this.csrType = CSRType.CSR; } else if (spkac != null) { - + this.csr = "SPKAC=" + spkac.replaceAll("[\r\n]", ""); + this.csrType = CSRType.SPKAC; } else { login = "1".equals(req.getParameter("login")); String hashAlg = req.getParameter("hash_alg"); @@ -94,10 +97,9 @@ public class IssueCertificateForm extends Form { } System.out.println("issuing " + selectedDigest); result = new Certificate(LoginPage.getUser(req).getId(), "/commonName=CAcert WoT User", - selectedDigest.toString(), this.csr); - result.issue(); + selectedDigest.toString(), this.csr, this.csrType); try { - result.waitFor(60000); + result.issue().waitFor(60000); return true; } catch (SQLException e) { e.printStackTrace(); @@ -129,33 +131,23 @@ public class IssueCertificateForm extends Form { HashMap vars2 = new HashMap(vars); vars2.put("CCA", "CCA"); - try { - PreparedStatement ps = DatabaseConnection.getInstance().prepare( - "SELECT `id`,`email` from `email` WHERE `memid`=? AND `deleted`=0"); - ps.setInt(1, u.getId()); - final ResultSet rs = ps.executeQuery(); - vars2.put("emails", new IterableDataset() { + final EmailAddress[] ea = u.getEmails(); + vars2.put("emails", new IterableDataset() { + int count; - @Override - public boolean next(Language l, Map vars) { - try { - if (!rs.next()) { - return false; - } - vars.put("id", rs.getString(1)); - vars.put("value", rs.getString(2)); - return true; - } catch (SQLException e) { - e.printStackTrace(); - } + @Override + public boolean next(Language l, Map vars) { + if (count >= ea.length) { return false; } - }); - vars2.put("hashs", new HashAlgorithms(selectedDigest)); - t.output(out, l, vars2); - } catch (SQLException e) { - e.printStackTrace(); - } + vars.put("id", ea[count].getId()); + vars.put("value", ea[count].getAddress()); + count++; + return true; + } + }); + vars2.put("hashs", new HashAlgorithms(selectedDigest)); + t.output(out, l, vars2); } }