]> WPIA git - gigi.git/blobdiff - util/org/cacert/gigi/util/SimpleSigner.java
UPD: move the standard date format to "dateSelector"
[gigi.git] / util / org / cacert / gigi / util / SimpleSigner.java
index 2f0f6f6bca6479087039766ca1d1edebd1e6dddd..ebc5db85f30333a98c2b04fdc52e2ddce58252c1 100644 (file)
@@ -16,6 +16,7 @@ import java.util.Date;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Timestamp;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
@@ -24,7 +25,7 @@ import java.util.TimeZone;
 
 import org.cacert.gigi.Certificate.CSRType;
 import org.cacert.gigi.database.DatabaseConnection;
-import org.cacert.gigi.output.CertificateValiditySelector;
+import org.cacert.gigi.output.DateSelector;
 
 public class SimpleSigner {
 
@@ -47,7 +48,9 @@ public class SimpleSigner {
     private static Thread runner;
 
     private static SimpleDateFormat sdf = new SimpleDateFormat("YYMMddHHmmss'Z'");
+
     static {
+        TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
         sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
     }
 
@@ -74,7 +77,7 @@ public class SimpleSigner {
             throw new IllegalStateException("already running");
         }
         running = true;
-        readyCerts = DatabaseConnection.getInstance().prepare("SELECT certs.id AS id, certs.csr_name, certs.subject, jobs.id AS jobid, csr_type, md, keyUsage, extendedKeyUsage, executeFrom, executeTo FROM jobs " + //
+        readyCerts = DatabaseConnection.getInstance().prepare("SELECT certs.id AS id, certs.csr_name, certs.subject, jobs.id AS jobid, csr_type, md, keyUsage, extendedKeyUsage, executeFrom, executeTo, rootcert FROM jobs " + //
                 "INNER JOIN certs ON certs.id=jobs.targetId " + //
                 "INNER JOIN profiles ON profiles.id=certs.profile " + //
                 "WHERE jobs.state='open' "//
@@ -186,6 +189,10 @@ public class SimpleSigner {
 
     private static void signCertificates() throws SQLException {
         ResultSet rs = readyCerts.executeQuery();
+
+        Calendar c = Calendar.getInstance();
+        c.setTimeZone(TimeZone.getTimeZone("UTC"));
+
         while (rs.next()) {
             String csrname = rs.getString("csr_name");
             int id = rs.getInt("id");
@@ -197,7 +204,8 @@ public class SimpleSigner {
 
                 String keyUsage = rs.getString("keyUsage");
                 String ekeyUsage = rs.getString("extendedKeyUsage");
-                java.sql.Date from = rs.getDate("executeFrom");
+
+                Timestamp from = rs.getTimestamp("executeFrom");
                 String length = rs.getString("executeTo");
                 Date fromDate;
                 Date toDate;
@@ -209,8 +217,6 @@ public class SimpleSigner {
                 if (length.endsWith("m") || length.endsWith("y")) {
                     String num = length.substring(0, length.length() - 1);
                     int inter = Integer.parseInt(num);
-                    Calendar c = Calendar.getInstance();
-                    c.setTimeZone(TimeZone.getTimeZone("UTC"));
                     c.setTime(fromDate);
                     if (length.endsWith("m")) {
                         c.add(Calendar.MONTH, inter);
@@ -219,10 +225,8 @@ public class SimpleSigner {
                     }
                     toDate = c.getTime();
                 } else {
-                    toDate = CertificateValiditySelector.getDateFormat().parse(length);
+                    toDate = DateSelector.getDateFormat().parse(length);
                 }
-                System.out.println(from);
-                System.out.println(sdf.format(fromDate));
 
                 getSANSs.setInt(1, id);
                 ResultSet san = getSANSs.executeQuery();
@@ -246,14 +250,22 @@ public class SimpleSigner {
                 cfg.println("extendedKeyUsage=" + ekeyUsage);
                 cfg.close();
 
+                int rootcert = rs.getInt("rootcert");
+                String ca = "unassured";
+                if (rootcert == 0) {
+                    ca = "unassured";
+                } else if (rootcert == 1) {
+                    ca = "assured";
+                }
+
                 String[] call = new String[] {
                         "openssl", "ca",//
                         "-in",
                         "../../" + csrname,//
                         "-cert",
-                        "../unassured.crt",//
+                        "../" + ca + ".crt",//
                         "-keyfile",
-                        "../unassured.key",//
+                        "../" + ca + ".key",//
                         "-out",
                         "../../" + crt.getPath(),//
                         "-utf8",