]> WPIA git - gigi.git/commitdiff
fix: Use correct type in dbObjects.Certificate
authorFelix Dörre <felix@dogcraft.de>
Sat, 7 Nov 2015 17:42:48 +0000 (18:42 +0100)
committerFelix Dörre <felix@dogcraft.de>
Sun, 8 Nov 2015 12:12:54 +0000 (13:12 +0100)
src/org/cacert/gigi/dbObjects/Certificate.java
src/org/cacert/gigi/pages/account/certs/CertificateRequest.java
tests/org/cacert/gigi/TestCertificate.java
tests/org/cacert/gigi/TestCrossDomainAccess.java
tests/org/cacert/gigi/TestSeparateSessionScope.java
tests/org/cacert/gigi/api/IssueCert.java
tests/org/cacert/gigi/ping/TestSSL.java

index 7dabe8cc56087cb52ea5e483720190b06db509a1..7512712da7a43dbb504417f25522595ba071be1c 100644 (file)
@@ -113,7 +113,7 @@ public class Certificate implements IdCachable {
 
     private String serial;
 
-    private String md;
+    private Digest md;
 
     private String csrName;
 
@@ -133,7 +133,7 @@ public class Certificate implements IdCachable {
 
     private CACertificate ca;
 
-    public Certificate(CertificateOwner owner, User actor, HashMap<String, String> dn, String md, String csr, CSRType csrType, CertificateProfile profile, SubjectAlternateName... sans) throws GigiApiException, IOException {
+    public Certificate(CertificateOwner owner, User actor, HashMap<String, String> dn, Digest md, String csr, CSRType csrType, CertificateProfile profile, SubjectAlternateName... sans) throws GigiApiException, IOException {
         if ( !profile.canBeIssuedBy(owner, actor)) {
             throw new GigiApiException("You are not allowed to issue these certificates.");
         }
@@ -151,7 +151,7 @@ public class Certificate implements IdCachable {
         synchronized (Certificate.class) {
 
             GigiPreparedStatement inserter = DatabaseConnection.getInstance().prepare("INSERT INTO certs SET md=?::`mdType`, csr_type=?::`csrType`, crt_name='', memid=?, profile=?");
-            inserter.setString(1, md.toLowerCase());
+            inserter.setString(1, md.toString().toLowerCase());
             inserter.setString(2, csrType.toString());
             inserter.setInt(3, owner.getId());
             inserter.setInt(4, profile.getId());
@@ -191,7 +191,7 @@ public class Certificate implements IdCachable {
     private Certificate(GigiResultSet rs) {
         this.id = rs.getInt("id");
         dnString = rs.getString("subject");
-        md = rs.getString("md");
+        md = Digest.valueOf(rs.getString("md").toUpperCase());
         csrName = rs.getString("csr_name");
         crtName = rs.getString("crt_name");
         owner = CertificateOwner.getById(rs.getInt("memid"));
@@ -334,7 +334,7 @@ public class Certificate implements IdCachable {
         return dnString;
     }
 
-    public String getMessageDigest() {
+    public Digest getMessageDigest() {
         return md;
     }
 
index e8a53df03449e6e07fcb6d5e1b51820927220872..746529492146f30a0e44f23301edcbfdf24e2709 100644 (file)
@@ -430,7 +430,7 @@ public class CertificateRequest {
             throw error;
         }
         try {
-            return new Certificate(ctx.getTarget(), ctx.getActor(), subject, selectedDigest.toString(), //
+            return new Certificate(ctx.getTarget(), ctx.getActor(), subject, selectedDigest, //
                     this.csr, this.csrType, profile, SANs.toArray(new SubjectAlternateName[SANs.size()]));
         } catch (IOException e) {
             e.printStackTrace();
index 2f5dd747fbc0852e6a16ed10222a89ec70356ac6..63aa908f8e7ca367564a08c763e7a9e9398f6c12 100644 (file)
@@ -17,6 +17,7 @@ import org.cacert.gigi.dbObjects.Certificate.CertificateStatus;
 import org.cacert.gigi.dbObjects.Certificate.SANType;
 import org.cacert.gigi.dbObjects.Certificate.SubjectAlternateName;
 import org.cacert.gigi.dbObjects.CertificateProfile;
+import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.testUtils.ManagedTest;
 import org.junit.Test;
@@ -31,7 +32,7 @@ public class TestCertificate extends ManagedTest {
     public void testClientCertLoginStates() throws IOException, GeneralSecurityException, SQLException, InterruptedException, GigiApiException {
         KeyPair kp = generateKeypair();
         String key1 = generatePEMCSR(kp, "CN=testmail@example.com");
-        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), "sha256", key1, CSRType.CSR, CertificateProfile.getById(1));
+        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), Digest.SHA256, key1, CSRType.CSR, CertificateProfile.getById(1));
         final PrivateKey pk = kp.getPrivate();
         c.issue(null, "2y", u).waitFor(60000);
         final X509Certificate ce = c.cert();
@@ -42,7 +43,7 @@ public class TestCertificate extends ManagedTest {
     public void testSANs() throws IOException, GeneralSecurityException, SQLException, InterruptedException, GigiApiException {
         KeyPair kp = generateKeypair();
         String key = generatePEMCSR(kp, "CN=testmail@example.com");
-        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), "sha256", key, CSRType.CSR, CertificateProfile.getById(1),//
+        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), Digest.SHA256, key, CSRType.CSR, CertificateProfile.getById(1),//
                 new SubjectAlternateName(SANType.EMAIL, "testmail@example.com"), new SubjectAlternateName(SANType.DNS, "testmail.example.com"));
 
         testFails(CertificateStatus.DRAFT, c);
@@ -94,7 +95,7 @@ public class TestCertificate extends ManagedTest {
     public void testCertLifeCycle() throws IOException, GeneralSecurityException, SQLException, InterruptedException, GigiApiException {
         KeyPair kp = generateKeypair();
         String key = generatePEMCSR(kp, "CN=testmail@example.com");
-        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), "sha256", key, CSRType.CSR, CertificateProfile.getById(1));
+        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), Digest.SHA256, key, CSRType.CSR, CertificateProfile.getById(1));
         final PrivateKey pk = kp.getPrivate();
 
         testFails(CertificateStatus.DRAFT, c);
index 7bc9c317e91908bb083aa0b19222acd6b21c71c9..95f2380fb68c9a338ddce56ca9ad74da09bdd77c 100644 (file)
@@ -15,6 +15,7 @@ import java.sql.SQLException;
 import org.cacert.gigi.dbObjects.Certificate;
 import org.cacert.gigi.dbObjects.Certificate.CSRType;
 import org.cacert.gigi.dbObjects.CertificateProfile;
+import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.testUtils.IOUtils;
 import org.cacert.gigi.testUtils.ManagedTest;
@@ -48,7 +49,7 @@ public class TestCrossDomainAccess extends ManagedTest {
         User u = User.getById(createVerifiedUser("fn", "ln", "testmail@example.com", TEST_PASSWORD));
         KeyPair kp = generateKeypair();
         String key = generatePEMCSR(kp, "CN=testmail@example.com");
-        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), "sha256", key, CSRType.CSR, CertificateProfile.getById(1));
+        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), Digest.SHA256, key, CSRType.CSR, CertificateProfile.getById(1));
         final PrivateKey pk = kp.getPrivate();
         c.issue(null, "2y", u).waitFor(60000);
 
index f80c216c4877eec95cece080551d376b8254eb25..9d2ff10c411ed21bfd67eb4ea5d692f5566f6fbc 100644 (file)
@@ -16,6 +16,7 @@ import java.sql.SQLException;
 import org.cacert.gigi.dbObjects.Certificate;
 import org.cacert.gigi.dbObjects.Certificate.CSRType;
 import org.cacert.gigi.dbObjects.CertificateProfile;
+import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.dbObjects.Job;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.testUtils.ManagedTest;
@@ -31,7 +32,7 @@ public class TestSeparateSessionScope extends ManagedTest {
         KeyPair kp = generateKeypair();
         String csr = generatePEMCSR(kp, "CN=hans");
         User u = User.getById(user);
-        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "hans"), "sha256", csr, CSRType.CSR, CertificateProfile.getById(1));
+        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "hans"), Digest.SHA256, csr, CSRType.CSR, CertificateProfile.getById(1));
         final PrivateKey pk = kp.getPrivate();
         c.issue(null, "2y", u).waitFor(60000);
         final X509Certificate ce = c.cert();
