X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailCertificates.java;h=b725dda076bc7c6a893f2c79bc58bda09ae56d31;hb=2a55aad15a217b2410c79f23e42605186028ac38;hp=e0dd947a06d3dfe37c47683f4c3ec9b8ee3e3b5a;hpb=baa0986163014f20ca273c1502754940f60b7d41;p=gigi.git
diff --git a/src/org/cacert/gigi/pages/account/MailCertificates.java b/src/org/cacert/gigi/pages/account/MailCertificates.java
index e0dd947a..b725dda0 100644
--- a/src/org/cacert/gigi/pages/account/MailCertificates.java
+++ b/src/org/cacert/gigi/pages/account/MailCertificates.java
@@ -7,7 +7,6 @@ import java.security.cert.X509Certificate;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.Base64;
import java.util.HashMap;
import javax.servlet.ServletOutputStream;
@@ -20,129 +19,128 @@ import org.cacert.gigi.database.DatabaseConnection;
import org.cacert.gigi.output.CertificateTable;
import org.cacert.gigi.pages.LoginPage;
import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.PEM;
public class MailCertificates extends Page {
- CertificateTable myTable = new CertificateTable("mailcerts");
- public static final String PATH = "/account/certs/email";
-
- public MailCertificates() {
- super("Email Certificates");
- }
-
- @Override
- public boolean beforeTemplate(HttpServletRequest req, HttpServletResponse resp) throws IOException {
- String pi = req.getPathInfo().substring(PATH.length());
- if (pi.length() == 0) {
- return false;
- }
- pi = pi.substring(1);
- boolean crt = false;
- boolean cer = false;
- if (pi.endsWith(".crt")) {
- crt = true;
- pi = pi.substring(0, pi.length() - 4);
- } else if (pi.endsWith(".cer")) {
- cer = true;
- pi = pi.substring(0, pi.length() - 4);
- }
- int serial = 0;
- try {
- serial = Integer.parseInt(pi);
- } catch (NumberFormatException nfe) {
- resp.sendError(404);
- return true;
- }
- try {
- Certificate c = new Certificate(serial);
- if (LoginPage.getUser(req).getId() != c.getOwnerId()) {
- resp.sendError(404);
- return true;
- }
- X509Certificate cert = c.cert();
- if (!crt && !cer) {
- return false;
- }
- ServletOutputStream out = resp.getOutputStream();
- if (crt) {
- out.println("-----BEGIN CERTIFICATE-----");
- String block = Base64.getEncoder().encodeToString(cert.getEncoded()).replaceAll("(.{64})(?=.)", "$1\n");
- out.println(block);
- out.println("-----END CERTIFICATE-----");
- } else if (cer) {
- out.write(cert.getEncoded());
- }
- } catch (IllegalArgumentException e) {
- resp.sendError(404);
- return true;
- } catch (GeneralSecurityException e) {
- resp.sendError(404);
- return true;
- } catch (SQLException e) {
- resp.sendError(404);
- return true;
- }
-
- return true;
- }
-
- @Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
- PrintWriter out = resp.getWriter();
- String pi = req.getPathInfo().substring(PATH.length());
- if (pi.length() != 0) {
- pi = pi.substring(1);
-
- int serial = 0;
- try {
- serial = Integer.parseInt(pi);
- } catch (NumberFormatException nfe) {
- }
- Certificate c = null;
- if (serial != 0) {
- c = new Certificate(serial);
- }
- if (c == null || LoginPage.getUser(req).getId() != c.getOwnerId()) {
- resp.sendError(404);
- return;
- }
- out.print("");
- out.print(translate(req, "PEM encoded Certificate"));
- out.println("
");
-
- out.print("");
- out.print(translate(req, "DER encoded Certificate"));
- out.println("
");
-
- out.println("
"); - try { - X509Certificate cert = c.cert(); - out.print(cert); - } catch (GeneralSecurityException e) { - e.printStackTrace(); - } catch (SQLException e) { - e.printStackTrace(); - } - out.println(""); - return; - } - - HashMap
"); + try { + X509Certificate cert = c.cert(); + out.print(cert); + } catch (GeneralSecurityException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + out.println(""); + return; + } + + HashMap