]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/CertificateIssueForm.java
Implement fixed-time signing.
[gigi.git] / src / org / cacert / gigi / pages / account / CertificateIssueForm.java
index 4332a39142f630acf7986e7292b2186cda98b05a..086d51a3133c76cdf9f38d75e6e5766df42ebed5 100644 (file)
@@ -27,6 +27,7 @@ import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.User;
 import org.cacert.gigi.crypto.SPKAC;
 import org.cacert.gigi.localisation.Language;
+import org.cacert.gigi.output.CertificateValiditySelector;
 import org.cacert.gigi.output.Form;
 import org.cacert.gigi.output.template.HashAlgorithms;
 import org.cacert.gigi.output.template.IterableDataset;
@@ -64,7 +65,7 @@ import sun.security.x509.X500Name;
  */
 public class CertificateIssueForm extends Form {
 
-    private static final String DEFAULT_CN = "CAcert WoT User";
+    public static final String DEFAULT_CN = "CAcert WoT User";
 
     private final static Template t = new Template(CertificateIssueForm.class.getResource("CertificateIssueForm.templ"));
 
@@ -108,6 +109,8 @@ public class CertificateIssueForm extends Form {
 
     Digest selectedDigest = Digest.getDefault();
 
+    CertificateValiditySelector issueDate = new CertificateValiditySelector();
+
     boolean login;
 
     CertificateProfile profile = CertificateProfile.getById(1);
@@ -230,6 +233,7 @@ public class CertificateIssueForm extends Form {
 
                 } else {
                     login = "1".equals(req.getParameter("login"));
+                    issueDate.update(req);
                     CN = req.getParameter("CN");
                     String hashAlg = req.getParameter("hash_alg");
                     if (hashAlg != null) {
@@ -296,7 +300,7 @@ public class CertificateIssueForm extends Form {
 
                     result = new Certificate(LoginPage.getUser(req).getId(), subject.toString(), selectedDigest.toString(), //
                             this.csr, this.csrType, profile, SANs.toArray(new SubjectAlternateName[SANs.size()]));
-                    result.issue().waitFor(60000);
+                    result.issue(issueDate.getFrom(), issueDate.getTo()).waitFor(60000);
                     return true;
                 }
             } catch (IOException e) {
@@ -407,6 +411,7 @@ public class CertificateIssueForm extends Form {
         }
 
         vars2.put("CN", CN);
+        vars2.put("validity", issueDate);
         vars2.put("emails", content.toString());
         vars2.put("hashs", new HashAlgorithms(selectedDigest));
         vars2.put("profiles", new IterableDataset() {