@@ -51,8 +52,8 @@ public class TestSeparateSessionScope extends ManagedTest {
         KeyPair kp = generateKeypair();
         String csr = generatePEMCSR(kp, "CN=hans");
         User u = User.getById(user);
-        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "hans"), "sha256", csr, CSRType.CSR, CertificateProfile.getById(1));
-        Certificate c2 = new Certificate(u, u, Certificate.buildDN("CN", "hans"), "sha256", csr, CSRType.CSR, CertificateProfile.getById(1));
+        Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "hans"), Digest.SHA256, csr, CSRType.CSR, CertificateProfile.getById(1));
+        Certificate c2 = new Certificate(u, u, Certificate.buildDN("CN", "hans"), Digest.SHA256, csr, CSRType.CSR, CertificateProfile.getById(1));
         final PrivateKey pk = kp.getPrivate();
         Job j1 = c.issue(null, "2y", u);
         c2.issue(null, "2y", u).waitFor(60000);
index b49435910655b6572303dacdf812a429c670d29f..0a66a417755ccc2855a39683716383947d3cd166 100644 (file)
@@ -16,6 +16,7 @@ import java.security.cert.X509Certificate;
 import org.cacert.gigi.dbObjects.Certificate;
 import org.cacert.gigi.dbObjects.Certificate.CSRType;
 import org.cacert.gigi.dbObjects.CertificateProfile;
