1 package org.cacert.gigi.output;
3 import java.io.IOException;
4 import java.security.GeneralSecurityException;
5 import java.security.cert.X509Certificate;
8 import org.cacert.gigi.dbObjects.Certificate;
9 import org.cacert.gigi.dbObjects.Certificate.CertificateStatus;
10 import org.cacert.gigi.localisation.Language;
11 import org.cacert.gigi.output.template.IterableDataset;
13 public class CertificateIterable implements IterableDataset {
15 private Certificate[] certificates;
17 public CertificateIterable(Certificate[] certificates) {
18 this.certificates = certificates;
24 public boolean next(Language l, Map<String, Object> vars) {
25 if (i >= certificates.length) {
28 Certificate c = certificates[i++];
29 vars.put("state", c.getStatus());
30 vars.put("CN", c.getDistinguishedName());
31 vars.put("serial", c.getSerial());
32 vars.put("digest", c.getMessageDigest());
33 vars.put("profile", c.getProfile().getVisibleName());
35 CertificateStatus st = c.getStatus();
36 vars.put("revokable", st != CertificateStatus.REVOKED && st == CertificateStatus.ISSUED);
37 if (st == CertificateStatus.ISSUED || st == CertificateStatus.REVOKED) {
38 X509Certificate cert = c.cert();
39 vars.put("issued", cert.getNotBefore());
40 vars.put("expire", cert.getNotAfter());
42 vars.put("issued", l.getTranslation("N/A"));
43 vars.put("expire", l.getTranslation("N/A"));
45 if (st == CertificateStatus.REVOKED) {
46 vars.put("revoked", c.getRevocationDate());
48 vars.put("revoked", "n/a");
50 } catch (IOException e) {
52 } catch (GeneralSecurityException e) {