X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FCertificate.java;h=479a183ae82a5c59d80c9ca4ae1649627572ed82;hp=6882b8113018c4c41af40bf54f5844f176a9878b;hb=3256b7b19512a2e161e4ae3a8db706d671dc066f;hpb=280be756fb425fc8148ade698f51528e1e9106c2 diff --git a/src/org/cacert/gigi/dbObjects/Certificate.java b/src/org/cacert/gigi/dbObjects/Certificate.java index 6882b811..479a183a 100644 --- a/src/org/cacert/gigi/dbObjects/Certificate.java +++ b/src/org/cacert/gigi/dbObjects/Certificate.java @@ -132,6 +132,8 @@ public class Certificate { private String dnString; + private CACertificate ca; + public Certificate(User owner, HashMap dn, String md, String csr, CSRType csrType, CertificateProfile profile, SubjectAlternateName... sans) throws GigiApiException { if ( !owner.canIssue(profile)) { throw new GigiApiException("You are not allowed to issue these certificates."); @@ -210,7 +212,7 @@ public class Certificate { if (id == 0) { return CertificateStatus.DRAFT; } - GigiPreparedStatement searcher = DatabaseConnection.getInstance().prepare("SELECT crt_name, created, revoked, serial FROM certs WHERE id=?"); + GigiPreparedStatement searcher = DatabaseConnection.getInstance().prepare("SELECT crt_name, created, revoked, serial, caid FROM certs WHERE id=?"); searcher.setInt(1, id); GigiResultSet rs = searcher.executeQuery(); if ( !rs.next()) { @@ -219,6 +221,7 @@ public class Certificate { crtName = rs.getString(1); serial = rs.getString(4); + ca = CACertificate.getById(rs.getInt("caid")); if (rs.getTimestamp(2) == null) { return CertificateStatus.DRAFT; } @@ -293,6 +296,14 @@ public class Certificate { } + public CACertificate getParent() { + CertificateStatus status = getStatus(); + if (status != CertificateStatus.REVOKED && status != CertificateStatus.ISSUED) { + throw new IllegalStateException(status + " is not wanted here."); + } + return ca; + } + public X509Certificate cert() throws IOException, GeneralSecurityException { CertificateStatus status = getStatus(); if (status != CertificateStatus.REVOKED && status != CertificateStatus.ISSUED) {