X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Fclub%2Fwpia%2Fgigi%2Fpages%2Faccount%2Fcerts%2FCertificates.java;h=a11978a4405a42a17f2f3331def9552723e33fb9;hb=75c38b20dbfb17c78cd7af219761948295bb0ba3;hp=78d8a09f1fa696dfb9d9b1623a92926376e6ef7c;hpb=a507c4de2568faaf53bb8d6e003ffbe1ced5d539;p=gigi.git diff --git a/src/club/wpia/gigi/pages/account/certs/Certificates.java b/src/club/wpia/gigi/pages/account/certs/Certificates.java index 78d8a09f..a11978a4 100644 --- a/src/club/wpia/gigi/pages/account/certs/Certificates.java +++ b/src/club/wpia/gigi/pages/account/certs/Certificates.java @@ -2,6 +2,7 @@ package club.wpia.gigi.pages.account.certs; import java.io.IOException; import java.io.PrintWriter; +import java.math.BigInteger; import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.security.cert.X509Certificate; @@ -62,17 +63,14 @@ public class Certificates extends Page implements HandlesMixedRequest { boolean crt = false; boolean cer = false; resp.setContentType("application/pkix-cert"); - if (req.getParameter("install") != null) { - resp.setContentType("application/x-x509-user-cert"); - } - if (pi.endsWith(".crt")) { + if (pi.endsWith(".crt") || pi.endsWith(".pem")) { crt = true; pi = pi.substring(0, pi.length() - 4); } else if (pi.endsWith(".cer")) { cer = true; pi = pi.substring(0, pi.length() - 4); } - String serial = pi; + BigInteger serial = new BigInteger(pi, 16); try { Certificate c = Certificate.getBySerial(serial); if (c == null || ( !support && LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId())) { @@ -144,7 +142,7 @@ public class Certificates extends Page implements HandlesMixedRequest { pi = pi.substring(1); String serial = pi; - Certificate c = Certificate.getBySerial(serial); + Certificate c = Certificate.getBySerial(new BigInteger(serial, 16)); Language l = LoginPage.getLanguage(req); if (c == null || ( !support && LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId())) { @@ -182,8 +180,15 @@ public class Certificates extends Page implements HandlesMixedRequest { vars.put("DN", c.getDistinguishedName()); vars.put("digest", c.getMessageDigest()); vars.put("profile", c.getProfile().getVisibleName()); - vars.put("fingerprint", "TBD"); // TODO function needs to be - // implemented in Certificate.java + try { + vars.put("fingerprintSHA1", c.getFingerprint("sha-1")); + vars.put("fingerprintSHA256", c.getFingerprint("sha-256")); + } catch (GeneralSecurityException e) { + e.printStackTrace(); + } catch (GigiApiException e) { + e.format(out, l, getDefaultVars(req)); + } + try { if (st == CertificateStatus.ISSUED || st == CertificateStatus.REVOKED) { @@ -231,7 +236,7 @@ public class Certificates extends Page implements HandlesMixedRequest { } catch (GeneralSecurityException e) { e.printStackTrace(); } catch (GigiApiException e) { - e.format(out, l); + e.format(out, l, getDefaultVars(req)); } certDisplay.output(out, getLanguage(req), vars);