]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/output/CertificateIterable.java
UPD: Only show revoke checkboxes, if the cert is in an revokable state
[gigi.git] / src / org / cacert / gigi / output / CertificateIterable.java
index 261fef196245897d08abf9988398873460771c27..380b7a77ec5c58fff93334e67a185f8c6a9c75d1 100644 (file)
@@ -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", DateSelector.getDateFormat().format(cert.getNotBefore()));
+                vars.put("expire", DateSelector.getDateFormat().format(cert.getNotAfter()));
+            } else {
+                vars.put("issued", l.getTranslation("N/A"));
+                vars.put("expire", l.getTranslation("N/A"));
+            }
+            if (st == CertificateStatus.REVOKED) {
+                vars.put("revoked", DateSelector.getDateFormat().format(c.getRevocationDate()));
+            } else {
+                vars.put("revoked", "n/a");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (GeneralSecurityException e) {
+            e.printStackTrace();
+        }
         return true;
     }
 }