X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fcacert%2Fgigi%2FCertificate.java;h=693ef31c14e3b29e08dc54f0b9b271f718c8b9d3;hb=2284a6ea89d3bd34476222e939a688a90e333635;hp=378b3a7001fc10e39fc01589eee794ce5ca2356a;hpb=59d0c083b6d155d227fbc3ce896922a15cc7846d;p=gigi.git diff --git a/src/org/cacert/gigi/Certificate.java b/src/org/cacert/gigi/Certificate.java index 378b3a70..693ef31c 100644 --- a/src/org/cacert/gigi/Certificate.java +++ b/src/org/cacert/gigi/Certificate.java @@ -18,7 +18,7 @@ import org.cacert.gigi.util.KeyStorage; public class Certificate { private int id; private int ownerId; - private int serial; + private String serial; private String dn; private String md; private String csrName; @@ -32,11 +32,11 @@ public class Certificate { this.csr = csr; } - public Certificate(int serial) { + private Certificate(String serial) { try { PreparedStatement ps = DatabaseConnection.getInstance().prepare( "SELECT id,subject, md, csr_name, crt_name,memid FROM `emailcerts` WHERE serial=?"); - ps.setInt(1, serial); + ps.setString(1, serial); ResultSet rs = ps.executeQuery(); if (!rs.next()) { throw new IllegalArgumentException("Invalid mid " + serial); @@ -109,7 +109,7 @@ public class Certificate { return CertificateStatus.DRAFT; } PreparedStatement searcher = DatabaseConnection.getInstance().prepare( - "SELECT crt_name, created, revoked, warning FROM emailcerts WHERE id=?"); + "SELECT crt_name, created, revoked, warning, serial FROM emailcerts WHERE id=?"); searcher.setInt(1, id); ResultSet rs = searcher.executeQuery(); if (!rs.next()) { @@ -123,6 +123,7 @@ public class Certificate { return CertificateStatus.SIGNING; } crtName = rs.getString(1); + serial = rs.getString(5); if (rs.getTime(2) != null && rs.getTime(3) == null) { return CertificateStatus.ISSUED; } @@ -214,7 +215,7 @@ public class Certificate { return id; } - public int getSerial() { + public String getSerial() { return serial; } @@ -230,4 +231,14 @@ public class Certificate { return ownerId; } + public static Certificate getBySerial(String serial) { + // TODO caching? + try { + return new Certificate(serial); + } catch (IllegalArgumentException e) { + + } + return null; + } + }