X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2FCertificateIterable.java;h=8bfff7ef7a7c4819f92413f6619c6d6948d1cbfb;hb=2befeb9fa40cd353f3a4c8fef355d619e8fadf93;hp=261fef196245897d08abf9988398873460771c27;hpb=3e123160ad59a2e1162518923965562ff947b6d1;p=gigi.git diff --git a/src/org/cacert/gigi/output/CertificateIterable.java b/src/org/cacert/gigi/output/CertificateIterable.java index 261fef19..8bfff7ef 100644 --- a/src/org/cacert/gigi/output/CertificateIterable.java +++ b/src/org/cacert/gigi/output/CertificateIterable.java @@ -1,8 +1,12 @@ package org.cacert.gigi.output; +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.security.cert.X509Certificate; import java.util.Map; import org.cacert.gigi.dbObjects.Certificate; +import org.cacert.gigi.dbObjects.Certificate.CertificateStatus; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.template.IterableDataset; @@ -27,10 +31,27 @@ public class CertificateIterable implements IterableDataset { vars.put("serial", c.getSerial()); vars.put("digest", c.getMessageDigest()); vars.put("profile", c.getProfile().getVisibleName()); - - vars.put("issued", "TODO"); // TODO output dates - vars.put("revoked", "TODO"); - vars.put("expire", "TODO"); + try { + CertificateStatus st = c.getStatus(); + vars.put("revokable", st != CertificateStatus.REVOKED && st == CertificateStatus.ISSUED); + if (st == CertificateStatus.ISSUED || st == CertificateStatus.REVOKED) { + X509Certificate cert = c.cert(); + vars.put("issued", cert.getNotBefore()); + vars.put("expire", cert.getNotAfter()); + } else { + vars.put("issued", l.getTranslation("N/A")); + vars.put("expire", l.getTranslation("N/A")); + } + if (st == CertificateStatus.REVOKED) { + vars.put("revoked", c.getRevocationDate()); + } else { + vars.put("revoked", "n/a"); + } + } catch (IOException e) { + e.printStackTrace(); + } catch (GeneralSecurityException e) { + e.printStackTrace(); + } return true; } }