+import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.testUtils.ClientTest;
 import org.cacert.gigi.testUtils.IOUtils;
 import org.junit.Test;
@@ -28,7 +29,7 @@ public class IssueCert extends ClientTest {
     public void testIssueCert() throws Exception {
         KeyPair kp = generateKeypair();
         String key1 = generatePEMCSR(kp, "EMAIL=testmail@example.com");
-        Certificate c = new Certificate(u, u, Certificate.buildDN("EMAIL", "testmail@example.com"), "sha256", key1, CSRType.CSR, CertificateProfile.getById(1));
+        Certificate c = new Certificate(u, u, Certificate.buildDN("EMAIL", "testmail@example.com"), Digest.SHA256, key1, CSRType.CSR, CertificateProfile.getById(1));
         final PrivateKey pk = kp.getPrivate();
         c.issue(null, "2y", u).waitFor(60000);
         final X509Certificate ce = c.cert();
index 01386c5344f9b84bd54f5c847dcb78529f774329..f1aa3732758b7e082ded144f96acf17629bb89b6 100644 (file)
@@ -32,6 +32,7 @@ import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Certificate;
 import org.cacert.gigi.dbObjects.Certificate.CSRType;
 import org.cacert.gigi.dbObjects.CertificateProfile;
+import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.pages.account.domain.DomainOverview;
 import org.cacert.gigi.testUtils.IOUtils;
@@ -186,7 +187,7 @@ public class TestSSL extends PingTest {
         kp = generateKeypair();
         String csr = generatePEMCSR(kp, "CN=" + test);
         User u = User.getById(id);
-        c = new Certificate(u, u, Certificate.buildDN("CN", test), "sha256", csr, CSRType.CSR, profile);
+        c = new Certificate(u, u, Certificate.buildDN("CN", test), Digest.SHA256, csr, CSRType.CSR, profile);
         c.issue(null, "2y", u).waitFor(60000);
     }