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);
}
}